Исполнительная часть модуля

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

Исполнительная часть начинается, словом implementation. Затем после слова uses указываются имена модулей, которые используются подпрограммами данной исполнительной части (этот раздел необязателен). Если какой-то модуль уже указан в интерфейсе модуля, то в исполнительной части его повторять не следует. Далее могут быть: разделы объявления меток, объявления локальных констант, объявления локальных типов, объявления локальных переменных. Затем идут описания подпрограмм модуля.

 

Cекция инициализации

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

Операторы секции инициализации выполняются единственный раз в момент запуска программы.

Если инициализация модуля не нужна, то в секции помещается лишь слово end.

Пример

Модуль, содержащий средства работы с комплексными числами:

 

unit Cmp;

interface

туре

Complex=record{способ представления}

Re,Im:real {комплексных чисел}

end;

{Заголовки процедур, реализуют операции над комплексными числами}

procedure InitC (c:Complex;R,I:real);

procedure AddC (c1,c2:Complex;var R:Complex);

procedure MaltC (c1,c2:Complex;var R:Complex);

procedure DivC (c1,c2:Complex;var R:Complex);

procedure WriteC(c:Complex);

implementation

{полные описания процедур (с сокращенными заголовками)}

procedure InitC;

begin

with c do

begin

Re:=R;

Im:=I;

end;

end;

procedure AddC;

begin

with R do

begin

Re:=c1.Re+c2.Re;

Im:=c1.Im+c2.Im;

end;

end;

procedure MaltC;

begin

with R do

begin

Re:=c1.Re*c2.Re+c1.Im*c2.Im;

Im:=c1.Im*c2.Re+c1.Re*c2.Im;

end;

end;

procedure DivC;

var

Tmp:real;

begin

with c2 do Tmp:=Re*Re+Im*Im;

with R do

begin

Re:=(c1.Re*c2.Re+c1.Im*c2.Im)/Tmp;

Im:=(c2.Re*c1.Re+c1.Re*c2.Im)/Tmp;

end

end;

procedure WriteC;

begin

with c do

begin

write(Re);

if Im=0 then exit;

if Im<>0 then write('+');

write(Im);

write('i');

end;

end;

end.

 








Дата добавления: 2015-01-13; просмотров: 718;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.