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

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

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

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

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

textual
Листинг программы
type
    MainType = ShortInt;
function IsPrime(const x: MainType): Boolean;
var
    Result: Boolean; //удалить строку при ошибке повторного объявления
    i: MainType;
begin
    Result := ((x >= 2) And (x mod 2 <> 0)); i := 3;
    if (Result)
    then
        while ((Sqr(i) <= x) And Result) do
            if (x mod i = 0)
            then
                Result := False
            else
                Inc(i, 2);
    IsPrime := Result;
end;
var
    x, y: Array[Byte] Of MainType;
    i, n, j: Byte;
    used: Set Of Byte;
begin
    repeat
        Write('Input n(>0): '); ReadLn(n);
    until (n > 0);
    Randomize; Write('X:');
    j := 0; used := [];
    for i := 0 to n - 1 do
    begin
        x[i] := Random(199) - 99;
        Write(x[i]:4);
        if (IsPrime(x[i]))
        then
        begin
            Write('...');
            Include(used, i);
            y[j] := x[i];
            Inc(j);
        end;
    end;
    WriteLn; i := 0;
    while (j < n) do
    begin
        if Not (i in used)
        then
        begin
            y[j] := x[i];
            Inc(j);
        end;
        Inc(i);
    end;
    Write('Y:');
    for i := 0 to n - 1 do
        Write(y[i]:4);
    WriteLn;
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
Похожие ответы