Menu
CoddyTech

Notendurchschnitt

Teil des Abschnitts Logik und Ablauf der Ruby-Journey von Coddy. Lektion 51 von 56.

Fügen Sie eine Methode hinzu, die den Durchschnitt der Noten eines Schülers zurückgibt – genau die Art von zusammenfassender Berechnung, für die Enumerable entwickelt wurde.

Achte auf zwei Sonderfälle: Der Schüler existiert nicht, und der Schüler hat noch keine Noten.

challenge icon

Aufgabe

Einfach

Füge eine Methode average_grade(name) hinzu, die:

  1. Student '<name>' not found. ausgibt und nil zurückgibt, wenn der Name nicht existiert.
  2. 0 zurückgibt, wenn der Student existiert, aber keine Noten hat.
  3. Andernfalls den arithmetischen Mittelwert von :grades als Float zurückgibt.

Ersetze den Testblock durch:

add_student("Alice", 20, ["Math"])
add_student("Bob",   22, ["Biology"])
add_grade("Alice", 90)
add_grade("Alice", 80)
puts average_grade("Alice")
puts average_grade("Bob")
puts average_grade("Charlie").inspect

Erwartete Ausgabe:

Student 'Alice' added.
Student 'Bob' added.
Grade 90 added for 'Alice'.
Grade 80 added for 'Alice'.
85.0
0
Student 'Charlie' not found.
nil

Probier es selbst

$student_records = {}

def add_student(name, age, courses)
  if $student_records.key?(name)
    puts "Student '#{name}' already exists."
    return
  end
  $student_records[name] = { age: age, grades: [], courses: courses }
  puts "Student '#{name}' added."
end

def add_grade(name, grade)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return
  end
  $student_records[name][:grades] << grade
  puts "Grade #{grade} added for '#{name}'."
end

# TODO: def average_grade(name), behandelt fehlende Schüler, leere Noten, gibt Float-Durchschnitt zurück

add_student("Alice", 20, ["Math"])
add_student("Bob",   22, ["Biology"])
add_grade("Alice", 90)
add_grade("Alice", 80)
puts average_grade("Alice")
puts average_grade("Bob")
puts average_grade("Charlie").inspect
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik und Ablauf

Übe selbstständig: Online-Ruby-Compiler