Определить среднее арифметическое элементов матрицы, переставить строки по убыванию числа ненулевых элементов - 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.