Дан массив X(N). Получить новый массив Y(N) такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из X — Pascal(Паскаль)

{      Пример 2.5. Дан массив X(N). Получить новый массив Y(N), такой,
                   что в нем сначала идут положительные числа,  затем
                       нулевые, и затем отрицательные из X.

                                     Тест
       ╔══════════════════════════════╦═══════════════════════════════╗
       ║            Данные            ║          Результат            ║
       ╠══════════════════════════════╬═══════════════════════════════╣
       ║ n = 7                        ║                               ║
       ║ X = (-1, 2, 0, 4, -3, -2, 0) ║ Y = ( 2, 4, 0, 0, -1, -3, -2) ║
       ╚══════════════════════════════╩═══════════════════════════════╝
}
Program NewOrder;
  Uses Crt;
  Var N, i, k : Integer;
      X, Y    : Array [1..20] of Real;
BEGIN
  ClrScr;
  Write('Введите N = '); ReadLn(N);
  For i := 1 to N do
    begin
      Write('X[ ', i, ' ] = '); ReadLn(X[i])
    end;

  k:=0;
  For i := 1 to N do  { Занесение в Y положительных чисел из Х }
    If X[i]>0 then
      begin k:=k+1; Y[k]:=X[i]
      end;

  For i := 1 to N do  { Занесение в Y чисел, равных нулю, из Х }
    If X[i]=0 then
      begin k:=k+1; Y[k]:=X[i]
      end;

  For i := 1 to N do  { Занесение в Y отрицательных чисел из Х }
    If X[i]<0 then
      begin k:=k+1; Y[k]:=X[i]
      end;

  Write('О т в е т : полученный массив');
  For i := 1 to N do Write(Y[i] : 5 : 1);
  WriteLn; ReadLn
END.

Leave a Comment

+ 7 = 10