Помогите, пожалуйста, написать программу!PascalABC.net . Вычислить M=(kolichestvo(S)+...

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

Помогите, пожалуйста, написать программу!
PascalABC.net .
Вычислить M=(kolichestvo(S)+ kolichestvo(N))^2. Где функция kolichestvo(C) вычисляет количество четных элементов под побочной диагональю двумерного массива.


Информатика (17 баллов) | 62 просмотров
0

Очень помогли :с

0

Квадратный.

0

Два квадратных массива.

Дано ответов: 2
0 голосов
Правильный ответ

Function kolichestvo(a:array[,] of integer):integer;
begin
var c:=a.ColCount-1;
Result:=a.ElementsWithIndexes.Where(k->k[2]>c-k[1]).
          Select(k->k[0]).Where(x->x mod 2=0).Count;
end;

begin
 var k:=ReadInteger('Количество строк и столбцов в матрицах = ');
 var S:=MatrRandom(k,k,-10,10);
 writeln('S:'); S.Println(6);
 var N:=MatrRandom(k,k,-10,10);
 writeln('N:'); N.Println(6);
 writeln('M = ',sqr(kolichestvo(S)+kolichestvo(N)));
end.

Пример:
Количество строк и столбцов в матрицах =  4
S:
     9     9    -7     5
     4     8    -2     8
     8    10    -9    -2
    10    -6    -3    -2
N:
     9    -7    -4    -1
    -1    -3     1     3
     2    -6    -8     8
     2     2     8     0
M = 81

(194k баллов)
0

Спасибо!

0

Пожалуйста.

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

function kolichestvo(c:array [,] of integer):integer;
begin
  Result:=0;
  var n:=c.RowCount;
  for var i:=1 to n-1 do
    for var j:=n-i to n-1 do
    if c[i,j].IsEven then Result+=1
end;

function massiv:array[,] of integer;
begin
  var n:=ReadInteger('Число строк/столбцов: ');
  Result:=MatrRandom(n,n,-99,99)
end;

begin
  var s:=massiv; s.Println(4); Writeln(4*s.ColCount*'-');
  var n:=massiv; n.Println(4); Writeln(4*n.ColCount*'-');
  var m:=Sqr(kolichestvo(s)+kolichestvo(n));
  Writeln('M=',m)
end.

Пример
Число строк/столбцов:  3
 -77 -81  82
 -30 -37  39
  31  92  12
------------
Число строк/столбцов:  6
  66   9 -64 -53  13 -61
  16 -72 -25  38 -19  21
  40  29  38  77 -38  11
  31  76 -83 -17 -58   1
  -2  39 -63  84 -35 -42
 -23 -75 -57  92 -14 -73
------------------------
M=64
(150k баллов)
0

Спасибо большое с: