Модули в ТП
Структура модуля
Модуль можно разделить на несколько разделов: заголовок, интерфейсная часть, реализационная (исполняемая) часть, инициализационная часть.
Заголовок модуля
Unit <имя модуля>
Интерфейсная часть
Interface {начало раздела объявлений} uses {используемые при объявлении модули} label {подраздел объявления доступных глобальных меток} const {подраздел объявления доступных глобальных констант} type {подраздел объявления доступных глобальных типов} var {подраздел объявления доступных глобальных переменных} procedure {заголовки доступных процедур} function {заголовки доступных функций}
Исполняемая часть
Implementation {начало раздела реализации} uses {используемые при реализации модули} label {подраздел объявления скрытых глобальных меток} const {подраздел объявления скрытых глобальных констант} type {подраздел объявления скрытых глобальных типов} var {подраздел объявления скрытых глобальных переменных} procedure {тела доступных и скрытых процедур} function {тела доступных и скрытых функций}
Инициирующая часть
Begin {основной блок модуля} End.
Заголовок модуля
Заголовок модуля состоит из зарезервированного слова Unit и имени модуля, которое должно совпадать с именем файла, куда помещается исходный текст модуля. Например, имеется модуль с заголовком unit mymodul; Тогда исходный файл должен называться mymodul.pas.
Имя модуля служит для его связи с другими модулями и основной программой. Это связь устанавливается следующим образом: Uses <список модулей>
Пример: Uses crt, graph, mymodul;
Интерфейсная часть
Здесь описываются все константы, типы данных и переменных, заголовки процедур и функций, доступные в этом модуле для использования внешними программами. В интерфейсной части, возможно, кроме всего прочего, сделать доступными для использования уже существующие готовые модули, указав их имена в операторе uses. Пример 1.
![]()
unit snow; interface uses graph; var gd,gm:integer; procedure show_sneg(x,y,color,razmer:integer); Если теперь в основной программе написать предложение
Uses snow; то в программе станут доступными модуль graph и две переменные– gd и gm и процедура show_sneg из модуля snow.tpu.
Исполняемая часть
Здесь описываются процедуры и функции, объявленные в интерфейсной части. Описанию подпрограммы, объявленной в интерфейсной части модуля, должен предшествовать заголовок, в котором можно опускать список формальных переменных (и тип результата для функции), так как они уже описаны в интерфейсной части. Пример 2.Если имеется описание интерфейсной части как в примере 1, то процедура в исполняемой части может быть описана следующим образом:
procedure show_sneg; { или полностью procedure show_sneg (x,y,color,razmer:integer);} begin setcolor(color); line(x-razmer,y,x+razmer,y); line(x,y-razmer,x,y+razmer); line(x-round(razmer/2),y-round(razmer/2),x+round(razmer/2),y+round(razmer/2)); line(x+round(razmer/2),y-round(razmer/2),x-round(razmer/2),y+round(razmer/2)); end;
Так же, как и внутри обычной программы, здесь можно определить глобальные (для модуля) переменные, типы данных и константы.
Инициирующая часть
Здесь размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в них могут инициироваться переменные, открываться нужные файлы и т.п. Пример 3.
А) {Начало инициирующей части} begin assign(F, ‘output.txt’); rewrite(F); {Конец инициирующей части} end.
В) begin gd:=detect; initgraph(gd,gm,' '); {инициализация графического режим} end.
Инициирующая часть может отсутствовать вместе с ее начинающим словом begin или быть пустой – тогда за begin сразу пишется end. (Не рекомендуется делать инициирующую часть пустой, лучше ее опустить)
Назад
Далее