Menu
Coddy logo textTech

Nach Kurs auflisten

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 52 von 56.

Füge eine Methode hinzu, die jeden in einem bestimmten Kurs eingeschriebenen Studenten findet und deren Namen als Array zurückgibt. Dies ist die Art von select/map-Kette, die du bereits geübt hast.

challenge icon

Aufgabe

Einfach

Fügen Sie eine Methode list_by_course(course) hinzu, die ein Array mit den Namen der Studenten zurückgibt, deren :courses-Array course enthält. Die Namen sollten in der Reihenfolge des Einfügens erscheinen; wenn niemand eingeschrieben ist, geben Sie [] zurück.

Ersetzen Sie den Testblock durch:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob",   22, ["Biology", "Math"])
add_student("Cara",  19, ["Physics"])
puts list_by_course("Math").inspect
puts list_by_course("Physics").inspect
puts list_by_course("Art").inspect

Erwartete Ausgabe:

Student 'Alice' added.
Student 'Bob' added.
Student 'Cara' added.
["Alice", "Bob"]
["Alice", "Cara"]
[]

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

def average_grade(name)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return nil
  end
  grades = $student_records[name][:grades]
  return 0 if grades.empty?
  grades.sum.to_f / grades.length
end

# TODO: def list_by_course(course), gibt ein Array von Namen zurück, die in `course` eingeschrieben sind

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob",   22, ["Biology", "Math"])
add_student("Cara",  19, ["Physics"])
puts list_by_course("Math").inspect
puts list_by_course("Physics").inspect
puts list_by_course("Art").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 & Programmfluss

Übe selbstständig: Online-Ruby-Compiler