Задание №16 — Алгоритмы и программирование
Напишите программу для решения следующей задачи.
На контрольной работе по алгебре ученикам 9 класса было предложено 10 примеров. Неудовлетворительная оценка выставляется, если правильно решено менее половины примеров. Сколько неудовлетворительных оценок было получено учениками? Если хотя бы один из учеников правильно решил все задачи, выведите YES, иначе выведите NO.
Программа получает на вход количество учеников в классе N (1 ≤ N ≤ 30), затем для каждого ученика вводится количество правильно решённых примеров.
Пример работы программы:
Входные данные | Выходные данные |
4 3 9 2 8 | 2 NO |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо обработать последовательность чисел, представляющих количество решённых задач каждым учеником. Разберём алгоритм по шагам.
1. Ввод данных: Сначала программа считывает общее количество учеников . Затем в цикле, который повторится раз, мы будем считывать количество решённых задач для каждого отдельного ученика.
2. Подсчёт неудовлетворительных оценок: По условию, оценка считается неудовлетворительной, если решено менее половины примеров. Всего примеров 10, значит, половина — это 5. Следовательно, если количество решённых задач , мы увеличиваем наш счётчик (назовём его count_bad) на единицу.
3. Поиск отличников: Нам нужно проверить, решил ли кто-то все 10 задач. Для этого введём логическую переменную (флаг), например has_perfect, и изначально установим её в значение «ложь» (False). Если в процессе ввода мы встретим число 10, мы изменим значение флага на «истина» (True).
4. Вывод результата: После завершения цикла мы выводим накопленное значение счётчика count_bad. Затем проверяем состояние нашего флага: если он равен True, выводим «YES», иначе — «NO».
Пример реализации на языке Python:
n = int(input())
count_bad = 0
has_perfect = False
for i in range(n):
res = int(input())
if res < 5:
count_bad += 1
if res == 10:
has_perfect = True
print(count_bad)
if has_perfect:
print("YES")
else:
print("NO")
Проверим на примере из условия:
Ввод: 4 ученика, результаты: 3, 9, 2, 8.
- 3 < 5 (неуд), 9 >= 5, 2 < 5 (неуд), 8 >= 5. Итого 2 неудовлетворительные оценки.
- Ни одно из чисел не равно 10, значит выводим NO.
Ответ: Программа выведет количество неудовлетворительных оценок и признак наличия работы с 10 решёнными задачами (YES/NO).
Источник: ФИПИ