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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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