12.4.
ИСПОЛНЯЕМАЯ ЧАСТЬ
Исполняемая часть начинается зарезервированным
словом implementation и содержит описания подпрограмм, объявленных в интерфейсной
части. В ней могут объявляться локальные для модуля объекты - вспомогательные
типы, константы, переменные и подпрограммы, а также метки, если они используются
в инициирующей части.
Описанию подпрограммы, объявленной
в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок,
в котором можно опускать список формальных переменных (и тип результата для
функции), так как они уже описаны в интерфейсной части. Но если заголовок подпрограммы
приводится в полном виде, т. е. со списком формальных параметров и объявлением
результата, он
должен совпадать
с заголовком, объявленным в интерфейсной части, например:
Unit
Cmplx;
Interface type
Complex =
record
re,im: real
end;
Function
AddC(x,y:
Complex): Complex;
Function
MulC(x,y:
Complex): Complex;
Implementation
Function
AddC(x,y:
Complex): Complex;
begin
end; Function
MulC;//
Вариант описания подпрограммы без
// повторения списка
параметров
begin
end;
end.
Примечание
Хотя допускается краткое объявление
заголовка подпрограммы ( как в предшествующем примере—функции Mul(), тем не
менее использовать такую форму в серьезной программе не рекомендуется: перечень
параметров непосредственно в заголовке подпрограммы облегчает чтения кода
и понимания деталей реализации алгоритма.
Повторение заголовка в исполняемой
части должно быть полным и точным. Если бы мы использовали заголовок
Function
AddC(x,z: Complex): Complex; begin
end;
компилятор немедленно известил бы
нас о несовпадении заголовка с объявлением функции в интерфейсной части (второй
параметр должен иметь имя у).