Menu
Coddy logo textTech

Moyenne des notes

Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 51 sur 56.

Ajoutez une méthode qui retourne la moyenne des notes d'un étudiant, exactement le genre de calcul de synthèse pour lequel Enumerable a été conçu.

Faites attention à deux cas particuliers : l'étudiant n'existe pas, et l'étudiant n'a pas encore de notes.

challenge icon

Défi

Facile

Ajoutez une méthode average_grade(name) qui :

  1. Affiche Student '<name>' not found. et retourne nil si le nom n'existe pas.
  2. Retourne 0 si l'étudiant existe mais n'a pas de notes.
  3. Sinon, retourne la moyenne arithmétique de :grades sous forme de Float.

Remplacez le bloc de test par :

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

Résultat attendu :

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

Essayez vous-même

$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), gère l'étudiant manquant, les notes vides, retourne la moyenne en Float

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur Ruby en ligne