Чет про программирование / 18) Модули в Паскале
.docxМодули в Паскале
Модуль – автономно (отдельно) компилируемая программная единица, которая содержит компоненты раздела описаний (меток, констант, типов, переменных, процедур, функций), а также может содержать операторы инициализирующей части. Сам модуль не является выполняемой программой, а предназначен для использования другими программами и модулями. Структура модуля:
-
UNIT <имя модуля> INTERFACE <раздел интерфейсный> IMPLEMENTATION <раздел реализации>
INITIALIZATION
<выполняется в начале работы программы>
FINALIZATION BEGIN <выполняется в конце работы программы> END.
Заголовок модуля состоит из зарезервированного слова Unit (модуль) и имени модуля.
Имя модуля выбирается по общим правилам и должно совпадать с именем дискового файла содержащего исходный текст модуля.
Имя модуля используется для его связи с основной программой с помощью предложения Uses, которое может быть помещено после заголовка модуля или в разделах Interface и Implementation.
Интерфейсная часть – начинается с ключевого слова Interface и содержит обращение к другим модулям и объявления (описания) глобальных объектов, т. е. меток, констант, типов, переменных, и заголовков процедур и функций, которые доступны основной программе и другим модулям (т. е. видимые из вне).
Раздел реализации – начинается с ключевого слова Implementation (выполнение) и содержит описание локальных для модуля объектов, т. е. меток, констант, типов, переменных которые не доступны основной программе и другим модулям (т. е. не видимые из вне) и полное описание процедур и функций.
Раздел инициализации – заключается в словесные скобки BEGIN и END и содержит операторы, которые будут выполнены до передачи управления основной программе. Это могут быть операторы инициализации данных (переменных). Например, операторы присваивания, ввода, а также процедуры связывания и открытия файлов. В конце модуля ставится точка.
Отличие Uses в интерфейсе и реализации
Если к основной программе в разделе Uses подключен Unit1, а в разделе interface этого модуля подключен Unit2, то к основной программе подключены Unit1 и Unit2 одновременно, так как Interface доступен другим модулям.
-
Uses Unit1;
Unit Unit1;
Interface
Uses Unit2;
Если к основной программе в разделе Uses подключен Unit1, а в разделе Implementation этого модуля подключен Unit2, то к основной программе подключен только Unit1, так как Implementation доступен только в данном модуле.
-
Uses Unit1;
Unit Unit1;
Implementation
Uses Unit2;