Написать программу! pascalabc.net . вычислить m=(kolichestvo(s)+ kolichestvo(n))^2. где функция kolichestvo(c) вычисляет количество четных элементов под побочной диагональю двумерного массива.
// 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
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.