Menu
CoddyTech

Agregar estudiante

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 49 de 56.

Define un método add_student que registre a un estudiante nuevo en el hash compartido student_records.

Rechazar los duplicados es la única rama: una vez que existe un estudiante, infórmalo y retorna sin sobrescribirlo.

challenge icon

Desafío

Fácil

En la parte superior de tu archivo, conserva student_records = {}. Después define un método add_student(name, age, courses) que:

  1. Si name ya es una clave en student_records, imprime Student '<name>' already exists. y retorna.
  2. De lo contrario, guarda { age: age, grades: [], courses: courses } bajo name e imprime Student '<name>' added.

En la parte inferior de tu archivo, reemplaza el bloque de prueba por:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts student_records.inspect

El resultado esperado es:

Student 'Alice' added.
Student 'Bob' added.
Student 'Alice' already exists.
{"Alice"=>{:age=>20, :grades=>[], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[], :courses=>["Biology", "Chemistry"]}}

Como los métodos no pueden acceder a las variables locales del script que los contiene, declara student_records como $student_records (una variable global) para que el método pueda leerla y actualizarla. Usa también ese nombre dentro del método.

Pruébalo tú mismo

$student_records = {}

# TODO: def add_student(name, age, courses), evitar duplicados,
# almacenar { age:, grades: [], courses: }, imprimir añadido/ya existe

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Ruby online