Составте 4 процедуры для обработки двумерного массива( pascaleabs.net)1) найти сумму и

Составте 4 процедуры для обработки двумерного массива( pascaleabs.net)
1) найти сумму и количество четных частей двумерного массива.
2) обретать "кордитнаты" наибольшего элемента.
3) поменять все четные значения на 0
4) определить номер строки в которой сумма частей максимальна

Заранее спасибо!

Задать свой вопрос
1 ответ
// PascalABC.NET 3.2, сборка 1401 от 14.03.2017
// Внимание! Если программка не работает, обновите версию!

procedure SumKolEven(a:array[,] of integer; var s,k:integer);
begin
  var p:=a.Rows.SelectMany(x-gt;x).Where(x-gt;x.IsEven);
  s:=p.Sum; k:=p.Count
end;

procedure MaxCoord(a:array[,] of integer; var imax,jmax:integer);
begin
  (imax,jmax):=(0,0);
  for var i:=0 to a.RowCount-1 do
    for var j:=0 to a.ColCount-1 do
      if a[i,j]gt;a[imax,jmax] then (imax,jmax):=(i,j)
end;

procedure ZeroEven(a:array[,] of integer);
begin
  for var i:=0 to a.RowCount-1 do
    for var j:=0 to a.ColCount-1 do
      if a[i,j].IsEven then a[i,j]:=0
end;

procedure MaxSumRow(a:array[,] of integer; var irow:integer);
begin
  irow:=a.Rows.Select(x-gt;x.Sum).ToArray.IndexMax;
end;

begin
  var n:=ReadInteger('Количество строк в массиве:');
  var m:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Начальный массив [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var sum,kol:integer;
  SumKolEven(a,sum,kol); Writeln('S=',sum,', k=',kol);
  var im,jm:integer;
  MaxCoord(a,im,jm); Writeln('Координаты максимума [',im+1,',',jm+1,']');
  var b:=Copy(a);
  ZeroEven(b);
  b.Println(4); Writeln(4*b.ColCount*'-');
  MaxSumRow(a,im); Writeln('Максимальная сумма у строки ',im+1)
end.

Пример
Количество строк в массиве: 5
Количество столбцов в массиве: 8
*** Начальный массив [5,8] ***
  23  94  26  40 -88 -29  88 -46
 -98  64 -78  93  17  36  66  56
 -52 -16  -7 -33 -63 -95  40  96
  10 -30  79 -75 -47  83  30 -70
 -37 -50 -80  18  -7 -43  68 -68
--------------------------------
S=56, k=25
Координаты максимума [3,8]
  23   0   0   0   0 -29   0   0
   0   0   0  93  17   0   0   0
   0   0  -7 -33 -63 -95   0   0
   0   0  79 -75 -47  83   0   0
 -37   0   0   0  -7 -43   0   0
--------------------------------
Наибольшая сумма у строчки 2
Nina Cherpu
Спасибо!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт