- •Функция.
- •Function имя (список; параметров):тип;
- •1) Возвращаемое значение – скаляр;
- •2) Тип возвращаемого значения должен быть базовым;
- •3) Обязательной является хотя бы однократная запись в теле функции оператора вида:
- •I,max: integer;
- •Модули.
- •Interface
- •Implementation
- •Interface
- •Implementation
- •I,j, X:integer;
- •1: Begin
- •2: Begin
- •3: Begin
- •Var max,imax:integer);
- •I: integer;
Interface
Type
mas=array[1..100] of integer;
Procedure SORT(N: INTEGER ; Var A:mas);
Implementation
Procedure SORT(N: INTEGER ; Var A:mas);
Var
I,j, X:integer;
Begin
For J:=1 to N-1 do
For I:=1 to N-J do
If A[I]>A[I+1]
then Begin
X:=A[I];
A[I]:=A[I+1];
A[I+1]:=X
End;
End;
End. { МОДУЛЬ }
В интерфейсной части модуля описан тип mas и заголовок процедуры сортировки. При подключении этого модуля с помощью предложения Uses в любой программе становятся доступными рассматриваемые тип и процедура. Это продемонстрировано в главной программе.
К лабораторной работе (дополнение)
Преобразование программы в процедуру и функцию
Задача оформлена в виде программы.
PROGRAM MAX; {max}
VAR
A: ARRAY [1..15] OF INTEGER;
N,H,I,Imax,MAX : INTEGER;
BEGIN
WRITELN ('Vvedite chislo el-tov <=15');
READLN (N);
FOR I:=1 TO N DO
BEGIN
WRITELN ('vvedite el-t ',I);
READLN (A[I]);
END;
MAX:=A[1];
Imax:=1;
FOR I:=1 TO N DO
IF A[I]>max
THEN BEGIN
max:=A[I];
Imax:=I;
END;
WRITELN ('max znachenie=',max, 'его номер ', imax );
READLN;
END.
ФРАГМЕНТ ПРОГРАММЫ С МЕНЮ
Программа разделяется на фрагменты для использования в ветвях меню
. . . .
VAR
A: ARRAY [1..15] OF INTEGER;
N,H,I,Imax,MAX : INTEGER;
. . . . .
BEGIN
. . . .
case choice of
1: Begin
{ Реализация ввода массива }
{ операторы }
WRITELN ('Vvedite chislo el-tov <=15');
READLN (N);
FOR I:=1 TO N DO
BEGIN
WRITELN ('vvedite el-t ',I);
READLN (A[I]);
END;
End;
2: Begin
{ Реализация второго варианта действий }
{ операторы }
. . .
End;
3: Begin
{Реализация выбора максимума}
{ операторы }
MAX:=A[1];
Imax:=1;
FOR I:=1 TO N DO
IF A[I]>max
THEN BEGIN
max:=A[I];
Imax:=I;
END;
WRITELN ('max znachenie=',max,
'его номер ', imax );
READLN;
. . .
End;
. . . .
Преобразование программы MAX во внутреннюю процедуру
В процедуре остаётся собственно поиск максимума. Входные параметры - количество элементов массива и сам массив, выходные (результаты) – значение максимума и порядковый номер максимального элемента в массиве. Процедура – внутренняя, в главной программе в соответствующей ветви оператора CASE остаётся только обращение к процедуре со списком фактических параметров.
PROGRAM Menu;
Type
VCT = ARRAY [1..15] OF INTEGER;
Var
A1 : VCT;
exit_ans : string;
choice, code : integer;
F, Fl : boolean;
N1,H,I,Imax1,MAX1 : INTEGER;
{процедура, внутренняя главной }
PROCEDURE MAX_VECT (n : intrger; A : VCT;
