Тело подпрограммы помещается в операторные скобки BEGIN … END;.
Обращение к подпрограмме - процедуре из основной прог- программы осуществляется по её имени с указанием в круг-лых скобках фактических параметров:
А(в1, в2,…);
где: А - имя подпрограммы;
в1, в2, … - имена фактических параметров.
Фактическими параметры по числу и типу должны сов- падать с формальными параметрами из блока описания PROCEDURE. Параметры могут быть:
- локальными, существующими только внутри процеду- ры;
- глобальными, существующими и вне процедуры.
Процедуры могут быть вложены одна в другую. При этом процедура, вложенная в другую процедуру, является внутрен-ней и может вызываться только из внешней процедуры так же, как внешняя процедура может вызываться только из ос-новной программы. Возврат осуществляется в обратном поряд-ке:
- из внутренней процедуры – во внешнюю;
- из внешней - в основную программу.
Пример: Найти максимальные и минимальные элемен-ты массивов А(5), (10), С(8) и их порядко-вые номера.
PROGRAM PODPROG ;
USES CRT, PRINTER ;
VAR I: INTEGER ;
PROCEDURE MASS ( K: INTEGER ) ;
VAR A: ARRAY [ 1..15 ] OF INTEGER ; MAX, IMAX, MIN, IMIN, I: INTEGER ;
BEGIN
WRITE ( ' ' ) ;
FOR I: =1 TO K DO BEGIN
A[ I ]: =RANDOM ( 100 ) – 25 ;
WRITE ( A[I]: 5 ) ;
IF I MOD 5= 0 THEN BEGIN
WRITELN; WRITE( ' ' ) ;
END;
END;
MAX: =A [ 1 ] ; IMAX: =1 ;
MIN: =A [ 1 ] ; IMIN: =1 ;
FOR I: =1 TO K DO BEGIN
IF A [ I ] >MAX THEN BEGIN MAX: =A [ I ] ; IMAX: =I ;
END ;
IF A [ I ] <MIN THEN BEGIN MIN: = A [ I ] ; IMIN: =I ;
END;
END;
WRITELN ;
WRITELN ( ' MAX=', MAX:3, ' I=', IMAX:2 ) ;
WRITELN ( ' MIN=', MIN:3, ' I=', IMIN:2 ) ;
END;
BEGIN
CLRSCR;
WRITELN ( ' MASSIV A(5):' ) ;
MASS ( 5 );
WRITELN;
WRITELN( ' MASSIV B(10):' ) ;
MASS ( 10 ) ;
WRITELN;
WRITELN ( ' MASSIV C(8):' ) ;
MASS ( 8 ) ;
END .
Результат:
MASSIV A( 5 ) :
71 -5 26 -12 62
MAX= 71 I=1
MIN=-12 I=4
MASSIV В(10):
71 -5 26 -12 62
-23 22 70 6 51
MAX= 71 I=1
MIN=-23 I=6
MASSIV С(8):
71 -5 26 -12 62
-23 22 70
MAX= 71 I=1
MIN=-23 I=6
Пример: В матрицах А(5,5), В(6,6), С(8,8) найти max и min элементы и номера строк и столбцов, в ко-торых они находятся.
PROGRAM PODPROG ;
USES CRT, PRINTER ;
VAR I, J: INTEGER ;
PROCEDURE MASS ( K: INTEGER ) ;
VAR A: ARRAY [1..10,1..10] OF INTEGER ; MAX, IMAX, JMAX, MIN: INTEGER ;
IMIN, JMIN, I, J: INTEGER;
BEGIN
WRITE ( ' ' ) ;
FOR I: =1 TO K DO BEGIN
FOR J: =1 TO K DO BEGIN A [ I, J ] := RANDOM ( 100 ) – 25 ;
WRITE ( A [ I, J ]: 5 ) ;
END ; WRITELN; WRITE ( ' ' ) ;
END ;
MAX: =A [1,1]; IMAX:=1; JMAX:=1;
MIN: =A [1,1]; IMIN:=1; JMIN:=1 ;
FOR I: =1 TO K DO BEGIN
FOR J: =1 TO K DO BEGIN
IF A [I, J] >MAX THEN BEGIN MAX: =A [I, J] ; IMAX: =I; JMAX: =J END;
IF A [I, J] <MIN THEN BEGIN MIN: =A [I, J]; IMIN: =I; JMIN: =J END; END ; END ;
WRITELN ;
WRITE ( ' MAX=', MAX:3, ' I=', IMAX:2 ) ;
WRITELN ( ' J=', JMAX:2 ) ;
WRITE ( ' MIN=', MIN:3, ' I=', IMIN:2 ) ;
WRITELN ( ' J=', JMIN:2 ) ;
END;
BEGIN
CLRSCR ;
WRITELN ; WRITELN ; WRITELN ;
WRITELN ( ' МАТРИЦА A( 5, 5 ): ') ;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.