Определить сумму всех элементов двумерной матрицы и переставить строки - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д