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

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

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

 

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

 

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

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

1. Переменная mass — для массива
2. Переменная i — для цикла for
3. Переменная min — для минимального нечетного элемента
4. Переменная 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.

Вот результат :

zadachi-po-pascal-najti-naimenshij-nechetnyj-element-massiva

2 комментария

Написать ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *