Answer:
def calculate_final_mark(courses):
final_mark = 0
total_weight = 0
for course in courses:
final_mark += course['mark'] * course['weight']
total_weight += course['weight']
return final_mark / total_weight
def calculate_required_mark(courses, desired_mark):
current_mark = calculate_final_mark(courses)
total_weight = 0
for course in courses:
total_weight += course['weight']
required_mark = (desired_mark - current_mark) / (1 - total_weight)
return required_mark
# Example usage:
courses = [
{'name': 'Math', 'mark': 80, 'weight': 0.4},
{'name': 'Science', 'mark': 70, 'weight': 0.3},
{'name': 'English', 'mark': 65, 'weight': 0.3},
]
final_mark = calculate_final_mark(courses)
print(f"Your final mark is {final_mark:.1f}")
desired_mark = 80
required_mark = calculate_required_mark(courses, desired_mark)
print(f"You need to score at least {required_mark:.1f} on your next assessment to achieve a final mark of {desired_mark}")