Advertisement
gguuppyy

лаба2н1(изм)

Oct 16th, 2023 (edited)
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.16 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: Array of Integer;
  9.     IsCorrect: Boolean;
  10.     Current, Temp: 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.  
  34.     For I := 0 To High(Arr) Do
  35.         Repeat
  36.             IsCorrect := True;
  37.             Write('Введите элемент номер ', I + 1, ': ');
  38.             Try
  39.                 Readln(Arr[I]);
  40.             Except
  41.                 Writeln('Ошибка! Введите целое число.');
  42.                 IsCorrect := False;
  43.             End;
  44.         Until IsCorrect;
  45.  
  46.     Current := 0;
  47.  
  48.     For I := 0 to High(Arr) do
  49.         If Arr[I] = 0 Then
  50.         Begin
  51.             Temp := Arr[Current];
  52.             Arr[Current] := Arr[I];
  53.             Arr[I] := Temp;
  54.             Inc(Current);
  55.         End;
  56.  
  57.     For I := Current To High(Arr) do
  58.         If Arr[I] < 0 Then
  59.         Begin
  60.             Temp := Arr[Current];
  61.             Arr[Current] := Arr[I];
  62.             Arr[I] := Temp;
  63.             Inc(Current);
  64.         End;
  65.  
  66.     Write('Отсортированная последовательность: ');
  67.     For I := 0 To High(Arr) Do
  68.         Write(Arr[I], ' ');
  69.     Readln;
  70.  
  71. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement