Написать программу! 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.
// Внимание! Если программа не работает, обновите версию!
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
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