Найти максимальную сумму элементов строк в один проход массива - Pascal ABC

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

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

2) Напишите программу, решающую поставленную задачу в один проход массива. задача:Ищет в двумерном массиве строку, сумма элементов которой максимальна.

Решение задачи: «Найти максимальную сумму элементов строк в один проход массива»

textual
Листинг программы
uses crt;
const nmax=15;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,imx:byte;
    sm,mx:integer;
begin
randomize;
repeat
write('Количество строк до ',nmax,' m=');
read(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
read(n);
until n in [1..nmax];
writeln('Исходная матрица:');
writeln(' №','Сумма:':n*4+8);
mx:=-maxint-1;
imx:=0;
for i:=1 to m do
 begin
  write(i:2);
  sm:=0;
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
    sm:=sm+a[i,j];
   end;
  writeln(sm:6);
  if sm>mx then
   begin
    mx:=sm;
    imx:=i;
   end;
 end;
writeln;
write('Максимальная сумма=',mx,' в строке ',imx);
end.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • a: массив 2-мерных целых чисел
    • m, n, i, j, imx: целочисленные переменные для работы с циклами
    • sm, mx: переменные для хранения текущей суммы и максимальной суммы
  2. Задаются начальные значения для циклов
  3. Пользователю предлагается ввести количество строк и столбцов матрицы
  4. Выводится исходная матрица, построчно суммируются элементы строк
  5. Переменная mx инициализируется значением -maxint-1, а imx=0
  6. Происходит обход матрицы в двух циклах, где:
    • i - номер строки
    • j - номер столбца
  7. В каждой итерации цикла элементам матрицы присваивается случайное значение из диапазона [1..20]
  8. К каждому элементу матрицы прибавляется его значение и сохраняется в переменной sm
  9. Если sm больше текущего значения mx, то обновляются значения mx и imx
  10. После завершения циклов выводится максимальная сумма и номер строки, в которой она была найдена
  11. Завершается работа программы

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


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

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

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