Menu
Coddy logo textTech

Voto medio

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 51 di 56.

Aggiungi un metodo che restituisca la media dei voti di uno studente, esattamente il tipo di calcolo riepilogativo per cui è stato creato Enumerable.

Fai attenzione a due casi limite: lo studente non esiste e non ha ancora voti.

challenge icon

Sfida

Facile

Aggiungi un metodo average_grade(name) che:

  1. Stampa Student '<name>' not found. e restituisce nil se il nome non esiste.
  2. Restituisce 0 se lo studente esiste ma non ha voti.
  3. Altrimenti restituisce la media aritmetica di :grades come Float.

Sostituisci il blocco di test con:

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

Output previsto:

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

Provalo tu

$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), gestisce lo studente mancante e l'assenza di voti, restituisce la media come 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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online