Сгенерировать числа и разделить на четные и нечетные - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Сгенерировать числа и разделить на четные и нечетные»

textual
Листинг программы
  1. var
  2.     arAll, arOdd, arEven: Array[Byte] Of ShortInt;
  3.     i, j, nAll, nOdd, nEven: Byte;
  4.     swap: ShortInt;
  5.     isSorted: Boolean;
  6. begin
  7.     Randomize;
  8.     repeat
  9.         Write('Input n(1..255)=');
  10.         ReadLn(nAll);
  11.     until (nAll > 0);
  12.     nOdd := 0; nEven := 0;
  13.     Write('  All:');
  14.     for i := 0 to nAll - 1 do
  15.     begin
  16.         arAll[i] := Random(199) - 99;
  17.         Write(arAll[i]:4);
  18.         if (Odd(arAll[i]))
  19.         then
  20.         begin
  21.             arOdd[nOdd] := arAll[i];
  22.             Inc(nOdd); //не хватает в паскале инкремента
  23.         end
  24.         else
  25.         begin
  26.             arEven[nEven] := arAll[i];
  27.             Inc(nEven);
  28.         end;
  29.     end;
  30.     WriteLn; Write('  Odd:');
  31.     if (nOdd > 0)
  32.     then
  33.     begin
  34.         for i := 0 to nOdd - 1 do
  35.             Write(arOdd[i]:4);
  36.         isSorted := (nOdd = 1);
  37.         while (Not isSorted) do
  38.         begin
  39.             isSorted := True;
  40.             for i := 0 to nOdd - 2 do
  41.                 if (arOdd[i] < arOdd[i + 1])
  42.                 then
  43.                 begin
  44.                     swap := arOdd[i];
  45.                     arOdd[i] := arOdd[i + 1];
  46.                     arOdd[i + 1] := swap;
  47.                     isSorted := False;
  48.                 end;
  49.         end;
  50.         WriteLn; Write('s Odd:');
  51.         for i := 0 to nOdd - 1 do
  52.             Write(arOdd[i]:4);
  53.     end
  54.     else
  55.         Write('EMPTY!');
  56.     WriteLn; Write(' Even:');
  57.     if (nEven > 0)
  58.     then
  59.     begin
  60.         for i := 0 to nEven - 1 do
  61.             Write(arEven[i]:4);
  62.         isSorted := (nEven = 1);
  63.         while (Not isSorted) do
  64.         begin
  65.             isSorted := True;
  66.             for i := 0 to nEven - 2 do
  67.                 if (arEven[i] > arEven[i + 1])
  68.                 then
  69.                 begin
  70.                     swap := arEven[i];
  71.                     arEven[i] := arEven[i + 1];
  72.                     arEven[i + 1] := swap;
  73.                     isSorted := False;
  74.                 end;
  75.         end;
  76.         WriteLn; Write('sEven:');
  77.         for i := 0 to nEven - 1 do
  78.             Write(arEven[i]:4);
  79.     end
  80.     else
  81.         Write('EMPTY!');
  82. end.

Объяснение кода листинга программы

  1. Переменная arAll инициализируется как массив коротких целых чисел размером nAll.
  2. Переменная arOdd инициализируется как массив коротких целых чисел размером nOdd, который будет использоваться для хранения нечетных чисел.
  3. Переменная arEven инициализируется как массив коротких целых чисел размером nEven, который будет использоваться для хранения четных чисел.
  4. Цикл repeat используется для повторного запроса числа от пользователя до тех пор, пока число больше нуля.
  5. Внутри цикла repeat переменная nAll инициализируется как результат чтения числа с консоли.
  6. Переменные nOdd и nEven инициализируются как 0.
  7. В каждой итерации цикла for переменная arAll[i] инициализируется случайным числом от 0 до 99.
  8. Если число arAll[i] является нечетным, то оно записывается в arOdd[nOdd].
  9. Переменная nOdd увеличивается на 1.
  10. Если число arAll[i] является четным, то оно записывается в arEven[nEven].
  11. Переменная nEven увеличивается на 1.
  12. После завершения цикла for выводится сообщение о том, сколько чисел было введено.
  13. Затем выводится сообщение о том, сколько нечетных чисел было введено.
  14. Выводится сообщение о том, сколько четных чисел было введено.
  15. Если nOdd или nEven равны 0, то выводится сообщение EMPTY!.
  16. В конце кода выводится сообщение с числами из arOdd и arEven.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы