Дана квадратная матрица размером n*n, содержащие вещественные положительные числа. Определить сумму четных элементов в каждом столбце матрицы и упорядочить номера столбцов по убыванию значений найденных сумм с помощью обменной сортировки. Вывести упорядоченный список номеров столбцов и соответствующих им сумм — Pascal(Паскаль)

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.

Leave a Comment

89 + = 99