Нужно добавить в программу процедуру: Сортировка строк матрицы по возрастанию суммы их элементов
uses crt;
const n=10;
type mtr=array[0..n+1,0..n+1] of integer;
procedure lok_min(a:mtr;var m:byte);
var i,j,k,p,q:byte;
begin
for i:=0 to n+1 do
begin
a[0,i]:=maxint;
a[n+1,i]:=maxint;
a[i,0]:=maxint;
a[i,n+1]:=maxint
end;
m:=0;
for i:=1 to n do
for j:=1 to n do
begin
q:=0;
for k:=i-1 to i+1 do
for p:=j-1 to j+1 do
if a[k,p]>a[i,j] then inc(q);
if q=8 then inc(m);
end;
writeln('Количество локальных минимумов= ',m);
end;
function sum_mod(a:mtr):integer;
var i,j:byte;
begin
result:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
result:=result+abs(a[i,j])
end;
var a: mtr;
i,j,k:byte;
begin
randomize;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=-5+random(11);
write(a[i,j]:3);
end;
writeln;
end;
lok_min(a,k);
writeln('Сумма модулей выше главной диагонали=',sum_mod(a))
end.
Напиши фрагмент кода к этому коду, в котором на экран буде выведено n раз " сумма строки і = Si". Могешь или предоставленный код тоже где-то на халяву перепал?
Program HelloWorld(output);
var
n: integer;
a : array[1..50,1..50] of integer;
procedure ReadData;
var
i,j:integer;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j] := -10 + random(21)
end;
procedure PrintData;
var
i,j:integer;
s:integer;
begin
writeln;
for i:=1 to n do
begin
write(i,': ');
s:=0;
for j:=1 to n do
begin
write(a[i,j]:5);
inc(s,a[i,j])
end;
write(' : RowSum = ',s);
writeln
end
end;
function GetRowSum(row : integer):integer;
var
i : integer;
begin
GetRowSum := 0;
for i := 1 to n do
GetRowSum := GetRowSum + a[row, i]
end;
procedure SwapRows(rowA, rowB : integer);
var
i: integer;
begin
for i := 1 to n do
begin
inc(a[rowA,i],a[rowB,i]);
a[rowB,i]:=a[rowA,i]-a[rowB,i];
dec(a[rowA,i],a[rowB,i])
end
end;
procedure SortArray;
var
i,j:integer;
begin
for i := 1 to n-1 do
for j := i to n do
if GetRowSum(i) > GetRowSum(j) then SwapRows(i,j)
end;
begin
readln(n);
ReadData;
PrintData;
SortArray;
PrintData
end.