Чтобы использовать подпрограммы, константы, типы, переменные, описанные в интерфейсе модуля, в основной программе следует поместить раздел объявления используемых модулей. Раздел состоит из одного предложения и начинается зарезервированным словом uses, после указываются через запятую имена модулей. После этого в основной программе можно использовать идентификаторы, указанные в интерфейсах перечисленных модулей.
Пример. Программа, меняющая в массиве максимальное и минимальное числа
program EXAMPLE45; {Заголовок программы}
uses Unit1, Unit2; {Используемые модули}
var i: Integer;
begin
Change(Arr); {Процедура замены в Unit1,
массив Arr - в Unit2}
for i := 1 to N do {N-в Unite}
WriteLn(Arr[i]);
end.
{Модули, расположенные в других файлах}
unit Unit1; {Модуль с основной подпрограммой}
interface {Интерфейс первого модуля}
uses Unit2; {Использование модуля с параметрами}
procedure Change(var Arr: Mass); {Заголовок процедуры}
implementation {Исполнительная часть}
uses Unit3; {Использование модуля со вспомогательной подпрограммой}
procedure Change; {Сокращенный заголовок}
var Max, Min, i: Integer;
begin
Max:= 1;
Min := 1;
for i := 1 to N do {N-в Unit2}
begin
if Arr[i] > Arr[Max] then Max := i;
if Arr[i] < Arr[Min] then Min := i;
end;
Swap(Arr[Max], Arr[Min]) {Меняем местами макс, и мин.числа, процедура в Unit3}
end; { Конец описания процедуры Change }
end. {Конец Uniti}
unit Unit2; {Модуль с параметрами}
interface {Интерфейс второго модуля}
const N = 5; {Число элементов}
type Mass = array[1 ..N] of Real; {Тип массива}
const Arr: Mass = (0.5, -2.0, 1.0, 3.5, 7.0); {Типизированная константа}
implementation {Исполнительная часть}
end. {Конец UNIT2}
unit Unit3; {Модуль со вспомогательной подпрограммой}
interface {Интерфейс третьего модуля}
procedure Swap(var X, Y: Real);
implementation {Исполнительная часть}
procedure Swap(var X, Y: Real); {Перемещение двух чисел}
var Z: Real;
begin Z := X; X := Y; Y := Z end;
end. {Конец UNIT3}
|