Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория_информатика.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.34 Mб
Скачать

Модуль Graph

Модуль Graph содержит типы, константы, переменные и подпрограммы, позволяющие программисту создавать изображения с использованием широкого набора графических адаптеров (CGA, MCGA, EGA, VGA, Hercules, AT&T400, 3270РС, IBM8514).

При работе с этими адаптерами весь экран разбивается на отдельные "точки" – пиксели, которые можно закрасить в тот или иной цвет. Каждый пиксель имеет две координаты: X и Y. Координата X увеличивается по горизонтали слева направо, начиная от нуля, координата Y увеличивается по вертикали сверху вниз, также начиная от нуля. Таким образом левый верхний пиксель имеет координаты (0,0). Количество пикселей зависит от типа адаптера и режима его работы.

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

Так же как и в текстовом режиме при использовании модуля Crt, модуль Graph позволяет выделять окна на экране дисплея. Графические процедуры и функции в этом случае используют координаты в пределах окна, причем левый верхний угол окна получает координаты (0,0).

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

Подавляющее большинство процедур и функций этого модуля можно использовать только после задания графического режима процедурой InitGraph.

Модуль Overlay

Модуль Overlay предназначен для организации оверлейных программ, которые загружаются и перезагружаются в оперативную память отдельными частями – секциями. Отдельные оверлейные части программы должны быть оформлены как отдельные модули, причем в них необходимо использовать ключ компилятора {$0+}. Кроме этого необходимо предусмотреть, чтобы при вызове оверлейных процедур и функций все активные в этот момент подпрограммы имели "дальнюю" адресацию (для этого следует использовать ключ компилятора {$F+}. Подключение оверлейных модулей к основной программе помимо стандартного использования раздела uses должно содержать ключ компилятора {$О unitname} с указанием имени оверлейного модуля.

Модуль Printer

Модуль Printer включает в себя переменную Lst типа Text, которая связана с принтером, и ее можно использовать в качестве файловой переменной в процедурах Write и WriteLn. Т. к. эта переменная связывается с принтером автоматически, не следует выполнять ни процедуры Assign, ни процедуры Rewrite, а также закрывать файл.

19.1.5.2 Структура модуля.

Модуль состоит из следующих частей:

заголовок модуля (Unit <Имя модуля>);

интерфейс модуля ( Interface );

исполнительная часть модуля (Implementation);

секция инициализации ( Begin … End.).

Все разделы модуля, за исключением секции инициализации, являются обязательными. Обязательна также указанная последовательность разделов.

19.1.5.3 Заголовок модуля

Заголовок модуля состоит из зарезервированного слова unit и идентификатора. Идентификатор модуля должен быть уникальным.

Пример заголовка:

unit MyModule;

Модуль должен быть помещен в файл, имя которого совпадает с именем модуля, а его расширение должно быть .PAS.

19.1.5.4 Интерфейс модуля

Через интерфейс осуществляется взаимодействие основной программы с модулем (модуля с модулем). В интерфейсе указываются константы, типы, переменные, процедуры и функции, которые могут быть использованы основной программой (модулем) при вызове этого модуля.

Интерфейс начинается словом interface. Структура и содержание раздела интерфейс выполняется по таким же правилам, как и раздел объявлений (описаний) основной программы. Отличие состоит только в том, что процедуры и функции в разделе интерфейса модуля приводятся только строкой заголовка. Таким образом, интерфейс модуля может содержать следующие элементы:

раздел объявления используемых модулей – после слова uses указываются имена модулей, которые используются данным модулем (необязательная часть).

раздел объявления констант,

раздел объявления типов,

раздел объявления переменных,

раздел объявления процедур и функций. Объявление процедуры может содержать директиву inline, в разделе объявления процедур и функций указываются лишь заголовки подпрограмм (за исключением тех подпрограмм, которые используют директиву inline). Сами подпрограммы приводятся в исполнительной части.

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