Даны две квадратные вещественные матрицы 4-го порядка. Напечатать ту из них, норма которой наименьшая (считать, что такая матрица одна)

В качестве нормы матрицы взять максимум абсолютных величин её элементов. Максимум определяется с помощью процедуры.

code: #pascal
Program DVK012;
type matrix=array[1..4,1..4]of real;
var a,b:matrix;
i,j,n:integer;
 
function norma(x:matrix):real;
var i,j:integer;  max:real;
begin
max:=abs(x[1,1]);
for i:=1 to n do
for j:=1 to n do
if abs(x[i,j])>max  then max:=abs(x[i,j]);
norma:=max;
end;
 
begin
n:=4;
writeln ('Vvedite matricy A:');
 
for i:=1 to n do
for j:=1 to n do begin
write ('A[',i,',',j,']='); readln (a[i,j]); end;
writeln;
writeln ('Vvedite matricy B:');
 
for i:=1 to n do
for j:=1 to n do begin
write ('B[',i,',',j,']='); readln (b[i,j]); end;
writeln;
writeln ('Vot vvedennaya matrica A:');
for i:=1 to n do
	begin
	 for j:=1 to n do
	  write(a[i,j]:6:2);
	   writeln;
	end;
writeln;
writeln ('Vot vvedennaya matrica B:');
for i:=1 to n do
	begin
	 for j:=1 to n do
	  write(b[i,j]:6:2);
	   writeln;
	end;
writeln;
{**********************************}
writeln('Norma matricy A= ',norma(a):0:2);
writeln('Norma matricy B= ',norma(b):0:2);
writeln('_________________');
 
if norma(a)<norma(b) then begin
 writeln('Norma A<normy B');
 for i:=1 to n do
	begin
	 for j:=1 to n do
	  write(a[i,j]:6:2);
	   writeln;
	end;
                          end else
begin
 writeln('Norma B<normy A');
 for i:=1 to n do
	begin
	 for j:=1 to n do
	  write(b[i,j]:6:2);
	   writeln;
	end;
end;
readln;
end.      
Поделиться:

Похожие статьи: