Interface
const
len=100;
type
mass=array [1…len] of integer;
{Экспортные процедуры}
procedure vmax (m: mass; n: byte);
procedure vmin (m: mass; n: byte);
Implementation
uses
ctr;
procedure vprint (m: mass; n: byte); {внутренняя процедура}
var
i: byte;
begin
writeln ('Элементы массива');
for i:=1 to n do writeln (m[i]);
writeln
end;
procedure vmax; {указана без параметров}
var
max: integer;
i: byte;
begin
max:=m[1];
for i:=2 to n do
if m[i]>max then max:=m[i];
clrscr;
vprint (m, n); {печать массива}
writeln ('максимальный элемент массива', max);
end;
procedure vmin {указана без параметров}
var
min: integer;
i: byte;
begin
min:=m[1];
for i:=2to n do
if m[i]<min then min:=m[i];
clrscr;
vprint (m, n); {печать массива}
writeln ('Минимальный элемент массива', min);
end; {Раздел инициализаций отсутствует}
end.
Процедуры vmax и vmin доступны извне, поэтому они описаны в интерфейсной части модуля, с полным описанием формальных параметров. Процедура vprint - досупна только внутри модуля, поэтому ее нет в интерфейсной части модуля.
Тексты всех процедур описываются в разделе реализаций. Модуль crt - нужен для внутреннего использования модуля, поэтому описан в разделе реализаций.
Составим головную программу, использующий модуль vector.
Program main;
uses
ctr, vector;
var
a: mass;
i, n: byte;
begin
clrscr;
writeln ('Введите размер массива');
readln (n);
writeln ('Введите элементы массива');
for i:=1to n do readln (a[i]);
readln;
vmax (a, n); {Поиск max}
readln;
vmin (a, n); {Поиск min}
readln;
end.
Этапы использования головной программы, использующей пользовательский модуль:
- набрать текст модуля, начинающегося с зарезервированного слова UNIT;
- сохранить исходный файл под именем vector.pas;
- F9 - компиляция модуля, создается объектный файл - vector.tpu;
- набрать текст головной программы, сохранив ее под любым именем;
- F9 - компиляция головной программы;
- ctrl/F9 - запуск программы на выполнение.
Удалив vector.pas, можно сохранить только vector.tpu - скрытие информации.