Чтобы отобразить прогресс оценок по предмету «Иностранный язык» на основе данных, которые вы предоставили, необходимо выполнить несколько шагов.
1. **Собрать данные**. Вам необходимо собрать недельные и общие оценки по предмету «Иностранный язык».
2. **Объединить оценки**. Объедините оценки, исключив дубликаты. Это следует сделать для того, чтобы не дублировать оценки.
3. **Вывести средние значения**. Рассчитайте среднюю оценку для «Иностранного языка» за неделю и общую среднюю оценку, а затем отобразите их.
Так, на основе приведенной информации это можно сделать следующим образом:
### Шаг 1: Собрать данные
Недельный список оценок:
- Понедельник: Информатика - 5
- Вторник: Физическая культура - 3
- Среда: Иностранный язык - 5
- Четверг: Иностранный язык - 4
Общий список оценок по Иностранному языку:
- [4, 5, 5]
### Шаг 2: Объединить оценки
Оценки по Иностранному языку за неделю: [5, 4] (отметка за среду и четверг)
Общие оценки по Иностранному языку (исключаем повторы): [4, 5]
Таким образом, итоговые оценки:
- [4, 5, 5] из общего списка
- [4, 5] из週間ного списка с добавлением 4 (так как 5 уже была)
Общие оценки становятся: [4, 5]
### Шаг 3: Рассчитать средние значения
- Средняя оценка по предмету за неделю: (5 + 4) / 2 = 4.5
- Обобщенная средняя оценка (с учетом повторов): (4 + 5) / 2 = 4.5
### Конечный вывод
Теперь можно вывести результат в требуемом формате:
```
Иностранный язык: 5 (4.3 -> 4.5)
```
Здесь 5 — это последняя оценка за четверг, 4.3 — рассчитанная средняя оценка до добавления второй оценки за неделю, а 4.5 — конечная средняя с учетом добавленной оценки.
### Итоговая формула
Если нужен код для более автоматизированного подхода на Python, то можно использовать следующее:
```python
def calculate_progress(weekly_grades, all_grades):
# Извлекаем оценки по предмету "Иностранный язык" за неделю
weekly_foreign_language_grades = [grade for day, subject, grade in weekly_grades if subject == "Иностранный язык"]
# Объединяем и устраняем дубликаты
unique_grades = list(set(all_grades + weekly_foreign_language_grades))
# Расчет средних значений
if len(weekly_foreign_language_grades) > 0:
weekly_avg = sum(weekly_foreign_language_grades) / len(weekly_foreign_language_grades)
else:
weekly_avg = 0
if len(unique_grades) > 0:
final_avg = sum(unique_grades) / len(unique_grades)
else:
final_avg = 0
# Возвращаем значения
return f"Иностранный язык: {weekly_foreign_language_grades[-1]} ({weekly_avg:.1f} -> {final_avg:.1f})"
weekly_grades = [
("Понедельник", "Информатика", 5),
("Вторник", "Физическая культура", 3),
("Среда", "Иностранный язык", 5),
("Четверг", "Иностранный язык", 4)
]
all_grades = [4, 5, 5]
result = calculate_progress(weekly_grades, all_grades)
print(result)
```
Этот код создает функцию, которая выводит нужный результат.