Пусть, например, мы создаем модуль Паскаля, реализующий сложение и вычитание комплексных чисел с помощью процедур:
Пример модуля реализующий сложение и вычитание комплексных чисел
Unit complexn;
Interface
type
complex= record
re, im: real;
end;
procedure AddC (x, y: complex; var z: complex);
procedure SubC (x, y: complex; var z: complex);
const c: complex= (re: 0.1; im: -1);
implementation
procedure AddC;
begin
z.re:= x.re + y.re;
z.im:= x.im + y.im;
end; {AddC}
procedure SubC;
begin
z.re:= x.re - y.re;
z.im:= x.im - y.im;
end; {SubC}
end.
Текст этого модуля следует поместить в файл complexn. pas. Вы можете его откомпилировать, создав TPU -файл.
В следующей программе осуществляются арифметические операции над комплексными числами:
Арифметические операции над комплексными числами
Program lab8;
Uses complexn;
Var
a,b,c: coplex;
begin
a.re:= 1; a.im:= 1;
b.re:= 1; b.im:= 2;
AddC(a, b, c);
Writeln (‘ сложение:’, c.re: 5:1, c.im: 5:1, ‘i’);
SubC (a, b, c);
Writeln (‘ вычитание:’, c.re: 5:1, c.im: 5:1, ‘i’);
End.
После объявления Uses complexn программе стали доступны все объекты, объявленные в интерфейсной части модуля complexn. При необходимости можно переопределить любой из этих объектов, как произошло, например, с типизированной константой c, объявленной в модуле Паскаля. Переопределение объекта означает, что вновь объявленный объект «закрывает» ранее определенный в модуле одноименный объект. Чтобы получить доступ к «закрытому» объекту, нужно воспользоваться составным именем: перед именем объекта поставить имя модуля и точку. Например:
|
|
Writeln (complexn.c.re: 5: 1, complexn.c.im: 5: 1);
Этот оператор выведет на экран содержимое «закрытой» типизированной константы, объявленной в модуле Паскаля из предыдущего примера.