Рассмотрим решение задач на программирование (20.2) из тренировочной работы для 9 класса от 28 января 2015 года. Задачи имеют некоторое отличие от задач, данных в демо версии ФИПИ. Здесь на выводе мы должны получить ответы на 2 вопроса. Для решения задач нам необходимо знать алгоритм нахождения максимума или минимума.
Задача 1.
Девятиклассники участвовали в викторине по математике. Необходимо было ответить на 20 вопросов. Победителем викторины считается участник, правильно ответивший на наибольшее количество вопросов. На сколько вопросов победитель ответил правильно? Если есть участники викторины, которые не смогли дать правильный ответ ни на один из вопросов, выведите YES, иначе выведите NO. Гарантируется, что есть участники, правильно ответившие хотя бы на один из вопросов.
Программа получает на вход число участников викторины N (1 ≤ N ≤ 50), затем для каждого участника вводится количество вопросов, на которые получен правильный ответ.
Решение.
Мой вариант решения задачи.
var i,n,a,max,flag:integer; begin readln(n); //вводим число участников max:=0; // присваиваем max минимальное значение 0 for i:=1 to n do begin readln(a); //вводим количество вопросов, на которые получен правильный ответ if a>max then max:=a; //если это число вопросов больше max, max присваивает это значение if a=0 then flag:=1; //если имеется участник с нулем правильных ответов, то переменной flag присваиваем 1 end; writeln(max); // выводим значение переменной max if flag=1 then writeln('yes') else writeln('no'); //если flag=1, то выводим "YES". В противном случае "NO" end.
Так как мы вводим сами число участников, то для решения используем задачи используем цикл со счетчиком.
Чтобы вывести на экран «YES» или «NO» мы использовали так называемый флаг (переменная flag). Если во время выполнения цикла значение переменной flag меняется на единицу, то после вывода максимального значения выведется «YES». Иначе «NO».
Задача 2.
Ученики 4 класса вели дневники наблюдения за погодой и ежедневно записывали дневную температуру. Найдите самую низкую температуру за время наблюдения. Если температура опускалась ниже –15 градусов, выведите YES, иначе выведите NO.
Программа получает на вход количество дней, в течение которых проводилось измерение температуры N (1 ≤ N ≤ 31), затем для каждого дня вводится температура.
Решение (только для зарегистрированных пользователей)