Исполняемая часть модуля Паскаля начинается зарезервированным словом IMPLEMENTATION и содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты – вспомогательные типы, константы, переменные и блоки, а также метки.
Описанию подпрограммы, объявленной в интерфейсной части модуля Паскаля, в исполняемой части должен предшествовать заголовок, в котором можно опустить список формальных параметров и тип результата для функции, так как они уже описаны в интерфейсной части. Но если заголовок подпрограммы приводится в полном виде, т.е. со списком параметров и объявлением типа результата для функции, то он должен полностью совпадать с заголовком подпрограммы в интерфейсной части, например:
Пример модуля Паскаля
Unit complexn;
{--------------------------------}
Interface
Type
Complex= record
Re, im: real;
End;
Procedure AddC(x,y: complex, var z: complex);
{---------------------------------}
Implementation
Procedure AddC;
z.re:= x.re + y.re;
z.im:= x.im + y.im;
end;
end.
Инициирующая часть модуля Паскаля
Инициирующая часть завершает модуль Паскаля. Она может отсутствовать вместе с начинающим ее словом BEGIN или быть пустой – тогда вслед за BEGIN сразу следует признак конца модуля.
В инициирующей части размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в инициирующей части могут инициироваться переменные, открываться файлы, устанавливаться связи с другими компьютерами и т.п.:
Пример модуля Паскаля
Unit fileText;
{-------------------------------}
Interface
Procedure print(s: string);
{-------------------------------}
implementation
var f: text;
const
name= ‘output.txt’;
procedure print;
begin
writeln(f, s)
end;
{---------------------------------}
{начало инициирующей части}
begin
assign(f, name);
rewrite (f);
{конец инициирующей части}
end.
Не рекомендуется делать инициирующую часть пустой, лучше ее опустить.