const
p=3; {порядок матрицы}
type
tip_matr=array[1..p,1..p]of integer; {тип для матрицы}
var
a,b,c:tip_matr; {три матрицы }
i,j:integer; {для цикла }
n_a,n_b,n_c:integer; {норма матрицы }
{процедура - получить норму матрицы
m - матрица в которой находится норма
n - сюда записывается значение нормы матрицы }
PROCEDURE get_norma(m:tip_matr; var n:integer);
var
max:integer;
BEGIN
max:=m[1,1];
for i:=1 to p do
for j:=1 to p do if ABS(m[i,j])>max then max:=ABS(m[i,j]);
n:=max;
END;
{процедура печатает матрицу на экран}
PROCEDURE print_array(m:tip_matr);
BEGIN
for i:=1 to p do
begin
for j:=1 to p do write(' ',m[i,j]:3);
writeln;
end;
writeln;
END;
BEGIN
randomize;
for i:=1 to p do {загрузка значений элементов во все матрицы}
for j:=1 to p do
begin
a[i,j]:=random(50)-random(50);
b[i,j]:=random(50)-random(50);
c[i,j]:=random(50)-random(50);
end;
writeln('ИСХОДНЫЕ МАТРИЦЫ');
writeln('Матрица A:');
print_array(a);
writeln('Матрица B:');
print_array(b);
writeln('Матрица C:');
print_array(c);
{получить длякаждой матрицы её норму}
get_norma(a,n_a);
get_norma(b,n_b);
get_norma(c,n_c);
writeln('Матрица с наименьшей нормой:');
if (n_a <= n_b)and(n_a <= n_c) then print_array(a) else
if (n_b <= n_a)and(n_b <= n_c) then print_array(b) else
if (n_c <= n_b)and(n_c <= n_a) then print_array(a);
readln;
END.