Конечно! Ниже представлен подробный пример программы на языке Python, которая реализует задачи по введению оценок студентов и их анализу. Я объясню каждый шаг подробно.
# Запрос на ввод количества студентов
num_students = int(input("Введите количество студентов: "))
# Инициализация списков для хранения оценок по предметам
# Используем словарь для хранения предметов и оценок
subjects = ["Математика", "Русский", "Информатика", "Физика", "Химия"]
grades = {subject: [] for subject in subjects}
# Ввод оценок каждого студента
for i in range(num_students):
print(f"\nВвод оценок для студента {i + 1}:")
for subject in subjects:
# Запрос оценки по предмету
grade = float(input(f"Введите оценку за {subject.lower()}: "))
grades[subject].append(grade)
# Подсчёт среднего балла каждого студента
# Для этого пройдём по каждому студенту и посчитаем среднее
student_averages = []
for i in range(num_students):
total = 0
for subject in subjects:
total += grades[subject][i]
average = total / len(subjects)
student_averages.append(average)
# Определение количества сдавших (средний >= 3)
passed_students = sum(1 for avg in student_averages if avg >= 3)
not_passed_students = num_students - passed_students
# Вывод количества сдавших и не сдавших
print(f"\nКоличество успешных студентов: {passed_students}")
print(f"Количество безуспешных студентов: {not_passed_students}")
# Нахождение предмета с наивысшим средним баллом
average_per_subject = {}
for subject in subjects:
total = sum(grades[subject])
average_per_subject[subject] = total / num_students
# Определение лучшего предмета
best_subject = max(average_per_subject, key=average_per_subject.get)
print(f"\nЛучший предмет среди студентов - {best_subject}")
Подробное объяснение:
Запрос количества студентов:
num_students = int(input("Введите количество студентов: "))Пользователь вводит число, сколько всего студентов нужно обработать.
Инициализация данных:
subjects = ["Математика", "Русский", "Информатика", "Физика", "Химия"] grades = {subject: [] for subject in subjects}Создаём список предметов и словарь, где каждому предмету соответствует список оценок.
Ввод оценок: В цикле по студентам осуществляется сбор оценок по каждому предмету:
for i in range(num_students): ... grade = float(input(f"Введите оценку за {subject.lower()}: ")) grades[subject].append(grade)Оценки добавляются в соответствующие списки.
Расчёт среднего балла каждого студента: Для каждого студента суммируем оценки и делим на количество предметов:
total = 0 for subject in subjects: total += grades[subject][i] average = total / len(subjects)Средний балл сохраняется в списке
student_averages.Подсчёт сдавших и не сдавших: Студенты считаются сдавшими, если их средний балл >= 3:
passed_students = sum(1 for avg in student_averages if avg >= 3) not_passed_students = num_students - passed_studentsВывод количества успешных и неуспешных студентов:
print(f"\nКоличество успешных студентов: {passed_students}") print(f"Количество безуспешных студентов: {not_passed_students}")Определение предмета с наивысшим средним баллом: Для каждого предмета подсчитываем средний:
total = sum(grades[subject]) average_per_subject[subject] = total / num_studentsЗатем выбираем предмет с максимальным средним:
best_subject = max(average_per_subject, key=average_per_subject.get)Вывод лучшего предмета:
print(f"\nЛучший предмет среди студентов - {best_subject}")
Если нужно, я могу помочь адаптировать этот код под конкретные требования или объяснить любой из шагов подробнее!