Задание №16 — Алгоритмы и программирование
Напишите программу для решения следующей задачи.
Ученики 4 класса вели дневники наблюдения за погодой и ежедневно записывали дневную температуру. Найдите среднюю температуру за время наблюдения. Если количество дней, когда температура поднималась выше нуля градусов, не менее 5, выведите YES, иначе выведите NO.
Программа получает на вход количество дней, в течение которых проводилось наблюдение N (1 ≤ N ≤ 31), затем для каждого дня вводится температура.
Пример работы программы:
Входные данные | Выходные данные |
4 4 12 2 8 | 3.5 NO |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно выполнить несколько действий: считать количество дней, обработать температуру за каждый день, вычислить среднее арифметическое и проверить условие на количество "тёплых" дней.
Шаг 1: Анализ входных данных.
Нам дано число — количество дней (от 1 до 31). Затем вводятся целых или вещественных чисел (температура). В примере мы видим, что средняя температура может быть дробной (), значит, для вычислений нам понадобятся переменные вещественного типа (float).
Шаг 2: Описание алгоритма.
1. Создадим переменную sum_temp для накопления суммы всех температур и переменную count_above_zero для подсчёта дней, когда температура была . Изначально обе равны .
2. В цикле от 1 до будем считывать очередное значение температуры .
3. На каждой итерации прибавляем к общей сумме: .
4. Проверяем условие: если , увеличиваем счётчик count_above_zero на 1.
5. После завершения цикла вычисляем среднюю температуру по формуле: .
6. Выводим полученное среднее значение.
7. Проверяем условие: если , выводим "YES", иначе — "NO".
Шаг 3: Реализация на языке Python.
n = int(input())
sum_temp = 0
count_above_zero = 0
for i in range(n):
t = float(input())
sum_temp += t
if t > 0:
count_above_zero += 1
average = sum_temp / n
print(average)
if count_above_zero >= 5:
print("YES")
else:
print("NO")
Разбор примера из условия:
Ввод: . Температуры: .
1. Сумма: .
2. Среднее: .
3. Дни выше нуля: и (всего 2 дня).
4. Условие ложно, поэтому выводим "NO".
Ответ: Программа выводит среднее арифметическое всех введённых температур, а затем YES, если дней с температурой выше 0 было 5 или более, иначе NO.
Источник: ФИПИ