Задание:
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе хотя бы один учащийся получил за тест положительную оценку. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
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:=101;
for i:=1 to N do
if (A[i] >= 20) and (A[i] < min) then min:=A[i];
write(min);
Разбор:
* Изначально присвоим переменной min значение 101, так как известно, что есть хотя бы один учащийся набравший положительную оценку, следовательно имеется балл от 20 до 100.
* Далее в цикле из 30 элементов программа проверяет два условия: Первое - если значение больше, либо равно 20 (так как не менее 20 баллов требуется), второе - значение меньше предыдущего минимального, тогда программа меняет значение переменной min на новое. И так в каждом цикле программа ищет новое минимальное значение.
* После цикла выводит значение переменной min, то есть минимальный положительный балл.