Найти минимальное нечетное число от 1 до 30 - Free Pascal
Формулировка задачи:
Дан массив из 30 целых чисел, заданных случайным образом. Найти минимальное нечетное число от 1 до 30.
Решение задачи: «Найти минимальное нечетное число от 1 до 30»
textual
Листинг программы
min:=1; while (i<=n) and not Odd(a[min]) do Inc(min);
for i:=min+1 to n do
if Odd(a[i]) and (a[min]>a[i]) then min:=i;
if min>n then WriteLn('Нет нечётных чисел.')
else WriteLn('Min: ',a[min]);
Объяснение кода листинга программы
В данном коде на языке Free Pascal реализуется алгоритм поиска минимального нечетного числа в диапазоне от 1 до 30.
min:=1;- инициализация переменнойminзначением 1.while (i<=n) and not Odd(a[min]) do Inc(min);-- Цикл прервётся, когда будет выполнено одно из условий:
iстанет большеn, то есть будет выполнено условиеi>n.- Будет найдено нечетное число
a[min].
- Условие
not Odd(a[min])проверяет, является ли текущее минимальное число четным. - Если да, то оно не подходит, и мы увеличиваем значение
minна единицу.
- Цикл прервётся, когда будет выполнено одно из условий:
for i:=min+1 to n do- цикл, который будет выполняться, начиная сmin+1и доn.if Odd(a[i]) and (a[min]>a[i]) then min:=i;- условие цикла проверяет, является ли текущее числоiнечетным и меньше текущего минимального числаa[min].- Если это так, то текущее число
iстановится новым минимальным числом.
- Если это так, то текущее число
if min>n then WriteLn('Нет нечётных чисел.')- проверка, не превышает ли значениеminn.- Если да, то выводится сообщение
Нет нечётных чисел..
- Если да, то выводится сообщение
else WriteLn('Min: ',a[min]);- вывод сообщения с минимальным нечетным числомmin.