Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR13.doc
Скачиваний:
12
Добавлен:
10.03.2016
Размер:
109.57 Кб
Скачать

Interface

<интерфейсная часть>;

Implementation

<исполняемая часть>;

begin

<инициирующая часть>;

end.

Здесь UNIT – зарезервированное слово (единица); начинает заголовок модуля;

<имя_модуля> - имя модуля (правильный идентификатор);

INTERFACE – зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;

IMPLEMENTATION – зарезервированное слово (выполнение); начинает исполняемую часть модуля;

BEGIN – зарезервированное слово; начинает инициирующую часть модуля; причем конструкция begin <инициирующая часть> необязательна;

END – зарезервированное слово – признак конца модуля.

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

Ниже показана общая структура модуля, дополненная комментариями, поясняющими смысл и назначение каждого раздела модуля.

Unit ИдентификаторМодуля;

{Интерфейсный раздел}

Interface

{В этом разделе описывается взаимодействие данного модуля} {с другими пользовательскими и стандартными модулями, а также} {с главной программой. Другими словами – взаимодействие } {модуля с «внешним миром». }

{Список импорта интерфейсного раздела}

uses

{В этом списке через запятые перечисляются идентификаторы} {модулей, информация интерфейсных частей которых должна }

{быть доступна в данном модуле. Здесь целесообразно описывать} {идентификаторы только тех модулей, информация из которых} {используется в описаниях раздела interface данного модуля.}

{Список экспорта интерфейсного раздела}

const {Список экспорта состоит из подразделов описания констант,} type {типов, переменных, заголовков процедур и функций, которые} var {определены в данном модуле, но использовать которые разре-} procedure {шено во всех других модулях и программах, включающих имя} function {данного модуля в своей строке uses. Для процедур и функций} {здесь описываются только заголовки, но с обязательным} {полным описанием формальных параметров.}

{Раздел реализации}

Implementation

{В этом разделе указывается реализационная (личная) часть} {описаний данного модуля, которая недоступна для других } {модулей и программ. Другими словами – «внутренняя кухня»}

{модуля.}

{Список импорта раздела реализации}

uses

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

{Подразделы внутренних для модуля описаний}

label {В этих подразделах описываются метки, константы, типы,} const {переменные, процедуры и функции, которые описывают} type {алгоритмические действия, выполняемые данным модулем, и} var {которые являются «личной собственностью» исключительно} procedure{только данного модуля. Эти описания недоступны ни одному} function {другому модулю. Заголовки процедур и функций в этом} {подразделе допускается указывать без списка формальных} {параметров. Если заголовки указаны все же с параметрами, то} {их список должен быть идентичен такому же списку для} {соответствующей процедуры (функции) в разделе interface}

{Раздел инициализации}

begin

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

end.

Заголовок модуля и связь модулей друг с другом

Заголовок модуля состоит из зарезервированного слова unit и следующего за ним имени модуля. Для правильной работы среды Турбо Паскаля и возможности подключения средств, облегчающих разработку больших программ, имя модуля должно совпадать с именем дискового файла, в который помещается исходный текст модуля. Если, например, имеем заголовок модуля

Unit primer;

то исходный текст этого модуля должен размещаться на диске в файле primer.pas.

Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением:

uses <список модулей>

Здесь USES – зарезервированное слово (использует);

<список модулей> - список модулей, с которыми устанавливается связь; элементы списка – имена модулей через запятую.

Если в программе модули используются, то предложение uses <список модулей> должно стоять сразу после заголовка программы, т.е. должно открывать раздел описаний основной программы. В модулях могут использоваться другие модули. В модулях предложение uses <список модулей> может стоять сразу после слова interface или сразу после слова implementation. Допускается и два предложения uses, т.е. оно может стоять и там, и там.

Интерфейсная часть

Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны быть доступны основной программе и (или) другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок, например:

Unit complexn;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]