Дана целая прямоугольная матрица размерности NxM. Найти среднее арифметическое элементов каждого столбца и упорядочить столбцы по возрастанию этих элементов. (При сортировке использовать метод прямого обмена) — Pascal(Паскаль)

program mass;
uses crt;
type mm=array[1..100,1..100]of integer;
 
var i,j,min,max,m,n:integer;
    k:mm;
 
function SummSr(t:integer):real;
var i,sum:integer;
begin
 sum:=0;
 for i:=1 to m do sum:=sum+k[i,t];
 summsr:=sum/m;
end;
 
procedure ChangeRow(c1,c2:integer);
var i,j,b:integer;
begin
 for i:=1 to m do
 begin
  b:=k[i,c1];
  k[i,c1]:=k[i,c2];
  k[i,c2]:=b;
 end;
end;
 
begin
 clrscr;
 randomize;
 writeln('Vvedite razmernost'' (M,N):');
 readln(m,n);
 for i:=1 to m do
 for j:=1 to n do
 begin
 k[i,j]:=random(41);
 end;
 
 writeln('Massiv do:');
 for i:=1 to m do
 begin
  for j:=1 to n do write(k[i,j]:2,' ');
  writeln;
 end;
 for i:=1 to n do writeln('Srednee znachenie stolbca #',i,' = ',SummSr(i):0:2);
 
 for i:=1 to m do
 for j:=1 to m-1 do
 if SummSr(j)>SummSr(j+1) then ChangeRow(j,j+1);
 writeln('Massiv posle:');
 for i:=1 to m do
 begin
  for j:=1 to n do write(k[i,j]:2,' ');
  writeln;
 end;
 readln;
end.

Leave a Comment

+ 50 = 59