ВУЗ:
Составители:
Рубрика:
61
{список параметров может повторяться, но он должен совпадать с ука-
занным в интерфейсной части}
begin
......
end; {end для р}
end.
В разделе реализации могут быть введены свои типы, константы и пе-
ременные. Они будут считаться глобальными по отношению к
подпрограммам этого раздела, а также операторам раздела инициализации
(если последний имеется). В программе
, подключающей модуль, объявлен-
ные при реализации данные и типы недоступны!
Если в телах процедур или при задании типов либо переменных необ-
ходимо что-либо, объявленное в других модулях, и эти модули не попали в
директиву USES раздела объявлений, то их надо перечислить в директиве
USES сразу после слова IMPLEMENTATION.
Приведём текст модуля Complex, включающий
заголовок, интерфейс-
ную и исполнительную части.
{заголовок}
unit Complex;
{интерфейсная часть }
interface
type Complex=record
Re, Im:real;
еnd;
procedure Csum (a, b:Complx; var d:Complex);
procedure Cdif (a, b:Complx; var d:Complex);
procedure Cmult (a, b:Complx; var d:Complex);
procedure Cdiv (a, b:Complx; var d:Complex);
function Cmod (a:Complx):real;
{исполнительная часть}
intermentation
procedure Csum;
begin
d.Re:= a.Re + b.Re;
d.Im:= a.Im + b.Im;
end;
procedure Cdif;
begin
d.Re:= a.Re - b.Re;
62
d.Im:= a.Im - b.Im;
end;
procedure Cmult;
begin
d.Re:= a.Re * b.Re - a.Im * b.Im;
d.Im:= a.Re * b.Im + a.Im * b.Re;
end;
procedure Cdiv;
var m:real;
begin
m:=sqr(b.re)+sqr(b.im);
d.Re:= (a.Re * b.Re -a.Im * b.Im)/m;
d.Im:= (-a.Re * b.Im + a.Im * b.Re)/m;
end;
function Cmod;
begin
Cmod:= Sqrt(Sqr(a.Re)+Sqr(a.Im));
end;
end.
В исполнительной части могут перечисляться имена модулей, объекты
которых не используются в интерфейсной части. Имена модулей,
указанные
в исполнительной части, нельзя использовать в интерфейсной части.
Инициализирующая часть
Перед началом выполнения подпрограмм модуля может потребоваться
установить некоторые параметры, например, открыть файл, содержащий
массивы используемых в модуле данных. Эти операции можно выполнить в
разделе инициализации, который выполняется один раз в самом начале про-
граммы, использующей данный модуль.
В разделе реализации могут описываться подпрограммы, участвующие
в работе объявленных процедур и функций
, но сами не являющиеся объяв-
ленными.
Структура инициализирующей части:
begin
Опе
р
ато
р
end
;
{список параметров может повторяться, но он должен совпадать с ука- d.Im:= a.Im - b.Im;
занным в интерфейсной части} end;
begin procedure Cmult;
begin
...... d.Re:= a.Re * b.Re - a.Im * b.Im;
end; {end для р} d.Im:= a.Re * b.Im + a.Im * b.Re;
end. end;
procedure Cdiv;
В разделе реализации могут быть введены свои типы, константы и пе- var m:real;
begin
ременные. Они будут считаться глобальными по отношению к m:=sqr(b.re)+sqr(b.im);
подпрограммам этого раздела, а также операторам раздела инициализации d.Re:= (a.Re * b.Re -a.Im * b.Im)/m;
(если последний имеется). В программе, подключающей модуль, объявлен- d.Im:= (-a.Re * b.Im + a.Im * b.Re)/m;
ные при реализации данные и типы недоступны! end;
Если в телах процедур или при задании типов либо переменных необ- function Cmod;
begin
ходимо что-либо, объявленное в других модулях, и эти модули не попали в Cmod:= Sqrt(Sqr(a.Re)+Sqr(a.Im));
директиву USES раздела объявлений, то их надо перечислить в директиве end;
USES сразу после слова IMPLEMENTATION. end.
Приведём текст модуля Complex, включающий заголовок, интерфейс-
ную и исполнительную части. В исполнительной части могут перечисляться имена модулей, объекты
{заголовок} которых не используются в интерфейсной части. Имена модулей, указанные
unit Complex; в исполнительной части, нельзя использовать в интерфейсной части.
{интерфейсная часть } Инициализирующая часть
interface Перед началом выполнения подпрограмм модуля может потребоваться
type Complex=record установить некоторые параметры, например, открыть файл, содержащий
Re, Im:real;
еnd; массивы используемых в модуле данных. Эти операции можно выполнить в
procedure Csum (a, b:Complx; var d:Complex); разделе инициализации, который выполняется один раз в самом начале про-
procedure Cdif (a, b:Complx; var d:Complex); граммы, использующей данный модуль.
procedure Cmult (a, b:Complx; var d:Complex); В разделе реализации могут описываться подпрограммы, участвующие
procedure Cdiv (a, b:Complx; var d:Complex); в работе объявленных процедур и функций, но сами не являющиеся объяв-
function Cmod (a:Complx):real;
{исполнительная часть} ленными.
intermentation Структура инициализирующей части:
procedure Csum;
begin
d.Re:= a.Re + b.Re; begin Оператор end
d.Im:= a.Im + b.Im;
end;
procedure Cdif; ;
begin
d.Re:= a.Re - b.Re;
61 62
Страницы
- « первая
- ‹ предыдущая
- …
- 29
- 30
- 31
- 32
- 33
- …
- следующая ›
- последняя »
