Дан массив A(m,n). Из элементов лежащих выше главной диагонали найти максимальный элемент, а ниже главной-отрицательный минимальный элемент. Найти сумму элементов, лежащих на главной диагонали.
program Massiv;
uses Crt;
type
matr = array[1..10,1..15] of Real;
procedure Vvod_Matr(var X:matr; var n,m:byte);
label Error;
var
i,j: byte;
begin
Error: WriteLn('Введите');
Write('количество строк (n<=10): ');
ReadLn(n);
Write('количество столбцов (m<=15): ');
ReadLn(m);
if (n>10) or (m>15) then goto Error;
WriteLn('Введите элементы матрицы:');
for i:=1 to n do
for j:=1 to m do
begin
Write('[',i,',',j,']: ');
ReadLn(X[i,j]);
end;
end;
procedure Vyvod_Matr(X:matr; n,m:byte);
var
i,j: byte;
begin
for i:=1 to n do
begin
for j:=1 to m do Write(X[i,j]:7:2);
WriteLn;
end;
end;
function Prov_Matr(n,m:byte): boolean;
begin
if n=m then Prov_Matr:=true
else Prov_Matr:=false;
end;
procedure Max_Min_Sum_Matr(X:matr; n,m:byte);
var
i,j: byte;
min,max,sum: real;
begin
min:=1000000;
max:=X[1,2];
sum:=0;
for i:=1 to n do
begin
Sum:=Sum+X[i,i];
for j:=1 to m do
begin
if i>j then
if (X[i,j]<min) and (X[i,j]<0) then min:=X[i,j];
if i<j then
if X[i,j]>max then max:=X[i,j];
end;
end;
WriteLn('Сумма главного диагонали в матрице: ',sum:5:2);
WriteLn('Максимальный элемент выше главной диагонали в матрице: ',max:5:2);
if min<0 then WriteLn('Отрицательный минимальный элемент ниже главной диагонали в матрице: ',min:5:2)
else WriteLn('Нет отрицательного минимального элемента ниже главной диагонали в матрице.');
end;
VAR
A: matr;
nA,mA: byte;
BEGIN
ClrScr;
WriteLn('Ввод матрицы А:');
Vvod_Matr(A,nA,mA);
WriteLn('Вывод матрицы А:');
Vyvod_Matr(A,nA,mA);
if Prov_Matr(nA,mA) then Max_Min_Sum_Matr(A,nA,mA)
else WriteLn('Матрица не квадратная, выполнение задачи невозможна.');
ReadLn;
END.