Смекни!
smekni.com

НН Трушин Информатика (стр. 25 из 37)

Re,Im: Real end;

Var

File_1: Text;

File_2: File of Complex;

X: Complex;

FileName: String;

BEGIN

Write('Введите имя текстового файла: ');

Readln(FileName);

Assign(File_1,FileName)

Write('Введите имя файла комплексных чисел: ');

Readln(FileName);

Assign(File_2,FileName);

Reset(File_1);

Rewrite(File_2);

While not Eof(File_1) do

Begin

ReadLn(File_1,X.Re,X.Im);

Write(File_2,X)

End;

Close(File_1);

Close(File_2) END.

6.11. Стандартные модули

В языке Turbo Pascal модуль (Unit) по определению считается отдельной программой. Если подпрограмма является структурным элементом Pascal-программы и не может существовать вне ее, то модуль представляет отдельно хранимую и независимо транслируемую единицу. Модуль является совокупностью констант, типов, переменных и подпрограмм, предназначенных для использования другими программами и модулями. Сам по себе модуль не является исполняемой программой, так как его объекты используются другими программами.

В языке Turbo Pascal существуют правила построения и разработки модулей. Но чаще всего используются программные средства следующих стандартных модулей, в которых содержатся все стандартные процедуры и функции языка:

SYSTEM – основная библиотека подпрограмм;

DOS – содержит подпрограммы для работы с операционной системой;

CRT – содержит подпрограммы для работы с клавиатурой и дисплеем; PRINTER – содержит средства для работы с печатающим устройством; OVERLAY – содержит средства для разработки оверлейных программ; GRAPH – библиотека графических подпрограмм.

Модуль GRAPH хранится в файле GRAPH.TPU, остальные из перечисленных модулей входят в состав библиотечного файла TURBO.TPL. Только модуль SYSTEM подключается к любой программе автоматически, все остальные становятся доступны после указания их имен в разделе объявления модулей, начинающемся со слова Uses.

Самый простой по содержанию – модуль PRINTER, который делает доступным вывод текстовых файлов на печатающее устройство. В нем определяется файловая переменная Lst типа Text, связанная с устройством PRN. После подключения модуля вывод на печать может производиться через файловую переменную Lst.

Пример. Вывод на печатающее устройство.

Uses Printer;

. . .

WriteLn(Lst,'Вывод на печатающее устройство');

6.11.1. Модуль CRT

Достаточно часто на практике используются константы, переменные и подпрограммы модуля CRT, с помощью которых разрабатываются средства управления текстовым выводом на дисплей, вводом с клавиатуры и звуковым генератором.

При работе с дисплеем через модуль CRT весь экран разбивается на строки, а каждая строка – на позиции, в каждую из которых можно поместить один символ. Для каждой позиции можно задать цвет фона (задний план) и цвет символа (передний план). В текстовом режиме цвет символа может иметь код от 0 до 15, цвет фона – от 0 до 7. При необходимости символ можно сделать мерцающим, для чего следует к коду цвета символа прибавить 128.

В режиме текстового вывода используются следующие координаты экрана: левый верхний угол имеет координаты (1,1); горизонтальная координата возрастает слева направо, вертикальная – сверху вниз. Если на экране определено окно, все координаты отсчитываются относительно границ окна.

Управление звуковым генератором строится по схеме Sound–DelayNoSound.

Списки констант и переменных модуля CRT приведены в табл. 6.10, 6.11, 6.12. Если логической переменной модуля CRT присвоить значение True, происходит разрешение того или иного режима работы программы; значение False запрещает этот режим.

Таблица 6.10 Константы режимов работы дисплея

Имя Значение Режим работы дисплея

BW40

BW80

Mono

CO40

CO80 Font8x8

0

2

7

1

3

256

Черно-белый, 40 символов, 25 строк

Черно-белый, 80х25

Монохромный, 80х25

Цветной, 40х25

Цветной, 80х25 Цветной, для видеоадаптера EGA/VGA, 43/50 строк

Таблица 6.11 Константы цветов модуля CRT

Имя Значение Цвет Имя Значение Цвет

Black

Blue

Green

Cyan

Red

Magenta

Brown LightGray DarkGray

0

1

2

3

4

5

6

7

8

Черный

Синий

Зеленый

Голубой

Красный

Фиолетовый

Коричневый

Светло-серый

Темно-серый

LightBlue

LightGreen

LightCyan

LightRed LightMagenta

Yellow

White

Blink

9

10

11

12

13

14

15

128

Ярко-синий Ярко-зеленый Ярко-голубой

Розовый

Малиновый

Желтый Белый

Мерцание

Таблица 6.12

Переменные модуля CRT

Имя Тип Значение

CheckBreak

CheckEof

CheckShow DirectVideo

LastMode

TextAttr

WindMin

WindMax

Boolean Boolean Boolean Boolean

Word

Byte

Word

Word

Разрешение/запрещение Ctrl+Break

Разрешение/запрещение Ctrl+ZРазрешение/запрещение "снега" на экране Разрешение/запрещение прямого доступа к видеопамяти

Код последнего видеорежима Значение текущего байта атрибутов символов Координаты левого верхнего угла и правого нижнего угла текущего окна соответственно

Функции модуля CRT:

KeyPressed – логическая, возвращает значение "истина", если на клавиатуре была нажата какая-либо клавиша, или "ложь" – в противном случае. Если к моменту обращения к функции не была нажата ни одна клавиша, программа приостанавливает свою работу;

ReadKey – типа Char, читает один символ с клавиатуры, не отображая его на дисплее. Приостанавливает исполнение программы до нажатия на любую клавишу, кроме Shift, Ctrl, Alt, CapsLock, NumLock, ScrollLock;

WhereX – типа Byte, возвращает горизонтальную координату текущей позиции курсора относительно границ текущего окна;

WhereY – типа Byte, возвращает вертикальную координату текущей позиции курсора относительно границ текущего окна.

Процедуры модуля CRT:

ClrEol – удаляет все символы от текущей позиции курсора до конца строки без перемещения курсора;

ClrScr – очищает экран (окно) и помещает курсор в левый верхний угол экрана (окна);

DelLine – удаляет строку, в которой находился курсор, и перемещает все нижестоящие строки на одну позицию вверх;

InsLine – вставляет пустую строку в позицию курсора;

Delay(T) – задерживает выполнение программы на T миллисекунд;

GotoXY(X,Y) – перемещает курсор в заданную точку экрана (окна), где

X – номер столбца, Y – номер строки;

HighVideo – устанавливает повышенную яркость символов; LowVideo – устанавливает пониженную яркость символов;

NormVideo – устанавливает нормальную яркость символов;

TextBackGround(Color) – устанавливает цвет Color фона;

TextColor(Color) – устанавливает цвет Color символов;

TextMode(Mode) – устанавливает текстовый режим;

Sound(F) – генерирует звук с частотой F герц;

NoSound – выключает звук;

Window(x1,y1,x2,y2) – определяет текстовое окно на экране, x1, y1 – координаты левого верхнего угла, x2, y2 – правого нижнего угла.

Пример. Использование возможностей модуля CRT.

Program DemoWindow;

Uses CRT;

Var i: Byte;

Ch: Char;

BEGIN

ClrScr;

TextBackGround(LightGray);{Установка цвета фона окна}

TextColor(Black); {Установка цвета символов}

Window(20,8,60,17); {Определение первого окна}

ClrScr;

WriteLn;

WriteLn('********ТЕХНОЛОГИЧЕСКИЙ ФАКУЛЬТЕТ*******'); WriteLn;

WriteLn('*******Пакет программ "Статистика"******');

Window(55,25,77,25); {Определение второго окна}

ClrScr;

Write('Нажмите клавишу ENTER ');

ReadLn;

TextMode(CO80) {Очистка экрана и установка режима} END.

6.11.2. Модуль DOS

Модуль DOS содержит большое количество специальных процедур и функций, ориентированных на использование возможностей операционной системы MS-DOS. Большинство подпрограмм модуля предназначено для опытных программистов. На начальном уровне программирования можно воспользоваться следующими подпрограммами из модуля DOS:

GetDate(Year,Month,Day,DayOfWeek) – процедура возвращает текущую дату со встроенных часов компьютера (год, месяц, число, день недели);

GetTime(Hour,Minute,Second,Sec100) – процедура возвращает текущее время со встроенных часов компьютера (часы, минуты, секунды, сотые доли секунды);

DiskFree(Disk) – функция типа LongInt вычисляет число

свободных байтов на указанном дисковом накопителе;

DiskSize(Disk) – функция типа LongInt вычисляет полный объем указанного дискового накопителя в байтах.

Функции имеют параметры типа Word. Если Disk=0, то анализируется текущий накопитель, Disk=1 соответствует накопителю A:, Disk=2 – накопителю B: и т.д. Если параметр Disk не соответствует номеру накопителя компьютера, обе функции возвращают значение –1.