Задание:
Дан целочисленный массив из 30 элементов, все элементы которого – неотрицательные числа, не превосходящие 10000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальное трехзначное число, записанное в этом массиве. если таких чисел нет, нужно вывести сообщение ?Таких чисел нет?.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль:
const N=30;
var a: array [1..N] of integer;
i, j, min: integer;
begin
for i:=1 to N do readln(a[i]);
...
end.
Решение:
Недостающий фрагмент:
min:=1000;
for i:=1 to N do
if (a[i] > 99) and (a[i] < 1000) and (a[i] < min) then min:=a[i];
if min=1000 then
writeln('Таких чисел нет') else
writeln(min);
Разбор программы:
* Трехзначные числа - это числа в промежутке [100;999];
* Изначально присвоим переменной min любое значение больше 999, пусть это будет 1000, чтобы было с чем сравнивать.
* Запускаем цикл(for) из элементов 30 элементов. Проверяем три условия: Если значение элемента больше 99; Если значение элемента меньше 1000; Если значение элемента меньше предыдущего минимального трехзначного. Если все три условия выполняются, меняем значение переменной min на новое найденное.
* Далее с помощью еще одного условия проверяем: Если в ходе цикла значение min не изменилось, то есть равно 1000, значит в массиве нет ни одного элемента, удовлетворяющего условиям. Следовательно выводится на экран сообщение, что таких элементов нет. В противном случае, если значение изменилось, то на экран выводится данное значение