Rutas
/
Factor
Factor
/
Ejercicios
/
Escuela primaria
Escuela primaria

Escuela primaria

Media

Instrucciones

Dados los nombres de los estudiantes junto con el curso en el que están, crea un listado para la escuela.

Al final, deberías ser capaz de:

  • Añadir el nombre de un estudiante al listado de un curso:
    • «Añade a Jim al curso 2.»
    • «Vale.»
  • Obtener una lista de todos los estudiantes matriculados en un curso:
    • «¿Qué estudiantes hay en el curso 2?»
    • «Ahora mismo solo tenemos a Jim.»
  • Obtener una lista ordenada de todos los estudiantes de todos los cursos. Los cursos deben ordenarse como 1, 2, 3, etc., y los estudiantes dentro de un curso deben ordenarse alfabéticamente por nombre.
    • «¿Quién está matriculado en la escuela ahora mismo?»
    • «Déjame pensar. Tenemos a Anna, Barb y Charlie en el curso 1, a Alex, Peter y Zoe en el curso 2, y a Jim en el curso 5. Así que la respuesta es: Anna, Barb, Charlie, Alex, Peter, Zoe y Jim.»

Ten en cuenta que todos nuestros estudiantes tienen un solo nombre (es un pueblo pequeño, ¿qué quieres?), y que cada estudiante no se puede añadir más de una vez a un curso ni al listado. Si un test intenta añadir al mismo estudiante más de una vez, tu implementación debe indicar que esto es incorrecto.

Palabras

Define una tupla school para guardar el listado de estudiantes (cómo almacenes los estudiantes dentro de ella es cosa tuya) y, a continuación, implementa las palabras que aparecen abajo.

  • <school> ( -- school ): construye una escuela vacía.
  • add-student ( school name grade -- ? ): añade name a grade. Devuelve t si tiene éxito, o f si name ya se ha añadido (a este curso o a cualquier otro), en cuyo caso el listado se deja sin cambios.
  • roster ( school -- names ): todos los estudiantes, ordenados por curso y, después, alfabéticamente por nombre.
  • grade ( school n -- names ): los estudiantes del curso n, ordenados alfabéticamente por nombre.

Fuente

Una sesión de programación en pareja con Phil Battos en gSchool
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Factor Exercism

¿Listo para empezar Escuela primaria?

Regístrate en Exercism para aprender y dominar Factor con 47 conceptos163 ejercicios y mentoría humana real, todo gratis.