def calculate_grades(prelim):
prelim_weight = 0.2
midterm_weight = 0.3
final_weight = 0.5
desired_grade = 75
prelim_score = float(prelim) * prelim_weight
added_weights = midterm_weight + final_weight
required_midterm_final = (desired_grade - prelim_score) / added_weights
if required_midterm_final > 100:
return None, None, True, False, False
else:
midterm_final_grade = round(required_midterm_final, 2)
dean_list = midterm_final_grade <= 81.25
difficult_pass = midterm_final_grade >= 90
return midterm_final_grade, midterm_final_grade, False, dean_list, difficult_pass
def calculate():
prelim = document.getElementById('prelim').value
error_elem = document.getElementById('error')
result_elem = document.getElementById('result')
try:
prelim = float(prelim)
if prelim < 1 or prelim > 100:
error_elem.innerHTML = "Please enter a grade between 1 and 100."
result_elem.innerHTML = ""
else:
midterm, final, impossible, dean_list, difficult_pass = calculate_grades(prelim)
if impossible:
error_elem.innerHTML = "It is impossible to achieve the desired grade with the given prelim score."
result_elem.innerHTML = ""
else:
result = f"To pass with a grade of 75, you need at least:
"
result += f"Midterm Grade: {midterm}
"
result += f"Final Grade: {final}
"
if dean_list:
result += "You can qualify for the Dean's Lister!
"
if difficult_pass:
result += "It's difficult to pass with this Prelim grade. You'll need a Midterm and Final Grade of 90 or higher!
"
result_elem.innerHTML = result
error_elem.innerHTML = ""
except ValueError:
error_elem.innerHTML = "Invalid input. Please enter a valid number."
result_elem.innerHTML = ""