Advertisement
gguuppyy

лаба2н1

Oct 9th, 2023 (edited)
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.59 KB | Source Code | 0 0
  1. Program Laba2_1;
  2.  
  3. Uses
  4.     Windows, System.SysUtils;
  5.  
  6. Var
  7.     N, I: Integer;
  8.     Arr, Zeros, Negatives, Positives: Array of Integer;
  9.     IsCorrect: Boolean;
  10.     ZeroIndex, NegativeIndex, PositiveIndex: Integer;
  11.  
  12. Begin
  13.     SetConsoleCP(1251);
  14.     SetConsoleOutputCP(1251);
  15.     Writeln('Данная программа предназначена для изменения данной последовательности так, чтобы в начале стояли все нулевые элементы, затем отрицательные, а затем положительные элементы последовательности.');
  16.     Repeat
  17.         IsCorrect := True;
  18.         Writeln('Введите количество элементов в последовательности:');
  19.         Try
  20.             Readln(N);
  21.         Except
  22.             IsCorrect := False;
  23.             Writeln('Ошибка! Введите число.');
  24.         End;
  25.         If IsCorrect And (N < 1) Then
  26.         Begin
  27.             IsCorrect := False;
  28.             Writeln('Ошибка! Введите верное количество элементов.');
  29.         End;
  30.     Until IsCorrect;
  31.  
  32.     SetLength(Arr, N);
  33.     SetLength(Zeros, N);
  34.     SetLength(Negatives, N);
  35.     SetLength(Positives, N);
  36.  
  37.     For I := 0 To N - 1 Do
  38.         Repeat
  39.             IsCorrect := True;
  40.             Write('Введите элемент номер ', I + 1, ': ');
  41.             Try
  42.                 Readln(Arr[I]);
  43.             Except
  44.                 Writeln('Ошибка! Введите целое число.');
  45.                 IsCorrect := False;
  46.             End;
  47.         Until IsCorrect;
  48.  
  49.     ZeroIndex := 0;
  50.     NegativeIndex := 0;
  51.     PositiveIndex := 0;
  52.  
  53.     For I := 0 To N - 1 Do
  54.     Begin
  55.         If Arr[I] = 0 Then
  56.         Begin
  57.             Zeros[ZeroIndex] := 0;
  58.             Inc(ZeroIndex);
  59.         End
  60.         Else If Arr[I] < 0 Then
  61.         Begin
  62.             Negatives[NegativeIndex] := Arr[I];
  63.             Inc(NegativeIndex);
  64.         End
  65.         Else
  66.         Begin
  67.             Positives[PositiveIndex] := Arr[I];
  68.             Inc(PositiveIndex);
  69.         End;
  70.     End;
  71.  
  72.     For I := 0 To ZeroIndex - 1 Do
  73.         Arr[I] := Zeros[I];
  74.  
  75.     For I := 0 To NegativeIndex - 1 Do
  76.         Arr[I + ZeroIndex] := Negatives[I];
  77.  
  78.     For I := 0 To PositiveIndex - 1 Do
  79.         Arr[I + ZeroIndex + NegativeIndex] := Positives[I];
  80.  
  81.     Write('Отсортированная последовательность: ');
  82.     For I := 0 To N - 1 Do
  83.         Write(Arr[I], ' ');
  84.     Readln;
  85.  
  86. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement