PROGRAM LAB;
CONST
N=3; {размерность массива}
TYPE
AR=ARRAY[1..N,1..N] OF INTEGER;
VAR
A:AR; {массив А}
I, J: INTEGER; {индексы строк, столбцов}
FI, FO: TEXT; {файловые переменные}
{процедура преобразования массива В}
PROCEDURE PROC(VAR B:AR; M:INTEGER);
VAR
K, L: INTEGER; {индексы строк, столбцов}
Bmin: INTEGER; {минимальный элемент}
BEGIN
{поиск минимального элемента}
Bmin:=B[1,1];
FOR K:=1 TO M DO
FOR L:=1 TO M DO
IF B[K,L]<Bmin THEN Bmin:=B[K,L];
{замена элементов выше главной диагонали}
FOR K:=1 TO M DO
FOR L:=1 TO M DO
IF L>K THEN B[K,L]:=Bmin;
END; { PROC }
{тело выполняемых операторов главной программы}
BEGIN
{открытие файла входных данных и чтение их}
ASSIGN(FI, 'lab.inp');
RESET(FI);
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO N DO READ(FI,A[I,J]);
READLN(FI)
END;
CLOSE(FI);
{открытие выходного файла}
ASSIGN (FO,'lab.out');
REWRITE(FO);
WRITELN(FO ,' Исходный массив A:');
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO N DO WRITE(FO,A[I,J]:3);
WRITELN(FO)
END;
{вызов процедуры}
PROC(A,N);
APPEND(FO);
WRITELN (FO ,' Преобразованный массив A:');
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO N DO WRITE(FO,A[I,J]:3);
WRITELN(FO)
END;
CLOSE(FO);
END.
Файл исходных данных:
1 2 3
-4 -5 6
7 8 9
Файл выходных данных:
Исходный массив А:
1 2 3
-4 -5 6
7 8 9
Преобразованный массив А:
1 -5 -5
-4 -5 -5
7 8 9