дана действительная квадратная матрица порядка а(n*n).определить что больше: сумма элементов, находящихся под главной диагональю, или сумма элементов, находящихся над главной диагональю.
PascalABC.NET 3.4, сборка 1670 от 23.05.2018 Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк/столбцов в матрице:'); Writeln('*** Исходная матрица ***'); var a:=MatrRandom(n,n,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var (su,sl):=(0,0); for var i:=0 to n-1 do for var j:=0 to n-1 do if i<j then su+=a[i,j] else if i>j then sl+=a[i,j]; var sgn:=Sign(su-sl); case sgn of -1:Writeln('Сумма элементов над диагональю меньше'); 0:Writeln('Суммы элементов над и под диагональю равны'); 1:Writeln('Сумма элементов над диагональю больше') end end.
Самое простое решение program znanijatop; const n = 100; var k,i,j:byte; s1,s2:real; a:array[1..n,1..n] of real; begin writeln('vvedite poryadok matrice'); readln(k); s1:=0;s2:=0;for i:=1 to k do begin for j:=1 to k do begin writeln('vvedite a[',i,',',j,']'); readln(a[i,j]); end; end; for i:=1 to k do begin for j:=1 to k do begin if i<j then s1:=s1+a[i,j]; if i>j then s2:=s2+a[i,j]; end; end; if s1 > s2 then writeln('nad glavnoy diagonali summa bolshe'); if s1 < s2 then writeln('pod glavnoy diagonali summa bolshe'); if s1 = s2 then writeln('ravni'); end.
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк/столбцов в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var (su,sl):=(0,0);
for var i:=0 to n-1 do
for var j:=0 to n-1 do
if i<j then su+=a[i,j]
else if i>j then sl+=a[i,j];
var sgn:=Sign(su-sl);
case sgn of
-1:Writeln('Сумма элементов над диагональю меньше');
0:Writeln('Суммы элементов над и под диагональю равны');
1:Writeln('Сумма элементов над диагональю больше')
end
end.
const n = 100;
var
k,i,j:byte;
s1,s2:real;
a:array[1..n,1..n] of real;
begin
writeln('vvedite poryadok matrice');
readln(k);
s1:=0;s2:=0;for i:=1 to k do begin
for j:=1 to k do begin
writeln('vvedite a[',i,',',j,']');
readln(a[i,j]);
end;
end;
for i:=1 to k do begin
for j:=1 to k do begin
if i<j then s1:=s1+a[i,j];
if i>j then s2:=s2+a[i,j];
end;
end;
if s1 > s2 then writeln('nad glavnoy diagonali summa bolshe');
if s1 < s2 then writeln('pod glavnoy diagonali summa bolshe');
if s1 = s2 then writeln('ravni');
end.