Rutas
/
Nim
Nim
/
Ejercicios
/
Escuela primaria
Escuela primaria

Escuela primaria

Fácil

Instrucciones

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

Al final, deberías poder:

  • Añadir el nombre de un estudiante al listado de un curso
    • «Añade a Jim al curso 2.»
    • «OK.»
  • Obtener un array con todos los estudiantes matriculados en un curso
    • «¿Qué estudiantes están en el curso 2?»
    • «De momento, solo tenemos a Jim.»
  • Obtener un array ordenado con 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 su nombre.
    • «¿Quiénes están matriculados en el colegio 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 puede añadirse más de una vez a un curso ni al listado. De hecho, cuando un test intenta añadir al mismo estudiante más de una vez, tu implementación debería indicar que esto es incorrecto.

Pistas

Para conseguir que pase el test, vas a tener que crear algunos tipos para que tu código pueda trabajar con ellos. Necesitas un objeto para School que contenga una secuencia de tipo Student, que será una tupla de string e int para guardar el nombre y la nota de los estudiantes.

Aquí tienes algo de código con los tipos que podría serte útil para empezar

type
  Student* = tuple[name: string, grade: int]
  School* = object
    students*: seq[Student]

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
Nim Exercism

¿Listo para empezar Escuela primaria?

Regístrate en Exercism para aprender y dominar Nim con 70 ejercicios y mentoría humana real, todo gratis.