Дан двумерный массив целых чисел. сформировать одномерный массив, каждый элемент которого равен количеству нечетных отрицательных элементов соответствующей строки двумерного массива.
// PascalABC.NET 3.2, сборка 1363 от 17.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); Writeln('*** Исходный массив [',m,',',n,'] ***'); var a:=MatrRandom(m,n,-50,50); a.Println(4); Writeln(4*a.ColCount*'-'); var b:=a.Rows.Select(x->x.Where(y->(y<0) and y.IsOdd).Count); b.Println; end.
Const n=10; m=10; var a: array[1..n,1..m] of integer; b: array[1..n] of integer; i,j,k: integer; begin; k:=0; writeln ('Двумерный массив:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100)-50; write (a[i,j]:4); if (a[i,j]<0) and (abs(a[i,j] mod 2)=1) then k:=k+1; end; writeln; b[i]:=k; k:=0; end; writeln; writeln ('Сформирован одномерный массив:'); for i:=1 to n do write (b[i]:3); end.
// Внимание! Если программа не работает, обновите версию!
begin
var m:=ReadInteger('Количество строк в массиве:');
var n:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',m,',',n,'] ***');
var a:=MatrRandom(m,n,-50,50);
a.Println(4); Writeln(4*a.ColCount*'-');
var b:=a.Rows.Select(x->x.Where(y->(y<0) and y.IsOdd).Count);
b.Println;
end.
Пример
Количество строк в массиве: 10
Количество столбцов в массиве: 13
*** Исходный массив [10,13] ***
-7 -30 -31 26 -19 4 -26 -37 -17 2 -7 -20 20
-6 33 -24 -14 -26 38 -11 -34 -40 -22 31 7 35
-24 -9 -35 -7 -14 -3 25 38 -30 -50 42 26 -15
45 -17 6 -18 27 25 -21 -21 1 -39 36 -27 -49
32 -38 -9 -17 42 -11 -31 -4 -23 33 48 40 -34
47 6 32 -26 33 -15 10 40 43 -44 11 28 1
-45 -23 6 26 -20 -20 -30 -15 16 12 -3 38 -42
3 6 39 17 0 8 -7 11 29 23 -2 -23 -21
1 13 -39 39 -44 30 5 -9 -17 43 41 2 2
17 19 32 -20 45 -16 -13 24 32 -46 -49 -25 6
6 1 5 6 5 1 4 3 3 3
n=10;
m=10;
var
a: array[1..n,1..m] of integer;
b: array[1..n] of integer;
i,j,k: integer;
begin;
k:=0;
writeln ('Двумерный массив:');
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(100)-50;
write (a[i,j]:4);
if (a[i,j]<0) and (abs(a[i,j] mod 2)=1)
then k:=k+1;
end;
writeln;
b[i]:=k;
k:=0;
end;
writeln;
writeln ('Сформирован одномерный массив:');
for i:=1 to n do
write (b[i]:3);
end.
Результат:
Двумерный массив:
19 30 -49 -10 -10 -14 -25 -19 -16 -11
-18 18 1 18 32 21 22 -33 45 45
-50 -26 -24 -47 8 39 14 34 45 -21
-33 5 -26 3 -38 0 -40 31 -42 11
-32 -25 -47 2 -24 34 -48 -27 18 8
12 42 -49 7 23 -5 3 48 32 1
22 -9 -14 -46 -28 26 -6 48 5 -19
11 40 -42 -17 27 25 -29 23 26 24
36 -9 -34 -14 17 -26 3 16 29 17
47 -39 49 7 39 26 39 48 -21 -1
Сформирован одномерный массив:
4 1 2 1 3 2 2 2 1 3