Интерфейсная часть.
Интерфейсная часть открывается зарезервированным словом interface. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок, например:
unitCmplx;
Interface
Type
complex = record
re, im : real
End;
ProcedureAddC (x, у : complex; varz : complex);
ProcedureMulC (x, у : complex; varz : complex);
Если теперь в основной программе написать предложение
UsesCmplx;
то в программе станут доступными тип complexи две процедуры – AddC и MulC из модуля Cmplx.
Исполняемая часть.
Исполняемая часть начинается зарезервированным словом implemetationи содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты – вспомогательные типы, константы, переменные и блоки, а также метки, если они используются в инициирующей части.
Описанию подпрограммы, объявленной в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок, в котором можно опускать список формальных переменных (и тип результата для функции), так как они уже описаны в интерфейсной части. Но если заголовок подпрограмм приводится в полном виде, т.е. со списком формальных параметров и объявлением результата, он должен совпадать с заголовком, объявленным в интерфейсной части, например:
unitCmplx;
Interface
Type
complex = record
re, im : real;
End;
procedureAddC (x, у : complex; varz : complex);
Implementation
procedureAddC;
Begin
z.re := x.re + y.re;
z.im := x.im + у.im;
End;
End.
Локальные переменные и константы, а также все программные коды, порожденные при компиляции модуля, помещаются в общий сегмент памяти.
Инициализирующая часть.
Инициализирующая часть завершает модуль. Она может отсутствовать вместе с начинающим ее словом beginили быть пустой – тогда за beginсразу следует признак конца модуля (слово endи следующая за ним точка).
В инициализирующей части размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее к работе. Например, в них могут инициализироваться переменные, открываться нужные файлы и т.п.:
unitFileText;
Interface
procedurePrint (s : string);
Implementation
Var
f: text;
Const
name = 'output.txt';
procedurePrint;
Begin
WriteLn(f, s);
End;
{ Начало инициирующей части: }
Begin
Assign (f, name);
ReWrite(f);
{ Конец инициирующей части }
End.
Не рекомендуется делать инициирующую часть пустой, лучше ее опустить: пустая часть содержит пустой оператор, которому будет передано управление при запуске программы.
Дата добавления: 2017-01-29; просмотров: 873;