Подсчитать сумму элементов столбца j массива a[i,j], запол. случайными числами

0 голосов
57 просмотров

Подсчитать сумму элементов столбца j массива a[i,j], запол. случайными числами


Информатика (15 баллов) | 57 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var k:=ReadInteger('Номер столбца для подсчета суммы:');
  Writeln('S=',a.Col(k-1).Sum)
end.

Пример
Количество строк в массиве: 5
Количество столбцов в массиве: 8
*** Исходный массив [5,8] ***
  91 -39  49  29 -60 -58 -88  -5
 -80  -5  58  38 -75 -76 -54 -33
 -60 -66  98 -88  96 -48  94   2
  -4  81 -38 -91  26 -91  32   7
  30  83  30   3  22  93  31   0
--------------------------------
Номер столбца для подсчета суммы: 4
S=-109

На случай, если я неверно понял задание и нужна сумма по КАЖДОЙ колонке:

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  a.Cols.Select(s->s.Sum).Println
end.

Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 7
*** Исходный массив [4,7] ***
  13 -14  82  88 -38  55  89
  11  74 -35  85  13  27 -80
 -88  76 -64 -88 -50  28 -13
  90  87 -71 -94 -59  95 -83
----------------------------
26 223 -88 -9 -134 205 -87
(150k баллов)
0 голосов

C#

int sum = 0;
for(int j = 0; j < n; j++)
{
   sum = sum + a[0,j];
}

Где n граница массива. Но это только для первой строчки!

Полная версия на паскале: 
uses  GraphABC;
var
  sum: integer;
  a: array [1..10, 1..10] of integer;
begin
  for var i := 1 to 10 do
  begin
    for var j := 1 to 10 do
    begin
      a[i, j] := Random(10, 67);
    end;
  end;
  for var j := 1 to 10 do
  begin
    sum := sum + a[1, j];
  end;
  print(sum);
end.

Работоспособность проверена

(164 баллов)
0

Мне на паскаль нужно)

0

Получите роспишитесь)