Дана квадратная целочисленная матрица порядка n. сформировать результирующий одномерный массив, элементами которого являются построчные средние арифметические значения нечетных элементов исходной матрицы. на pascal.
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.
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.
Внимание! Если программа не работает, обновите версию!
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
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.