Помогите, пожалуйста, написать программу!PascalABC.net . Вычислить M=(kolichestvo(S)+ kolichestvo(N))^2. Где функция kolichestvo
Помогите, пожалуйста, написать программу! PascalABC.net . Вычислить M=(kolichestvo(S)+ kolichestvo(N))^2. Где функция kolichestvo(C) вычисляет количество четных элементов под побочной диагональю двумерного массива.
<em>// PascalABC.NET 3.3, сборка 1600 от 23.12.2017</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
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.
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.