Создать новый вектор, элементы которого получены сперва взяв простые числа исходного, потом остальные - Pascal

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

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

Дано натуральное число n и х вектор содержащий n элементов. Создать новый y вектор, элементы которого получены сперва взяв простые числа, потом остальные. Заранее спасибо...

Решение задачи: «Создать новый вектор, элементы которого получены сперва взяв простые числа исходного, потом остальные»

textual
Листинг программы
  1. type
  2.     MainType = ShortInt;
  3. function IsPrime(const x: MainType): Boolean;
  4. var
  5.     Result: Boolean; //удалить строку при ошибке повторного объявления
  6.     i: MainType;
  7. begin
  8.     Result := ((x >= 2) And (x mod 2 <> 0)); i := 3;
  9.     if (Result)
  10.     then
  11.         while ((Sqr(i) <= x) And Result) do
  12.             if (x mod i = 0)
  13.             then
  14.                 Result := False
  15.             else
  16.                 Inc(i, 2);
  17.     IsPrime := Result;
  18. end;
  19. var
  20.     x, y: Array[Byte] Of MainType;
  21.     i, n, j: Byte;
  22.     used: Set Of Byte;
  23. begin
  24.     repeat
  25.         Write('Input n(>0): '); ReadLn(n);
  26.     until (n > 0);
  27.     Randomize; Write('X:');
  28.     j := 0; used := [];
  29.     for i := 0 to n - 1 do
  30.     begin
  31.         x[i] := Random(199) - 99;
  32.         Write(x[i]:4);
  33.         if (IsPrime(x[i]))
  34.         then
  35.         begin
  36.             Write('...');
  37.             Include(used, i);
  38.             y[j] := x[i];
  39.             Inc(j);
  40.         end;
  41.     end;
  42.     WriteLn; i := 0;
  43.     while (j < n) do
  44.     begin
  45.         if Not (i in used)
  46.         then
  47.         begin
  48.             y[j] := x[i];
  49.             Inc(j);
  50.         end;
  51.         Inc(i);
  52.     end;
  53.     Write('Y:');
  54.     for i := 0 to n - 1 do
  55.         Write(y[i]:4);
  56.     WriteLn;
  57. end.

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

  1. Объявляется пользовательский тип MainType как ShortInt.
  2. Объявляется функция IsPrime для определения является ли число простым, где x - входной параметр, Result - результат проверки, i - переменная для цикла.
  3. Вводятся переменные:
    • x, y - массивы байтов типа MainType
    • i, n, j - переменные типа Byte
    • used - множество байтов
  4. Выполняется ввод значения n, пока оно не будет больше 0.
  5. Генерируются значения для массива x, выводятся и проверяются на простоту. Если значение простое, оно сохраняется в массиве y.
  6. Переменная i используется для добавления оставшихся значений в массив y.
  7. Значения массива y выводятся на экран. Код выполняет следующие действия:
    • Определяет простые числа в массиве x.
    • Перемещает простые числа в новый массив y.
    • Заполняет оставшиеся значения массива y другими значениями из x.
    • Выводит массив y на экран.

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


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

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

14   голосов , оценка 4 из 5

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

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

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