Задан двумерный массив, состоящий из 10 строк и 10 столбцов. сконструируйте программу, которая бы подсчитывала положительные и отрицательные элементы и записывала их в два разных массива

whcxjsg whcxjsg    3   09.08.2019 11:10    2

Ответы
pepsy94zm pepsy94zm  04.10.2020 07:11
PascalABC.NET

const
  n=10;
var
  a:array[1..n,1..n] of integer;
  i,j,kp,kq:integer;
  p,q:array of integer; // динамические массивы
begin
  Randomize;
  Writeln('Исходный массив из случайных чисел');
  kp:=0; kq:=0;
  SetLength(p,n*n); SetLength(q,n*n);
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(101)-50; // диапазон [-50;50]
      Write(a[i,j]:4);
      if a[i,j]>0 then begin p[kp]:=a[i,j]; Inc(kp) end
      else
        if a[i,j]<0 then begin q[kq]:=a[i,j]; Inc(kq) end
      end;
    Writeln
  end;
  SetLength(p,kp); SetLength(q,kq); // отрегулировали по заполнению
  Writeln('Положительные');
  for i:=0 to kp-1 do Write(p[i],' '); Writeln;
  Writeln('Отрицательные');
  for i:=0 to kq-1 do Write(q[i],' '); Writeln
end.

Пример
Исходный массив из случайных чисел
  46  47  -8 -32  36  41 -49 -15  25 -33
  18  15   1  15  21  43  30  41 -15 -21
 -48  15  -5  17  19  30 -38   0  10  11
 -16  10  48 -30 -40 -49 -48  24  18  24
  47  45  50  44  -3 -15  19  29 -13  38
 -23   3 -23  19  19 -19   1  26   0 -45
  28   1  26 -36  34 -43  18 -19   4  19
  41 -45 -27  12 -18 -43  16   1 -31 -17
 -39 -16 -37  22 -17  31 -17 -22   1  30
   0 -24 -27  12  46  -4 -32  36 -40 -11
Положительные
46 47 36 41 25 18 15 1 15 21 43 30 41 15 17 19 30 10 11 10 48 24 18 24 47 45 50 44 19 29 38 3 19 19 1 26 28 1 26 34 18 4 19 41 12 16 1 22 31 1 30 12 46 36
Отрицательные
-8 -32 -49 -15 -33 -15 -21 -48 -5 -38 -16 -30 -40 -49 -48 -3 -15 -13 -23 -23 -19 -45 -36 -43 -19 -45 -27 -18 -43 -31 -17 -39 -16 -37 -17 -17 -22 -24 -27 -4 -32 -40 -11
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика