Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций часть 1.doc
Скачиваний:
6
Добавлен:
04.11.2018
Размер:
352.77 Кб
Скачать

22.1.1. Заголовок модуля

Заголовок модуля состоит из слова UNIT и имени модуля

Unit Module;

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

22.1.2. Интерфейс модуля

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

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

В разделе объявления процедур и функций указываются лишь заголовки подпрограмм. Сами подпрограммы приводятся в исполнительной части.

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

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

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

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

22.1.4. 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.