Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Часть_1.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
974.85 Кб
Скачать

Interface

Var X:integer;

procedure Sum(a,b:integer, var s: integer);

. . .

Если теперь в программе написать предложение USES M1;, то в основной программе станет доступным переменная Х и процедура Sum.

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

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

Например: . . .

Implementation

procedure Sum;

begin S:= a + b;

end;

Раздел инициализации завершает модуль, может отсутствовать (тогда нет и BEGIN) или быть пустым. Описывает «разовые» подготовительные действия, восполняемые при загрузке программы в память. Содержит исполняемые операторы, которые выполняются до передачи управления основной программе и обычно используются для подготовки её работы. Если модулей несколько, то операторы данного раздела выполняются в порядке указания имён в USES. Например, здесь могут инициализироваться (задаваться начальными значениями) переменные, открываться файлы и т. д.

П р и м е р

{Модуль}

UNIT M1;

Interface

var

X: integer;

procedure Sum (a, b: integer, var s: integer);

Implementation

procedure Sum;

begin

S:= a + b;

end;

end.

{Основная программа}

program main;

uses M1;

var

y, z: integer;

begin

readln (x, y);

sum (x, y, z);

writeln (z)

end.

Модуль следует хранить в одноимённом файле с расширением PAS.

12.2. Трансляция модуля. «Сборка» программы

Результатом трансляции модуля является файл с тем же именем и расширением TRU. Он должен записываться на диск, тогда как результат трансляции программы в целом (EXE – файл) может оставаться в оперативной памяти.

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

В интерфейсной среде Паскаля в главном меню следует использовать подменю Compile. Пункты этого меню: Compile (Alt – F9)

Make F9

Build

Destination Memory

Primary file

Первые три предназначены для запуска трансляции.

1. Если использовать Compile, то необходимо установить «Destination Disk», оттранслировать модуль, затем оттранслировать программу. Файл с расширением TRU должен находиться в каталоге, указанном в опции UNIT DIRECTORIES.

Пункты Make и Build – удобнее.

2. Make для каждого модуля проверяет:

– существование TRU-файла. Если его нет, то он создаётся путём трансляции исходного текста модуля;

– соответствие TRU-файла исходному тексту модуля (в него могут быть внесены изменения, в этом случае TRU-файл создаётся заново автоматически);

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

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

3. Buildв отличии от Make, требует наличия исходных текстов вcех модулей, так как все они компилируются (дольше!), в остальном совпадает.

4. Run (выполнение).

В случаях 2 - 4 программа и модули транслируются совместно. Активным должно быть окно основной программы (иначе – имя файла основной программы должно быть указано в опции Primary file).

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