Дана квадратная целочисленная матрица порядка n. Сформировать результирующий одномерный...

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

Дана квадратная целочисленная матрица порядка n. Сформировать результирующий одномерный массив, элементами которого являются построчные средние арифметические значения нечетных элементов исходной матрицы. Задача на Pascal.


Информатика (20 баллов) | 121 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(n*4*'-');
  var b:=a.Rows.Select(row->row.Where(t->t.IsOdd).DefaultIfEmpty.Average)
    .ToArray;
  b.Println;
end.

Пример
Количество строк/столбцов в матрице: 5
*** Исходная матрица ***
  40 -38  16 -70  26
  87   7 -31  99  34
 -34 -47 -33  32  56
  66  71  41   7  80
  55  42 -22   7  86
--------------------
0 40.5 -40 39.6666666666667 31
(150k баллов)
0 голосов

Program sector;
const
n=10;
var
a:array [1..n,1..n] of integer;
b:array [1..n] of real;
i,j,z: byte;
begin
randomize;
for i:=1 to n do begin
    for j:=1 to n do begin
        a[i,j]:=random (40);
        a[i,j]:=a[i,j]-20;
        write(a[i,j]:4);
    end;
    writeln;
    end;
for i:=1 to n do begin
    z:=0;
    for j:=1 to i do
    if (a[i,j] mod 2 <> 0) then z:=z+a[i,j];
    b[i]:=z/2;
    writeln(i,' ',b[i]);
end;
readln;
end.

(340 баллов)