Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
02.05.2014
Размер:
32.26 Кб
Скачать

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

Модули представляют собой средство для создания библиотек стандартных подпрограмм и данных. Модуль может быть заранее оттранслирован и храниться в каталоге модулей файловой системы MS DOS. В среде Turbo-Pascal 7.0 имеется большое количество стандартных подпрограмм и данных, объединенных в несколько стандартных модулей. Здесь мы рассмотрим лишь некоторые из них, более подробно см.[4, 5, 11, 13, 14].

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

Uses <список имен модулей>;

<список имен модулей> включает перечисленные через запятую имена

стандартных модулей, подключаемых к программе.

Модуль System - включает наиболее часто употребляемые стандартные процедуры и функции (типа Sqrt, Sqr, Sin, Cos и др.). Он автоматически подключается к любой программе, поэтому не требует указания в списке Uses.

Модуль Crt - обеспечивает доступ в к возможностям экрана монитора в текстовом режиме, когда весь экран рассматривается как совокупность отдельных символов, в отличие от графического режима, когда доступна каждая точка экрана (пиксела).

Модуль Graph - включает программные средства, управляющие графическим режимом работы монитора.

Процедуры и функции модуля Crt

  • Процедура ClrScr

Очищает экран и перемещает курсор в левый верхний угол.

  • Процедура TextMode

Процедура задания текстового режима монитора:

Режим

Количество строк

Количество символов

Установка режима

Значение параметра

Черно-белый

25

40

TextMode(BW40)

0

Черно-белый

25

80

TextMode(BW80)

2

Цветной

25

40

TextMode(CO40)

1

Цветной

25

80

TextMode(CO80)

3

Примечание: TextMode без параметров обеспечивает выход на исходный режим умолчания из любых других режимов.

  • Процедура TextColor(X)

Обеспечивает выбор цвета символов. Где X:byte - параметр установки цвета из диапазона 0..15 или константа, согласно приведенной ниже цветовой шкале.

X

Константа

Цвет

X

Константа

Цвет

7

LightGray

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

0

Black

черный

8

DarkGray

темно-серый

1

Blue

синий

9

LightBlue

светло-синий

2

Green

зеленый

10

LightGreen

светло-зеленый

3

Cyan

голубой

11

LightCyan

светло-голубой

4

Red

красный

12

LightRed

светло-красный

5

Magenta

фиолетовый

13

LightMagenta

светло-фиолетовый

6

Brown

коричневый

14

Yellow

желтый

15

White

белый

Примечание: Использование дополнительной константы Blink обеспечивает мерцание.

Например TextColor(Red);{красные символы}

TextColor(Red+Blik);{красные мерцающие символы}

Высокая яркость обеспечивается процедурой HightVideo;

Низкая яркость обеспечивается процедурой LowVideo;

  • Процедура TextBackGround(X)

Процедура обеспечивает выбор цвета фона экрана. X:byte, устанавливает цвет фона из диапазона 0..7 согласно приведенной выше цветовой шкалы .

Пример

Turbo-Pascal

Uses Crt;

...

CtrScr;{очистка экрана}

TextBackGround(7);{цвет фона светло-серый}

TextColor(Red);{цвет символов красный}

Write(‘Turbo-‘);

TextColor(Blue);{цвет символов голубой}

Write(‘Pascal’);

  • Процедура GoToXY(X,Y)

Перемещает курсор в точку экрана с координатами X,Y:byte , при этом

не разрушая ранее выведенной информации. С этой процедурой связаны две функции определяющие текущие координаты курсора:

WhereX - функция возвращает значение типа byte, текущую

Х координату курсора;

WhereY - функция возвращает значение типа byte, текущую

Y координату курсора.

  • Процедура Delay(Ms)

Процедура обеспечивает задержку выполнения программы на Ms:word

миллисекунд.

  • Процедура Window(X1,Y1,X2,Y2)

Служит для установки размеров активного окна c координатами

X1,Y1,X2,Y2:byte.

X1,Y1

X2,Y2

Пример

Window(1,1,80,25); {максимальное окно}

Window(19,7,59,16);{центр}

Window(1,1,2,2);{минимальное окно}

  • Функция KeyPressed

Анализирует нажатие либой символьной клавиши на клавиатуре, тип функции : boolean.

True, если клавиша на клавиатуре нажата

KeyPressed =

False, в противном случае.

Пример

...

repeat

< выполнение действий до нажатия любой клавиши на клавиатуре>

until KeyPressed;

  • Процедуры Sound(Hz) и Nosound

Процедура Sound(Hz) заставляет встроенный динамик звучать с частотой Hz герц, а процедура Nosound выключает динамик.

Пример

Uses Crt;

begin

Sound(500);{динамик включен с частотой 500 Гц}

Delay(5000);{продолжительность звучания 5 с}

Nosound

end.

Пример

{Программа конструирует мелодии из 50 звуков на основе трех

исходных значений базы: A,B,X}

Uses Crt;

Var I,A,B,X : integer;

M :array[1..8] of integer;{массив для записи частот звуков}

begin

M[1]:=262; M[2]:=294; M[3]:=330; M[4]:=349;

M[5]:=392; M[6]:=440; M[7]:=494; M[8]:=523;

ClrScr;

Writeln(‘Введите базу: A,B,X’); Readln(A,B,X);

for I:=1 to 50 do

begin

X:=(A*X+B+(I+Random(8))) mod 8;

Sound(M[X]);

Delay(200);

Nosound

end

end.

Процедуры и функции модуля Graph

Модуль Graph включает процедуры и функции, которые обеспечивают возможность работы монитора в графическом режиме.

  • Процедура инициализации графического режима InitGraph

InitGraph(GraphDriver,GraphMode,DriverPath);

GraphDriver - целая переменная, в которую записывается код требуемого графического драйвера, например:

GraphDriver:=EGA;{монитор EGA}

GraphDriver:=Detect;{автоопределение типа драйвера}

GraphMode - целая переменная, в которую процедура помещает код графического режима работы, определяя размер графического поля и палитру цветов (подробно см.[5]);

DriverPath - строка, содержащая путь к драйверу, или пустая строка, если драйвер находится в текущем каталоге.

Для очистки графического экрана используется процедура ClearDevice.

Для завершения работы в графическом режиме и переходе в текстовый режим, используется процедура CloseGraph.

Пример

Uses Graph;

Var Gd,Gm: integer;

begin

Gd:=Detect;{автоопределение драйвера}

InitGraph(Gd,Gm,’D:BP\BIN’);

if GraphResult <> grOK then Halt(1);

{если результат инициализации не соответствует стандартной

константе grOK, то программа завершается}

<область использования процедур и функций модуля Graph>

CloseGraph {процедура закрытия графического режима}

end.

  • Процедура PutPixel(X,Y,Pixel)

Закрашивает точку с заданными координатами X,Y:integer цветом Pixel:word.

  • Процедура Line(X1,Y1,X2,Y2)

Проводит линию текущего цвета между двумя точками с координатами X1,Y1,X2,Y2:integer.

  • Процедура LineTo(X,Y)

Проводит линию текущего цвета из текущей позиции курсора в позицию с координатами X,Y:integer.

  • Процедура MoveTo(X,Y)

Перемещает курсор в точку с координатами X,Y:integer , при этом точка на экране не высвечивается. С этой процедурой связано также действие функций:

GetX - получение значения текущей координаты X;

GetY - получение значения текущей координаты Y.

А также значений GetMaxX максимальное значение координаты Х и GetMaxY - максимальное значение координаты Y.

  • Процедура Rectangle(X1,Y1,X2,Y2)

Строит контур прямоугольника текущим цветом, X1,Y1,X2,Y2:integer.

X1,Y1

X2,Y2

0<=X1<X2<=GetMaxX; 0<=Y1<=Y2<=GetMaxY

  • Процедура Circle(X,Y,Rad)

Строит окружность текущим цветом, с центром в точке с координатами X,Y:integer; радиуса Rad:word.

Rad

X,Y

  • Процедура OutText(Tx)

Выводит на экран последовательность символов Tx:string, начиная с текущей позиции курсора. Для вывода текста с заданной позиции курсора X,Y:integer - используется процедура OutTextXY(X,Y,Tx).

Пример

Uses Crt, Graph;

{Заполнение экрана прямоугольниками со

случайными координатами вершин}

Var GraphDriver,GraphMode:integer;

X1,X2,Y1,Y2:integer;

Begin

GraphDriver:=Detect;

InitGraph(GraphDriver,GraphMode,’ ‘);

if GraphResult <> grOK then Halt(1);

Randomize;

repeat

X1:=Random(GetMaxX);

Y1:=Random(GetMaxY);

X2:=Random(GetMaxX-X1)+X1;

Y2:=Random(GetMaxY-Y1)+Y1;

Rectangle(X1,Y1,X2,Y2)

until KeyPressed;

CloseGraph

end.

Для более полного ознакомления с процедурами и функциями стандартных модулей Crt, Graph и других следует обратиться к [4,5, 11,13, 14].

Соседние файлы в папке Лекции по Паскалю1