Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Процедуры_функции_осень_2012ред.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
120.32 Кб
Скачать

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;