Solución

@abrahamjlr
·21/4/2026TypeScript
solution.tsTypeScript
PASSING_SCORE: int = 60
THRESHOLD_A: int = 90
THRESHOLD_B: int = 80
THRESHOLD_C: int = 70
THRESHOLD_D: int = 60

BONUS_MATH: int = 10
BONUS_SCIENCE: int = 5

def calculate_average(scores: list[int]) -> float:
    if not scores:
        return 0.0

    return round(sum(scores) / len(scores), 1)

def determine_letter_grade(average: float) -> str:
    if average >= THRESHOLD_A: return "A"
    if average >= THRESHOLD_B: return "B"
    if average >= THRESHOLD_C: return "C"
    if average >= THRESHOLD_D: return "D"
    return "F"

def calculate_bonus(subject: str, average: float) -> int:
    subject_lower: str = subject.lower()

    if subject_lower == "math" and average >= THRESHOLD_A:
        return BONUS_MATH

    if subject_lower == "science" and average >= THRESHOLD_B:
        return BONUS_SCIENCE
    
    return 0

def process_student_grades(scores: list[int], subject: str) -> dict:
    average: float = calculate_average(scores)
    letter_grade: str = determine_letter_grade(average)
    is_passing: bool = average >= PASSING_SCORE
    bonus_points: int = calculate_bonus(subject, average)

    return {
        "average" : average,
        "grade": letter_grade,
        "passed": is_passing,
        "bonus": bonus_points
    }

__all__ = ["process_student_grades"]
0respuestas
Respuestas
0

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.
Markdown