Program Ice8;
uses crt;
const Max=20;
Type Tmas = array [1..Max,1..Max] of real;
Procedure Vvoda (Var A: Tmas; Var n: integer);
Var i,j :integer;
BEGIN
clrscr;
randomize;
repeat
Write ('Razmer Matrici [1..',Max,'] = ');
ReadLn(n);
until n in [1..Max];
for i:=1 to n do
for j:=1 to n do
A[i,j]:=10*random;
end;
Procedure Vyvoda (Var A: Tmas; n: integer);
Var i,j :integer;
Begin
WriteLn ('Isxodnaa` matrica');
for i:=1 to n do
Begin
for j:=1 to n do
Write(A[i,j]:6:2);
WriteLn;
end;
end;
Procedure Summa(A: Tmas;n:integer;Var B: Tmas);
Var i,j :integer;
sum:real;
Begin
for j:=1 to n do
begin
Sum:=0;
for i:=1 to n do
Sum:=Sum+A[i,j];
B[1,j]:=j;
B[2,j]:=Sum;
End;
WriteLn('Summa v stolbcah ');
for i:=1 to n do
write(b[1,i]:6:0);
writeln;
for i:=1 to n do
Write (b[2,i]:6:2);
writeln;
writeln;
end;
Procedure Sortirivki(Var B: Tmas;n:integer);
var i,j,k:byte;
x:real;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if b[2,i]<b[2,j] then
for k:=1 to n do
begin
x:=b[k,i];
b[k,i]:=b[k,j];
b[k,j]:=x;
end;
writeln('=');
write('=');
for i:=1 to n do
write(b[1,i]:6:0);
writeln;
write('=:');
for i:=1 to n do
write(b[2,i]:6:2);
end;
var a,b:Tmas;
n:integer;
Begin
clrscr;
randomize;
Vvoda (A,n);
Vyvoda (A,n);
Writeln;
Summa(A,n,B);
Writeln;
Writeln;
Writeln('Rezultat sortirivki');
Sortirivki(B,n);
readln
end.