Задачи по Pascal. Найти наименьший нечетный элемент массива.

Условие задачи: Массив задан датчиком случайных чисел на интервале [-37, 66]. Найти наименьший нечетный элемент. Размер произвольный. (Язык Pascal)

Сложность: легкая.

Решение задачи

Для начала продумаем наше решение. Ну само собой сначала заполним массив случайными числами с помощью цикла, затем с помощью другого цикла найдем наименьший нечетный элемент.

Для того чтобы решить задачу нам понадобятся следующие переменные:

  • Переменная mass — для массива
  • Переменная i — для цикла for
  • Переменная min — для минимального нечетного элемента
  • Переменная count — для кол-ва элементов массива
  • Начнем мы с каркаса нашей программы

    type

    massiv =
    array
    [
    1..100
    ]
    of
    integer
    ;
    // создаём свой тип данных для массива

    var

    mass : massiv;
    // объявляем

    i, min, count :
    integer
    ;
    // переменные
    begin

    randomize;
    // включаем генератор случайных чисел

    write
    (
    ‘Введите размер массива : ‘
    );readln(count);
    // вводим размер массива
    end
    .

    Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ) включили генератор случайных чисел , подробнее (тут), ну и попросили пользователя ввести кол-во элементов массива.

    Теперь давайте заполним наш массив случайными числами с помощью цикла for и выведем все его элементы, цикл должно у нас быть от 1 до количества элементов, чтобы заполнить весь массив, пишем:

    for
    i:=
    1
    to
    count
    do
    // пускаем цикл для заполнения массива

    begin

    mass[i] := random(
    104
    ) —
    37
    ;
    // присваиваем случайное число

    write
    (mass[i],
    ‘ | ‘
    );
    // выводим число

    end
    ;

    Для того чтобы найти минимальный элемент делается следующее, для начала задаётся начальное значение переменной min, обычно это первое значение массива, дальше оно уже сравнивается со всеми остальными элементами массива и если какое-то меньше min, то уже оно становится минимальным, но также надо не забыть проверить на нечетность.

    min := mass[
    1
    ];
    // за минимальный элемент берем 1-е число, чтобы было с чем сравнивать

    for
    i:=
    2
    to
    count
    do
    // ищем минимальный элемент

    if
    (mass[i] < min)
    AND
    (mass[i]
    mod
    2
    <>
    0
    )
    then
    // проверяем его на условие, если прошло условие

    min := mass[i];
    // присваиваем новое значение

    i = 2 , потому что первый элемент у нас уже известен min := mass[1] смысла сравнивать первый элемент с первым нету.

    После этого цикла у нас должен быть найден наименьший нечетный элемент, но может быть такая ситуация что начальное значение переменной min и есть наименьший элемент, т.е. все остальные элементы больше начального значения, в этом случаи нам надо проверить и его на нечетность:

    if
    ( min
    mod
    2
    <>
    0
    )
    then
    // если вдруг минимальным остался самый первый элемент, то надо его тоже проверить на четность

    writeln
    (
    ‘Минимальный элемент равен : ‘
    , min)
    else

    writeln
    (
    ‘В массиве нет нечетных элементов!’
    );

    Т.е. если последнее число которое содержится в переменной min нечетное то мы его и выводим, иначе говорим что в массиве нет нечетных элементов.

    Всё решение задачи Pascal

    type

    massiv =
    array
    [
    1..100
    ]
    of
    integer
    ;
    // создаём свой тип данных для массива

    var

    mass : massiv;
    // объявляем

    i, min, count :
    integer
    ;
    // переменные
    begin

    randomize;
    // включаем генератор случайных чисел

    write
    (
    ‘Введите размер массива : ‘
    );readln(count);
    // вводим размер массива

    for
    i:=
    1
    to
    count
    do
    // пускаем цикл для заполнения массива

    begin

    mass[i] := random(
    104
    ) —
    37
    ;
    // присваиваем случаное число

    write
    (mass[i],
    ‘ | ‘
    );
    // выводим число

    end
    ;

    min := mass[
    1
    ];
    // за минимальный элемент берем 1-е число, чтобы было с чем сравнивать

    for
    i:=
    2
    to
    count
    do
    // ищем минимальный элемент

    if
    (mass[i] < min)
    AND
    (mass[i]
    mod
    2
    <>
    0
    )
    then
    // проверяем его на условие, если прошло условие

    min := mass[i];
    // присваиваем новое значение

    writeln
    ;
    // для красоты переносим строку

    if
    ( min
    mod
    2
    <>
    0
    )
    then
    // если вдруг минимальным остался самый первый элемент, то надо его тоже проверить на четность

    writeln
    (
    ‘Минимальный элемент равен : ‘
    , min)

    else

    writeln
    (
    ‘В массиве нет нечетных элементов!’
    );

    readln;
    // чтобы программа не закрывалась
    end
    .

    Беликова Ирина

    Учитель физики, информатики и вычислительной техники. Победитель конкурса лучших учителей Российской Федерации в рамках Приоритетного Национального Проекта "Образование".

    Оцените автора
    Добавить комментарий