Опубликовано 26.01.2018 по предмету Информатика от Гость

Дан двумерный массив. Найти:
а) минимальную сумму элементов строки;
б) максимальную сумму элементов столбца.
Обе задачи решить двумя способами:
1) с использованием дополнительного одномерного массива;
2) без использования дополнительного одномерного массива.

Ответ оставил Гость

/ PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

1. Со вспомогательным массивом

begin
  var (n,m):=ReadInteger2(Количество строк и столбцов в массиве:);
  var a:=MatrRandom(n,m,-99,99);
  Writeln(*** Исходный массив ***); a.Println(4);
  Writeln(4*a.ColCount*-);
  var min:=integer.MaxValue;
  var b:array of integer;
  for var i:=1 to a.RowCount-1 do begin
    b:=a.Row(i); // строка в одномерном массиве
    var s:=b.Sum;
    if s    end;
  var max:=integer.MinValue;
  for var j:=1 to a.ColCount-1 do begin
    b:=a.Col(j); // колонка в одномерном массиве
    var s:=b.Sum;
    if s>max then max:=s;
    end;
  Writeln(Минимальная сумма по строкам ,min);
  Writeln(Максимальная сумма по колонкам ,max);
end.

Пример
Количество строк и столбцов в массиве: 5 8
*** Исходный массив ***
 -89  16  35  74 -76  -3  -3 -25
  54 -24  12  13  63 -60   4  92
  74  82  12  12  -1  11 -29 -19
 -72 -79  -3 -22  71 -53  57 -30
  65 -25   2 -25  82 -73   4 -23
--------------------------------
Минимальная сумма по строкам -131
Максимальная сумма по колонкам 139

2. Без вспомогательного массива

begin
  var (n,m):=ReadInteger2(Количество строк и столбцов в массиве:);
  var a:=MatrRandom(n,m,-99,99);
  Writeln(*** Исходный массив ***); a.Println(4);
  Writeln(4*a.ColCount*-);
  Writeln(Минимальная сумма по строкам ,
      a.Rows.Select(row->row.Sum).Min);
  Writeln(Максимальная сумма по колонкам ,
      a.Cols.Select(col->col.Sum).Max);
end.

Пример
Количество строк и столбцов в массиве: 7 4
*** Исходный массив ***
 -44  32 -66 -71
  56 -99  83  27
 -30  39 -65 -95
 -40   6  37  37
  75  23 -86  80
 -12  98 -65  28
  47 -85  25  -6
----------------
Минимальная сумма по строкам -151
Максимальная сумма по колонкам 52

Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы