Определить сумму всех элементов двумерной матрицы и переставить строки - Pascal ABC
Формулировка задачи:
Всем привет! Какой алгоритм решения задания: "Дана матрица А(m, n), 1<(m, n)<10. Определить сумму всех элементов матрицы. Переставить строки по возрастанию количества положительных элементов в строках." ? Я вообще не могу что-то вдуплить, как и каким образом. Заранее спасибо)
Решение задачи: «Определить сумму всех элементов двумерной матрицы и переставить строки»
textual
Листинг программы
const nmax=10; var a:array[1..nmax,1..nmax+1] of integer; n,m,i,j,k,s:integer; begin randomize; repeat write('Количество строк от 2 до ',nmax,' m='); readln(m); until m in [2..nmax]; repeat write('Количество столбцов от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; //вычисление суммы и кол. полож. в строках, запись их в дополнительный столбец s:=0; for i:=1 to m do begin k:=0; for j:=1 to n do begin a[i,j]:=-10+random(21); s:=s+a[i,j]; if a[i,j]>0 then k:=k+1; end; a[i,n+1]:=k; end; writeln('Исходный массив:'); writeln('Кол. полож.':(n*4+12)); for i:=1 to m do begin for j:=1 to n+1 do if j=n+1 then write(a[i,j]:6) else write(a[i,j]:4); writeln; end; writeln('Сумма всех элементов=',s); //перестановка строк по возрастанию кол. полож. (по последнему столбцу) for i:=1 to m-1 do for k:=i+1 to m do if a[i,n+1]>a[k,n+1] then for j:=1 to n+1 do begin s:=a[i,j]; a[i,j]:=a[k,j]; a[k,j]:=s; end; writeln('Строки по возрастанию количества положительных элементов в них:'); writeln('Кол.полож.':(n*4+12)); for i:=1 to m do begin for j:=1 to n+1 do if j=n+1 then write(a[i,j]:6) else write(a[i,j]:4); writeln; end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д