Для решения данной задачи требуется написать программу, которая будет выполнять следующие действия:
- Запрашивать у пользователя рост очередного школьника.
- Учитывать, что количество школьников заранее не известно, поэтому программа должна работать до тех пор, пока пользователь не завершит ввод данных (например, введет специальное значение для прекращения ввода).
- После завершения ввода программа должна рассчитать средний рост всех школьников, рост которых был введен, и вывести результат.
Для реализации можно использовать цикл, который будет работать до тех пор, пока пользователь не укажет, что ввод завершен (например, введет 0 или другой заранее оговоренный маркер). Также потребуется переменная для подсчета суммы роста всех школьников и переменная для подсчета их количества.
Пример программы на Python:
def calculate_average_height():
print("Введите рост школьников в сантиметрах. Чтобы завершить ввод, введите 0.")
total_height = 0 # Сумма роста всех школьников
student_count = 0 # Количество школьников
while True:
try:
height = float(input("Введите рост школьника (в см): "))
# Проверка на завершение ввода
if height == 0:
break
# Проверка на корректность введенного роста
if height < 0:
print("Рост не может быть отрицательным. Повторите ввод.")
continue
# Обновление общей суммы роста и количества школьников
total_height += height
student_count += 1
except ValueError:
print("Некорректный ввод. Пожалуйста, введите число.")
# Проверка, были ли введены данные
if student_count == 0:
print("Данные не введены. Средний рост невозможно вычислить.")
else:
# Расчет и вывод среднего роста
average_height = total_height / student_count
print(f"Средний рост школьников: {average_height:.2f} см")
# Вызов функции
calculate_average_height()
Объяснение работы программы:
- Ввод данных: Программа с помощью цикла
while True
запрашивает рост каждого школьника.
- Условие завершения: Если пользователь вводит
0
, ввод данных прекращается.
- Проверка корректности: Если введено отрицательное значение или некорректный ввод (например, буквы), программа выдает предупреждение и запрашивает данные заново.
- Суммирование данных: Каждый раз, когда пользователь вводит корректное значение роста, оно добавляется к общей сумме
total_height
, а счетчик школьников student_count
увеличивается на 1.
- Расчет среднего роста: После завершения ввода программа проверяет, были ли введены какие-то данные. Если школьники были введены, то средний рост рассчитывается как
total_height / student_count
. Если данные отсутствуют, программа сообщает об этом.
- Вывод результата: Программа выводит средний рост школьников с точностью до двух знаков после запятой.
Пример работы программы:
Введите рост школьников в сантиметрах. Чтобы завершить ввод, введите 0.
Введите рост школьника (в см): 150
Введите рост школьника (в см): 160
Введите рост школьника (в см): 155
Введите рост школьника (в см): 0
Средний рост школьников: 155.00 см
Возможные улучшения:
- Можно добавить проверку на минимально и максимально допустимые значения роста (например, от 50 до 250 см).
- Ввод данных можно записывать в список, чтобы дополнительно выводить, например, максимальный и минимальный рост.
- Можно сохранить результаты в файл для последующего анализа.