Определить среднее арифметическое элементов матрицы, переставить строки по убыванию числа ненулевых элементов - Pascal

Узнай цену своей работы

Формулировка задачи:

Дана матрица А(m, n), 1<(m, n)<10. Определить среднее арифметическое элементов матрицы. Переставить строки по убыванию числа ненулевых элементов в строках.

Решение задачи: «Определить среднее арифметическое элементов матрицы, переставить строки по убыванию числа ненулевых элементов»

textual
Листинг программы
const mm=9; mn=9; W=4;
procedure swp(var a, b: Integer); var t: Integer; begin t:=a; a:=b; b:=t; end;
var
  a: array [1..mm,1..mn] of Integer;
  b: array [1..mm] of Integer;
  m, n, i, j, p, q, t: Integer;
begin
  Randomize;
  repeat Write('m n: '); ReadLn(m,n); until (m in [2..mm]) and (n in [2..mn]);
  for i:=m downto 1 do for j:=n downto 1 do begin
    a[i,j]:=Random(2);
    if a[i,j]<>0 then Inc(b[i]);
  end;
  WriteLn('A =');
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:W); WriteLn(' |',b[i]:W);
  end;
  q:=m;
  repeat
    p:=q; q:=1;
    for i:=1 to p-1 do
      if b[i+1]>b[i] then begin
        q:=i; swp(b[i],b[i+1]); for j:=n downto 1 do swp(a[i,j],a[i+1,j]);
      end;
  until q=1;
  WriteLn('A''=');
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:W); WriteLn(' |',b[i]:W);
  end;
end.

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы