Имеются два массива АI(IO) и ВI(I2), содержащие , как положительные, так и отрицательные элементы. Получить новые массивы А2 и В2 соответственно только с положительными и только отрицательными элементами — Pascal(Паскаль)

Uses
 CRT;
Var
 a,b,a2,b2:array[1..22] of integer;
 i,kol,kol2:integer;
Begin
randomize;
kol:=0;
kol2:=0;
writeln('Исходный массив А: ');
for i:=1 to 10 do
begin
 a[i]:=random(10)-3;
 write(a[i]:3);
  if a[i]>0 then
  begin
   inc(kol);
   a2[kol]:=a[i];
  end
  else
  if a[i]<0 then
  begin
   inc(kol2);
   b2[kol2]:=a[i];
  end
end;
writeln;
writeln('Исходный массив B: ');
for i:=1 to 12 do
begin
 b[i]:=random(15)-5;
 write(b[i]:3);
   if b[i]>0 then
  begin
   inc(kol);
   a2[kol]:=b[i];
  end
  else
  if b[i]<0 then
  begin
   inc(kol2);
   b2[kol2]:=b[i];
  end
end;
writeln;
writeln('Результирующий массив А2: ');
for i:=1 to kol do
 write(a2[i]:3);
writeln;
writeln('Результирующий массив В2: ');
for i:=1 to kol2 do
 write(b2[i]:3);
readln;
End.

Следующий вариант

Uses
  CRT;

Type
  mas = array [1 .. 22] of integer;

Var
  a, b, a2, b2: mas;
  i, kol, kol2: integer;

Procedure masiv(Var l: mas; k, g, g2: integer; c: char);
begin
  writeln('vvedite ', c, ': ');
  for i := 1 to k do
  begin
    l[i] := random(g) - g2;
    write(l[i]:3);
    if l[i] > 0 then
    begin
      inc(kol);
      a2[kol] := l[i];
    end
    else if l[i] < 0 then
    begin
      inc(kol2);
      b2[kol2] := l[i];
    end
  end;
  writeln;
end;

procedure vivod(Var l: mas; k: integer; c: string);
begin
  writeln('vvedite ', c, ': ');
  for i := 1 to k do
    write(l[i]:3);
  writeln;
end;

Begin
  randomize;
  kol := 0;
  kol2 := 0;
  masiv(a, 10, 10, 3, 'A');
  masiv(b, 12, 15, 5, 'B');
  vivod(a2, kol, 'A2');
  vivod(b2, kol2, 'B2');
  readln;

End.

Leave a Comment

64 − 59 =