Tracks
/
Nim
Nim
/
Ejercicios
/
Escuela primaria
Escuela primaria

Escuela primaria

Fácil

Instrucciones

Dados los nombres de los estudiantes junto con el grado en el que están, crea una lista de estudiantes para la escuela.

Al final, deberías poder:

  • Agregar el nombre de un estudiante a la lista de un grado
    • «Agrega a Jim al grado 2.»
    • «OK.»
  • Obtener una lista de todos los estudiantes inscritos en un grado
    • «¿Qué estudiantes están en el grado 2?»
    • «Por ahora solo tenemos a Jim.»
  • Obtener una lista ordenada de todos los estudiantes de todos los grados. Los grados deben ordenarse como 1, 2, 3, etc., y los estudiantes dentro de un grado deben ordenarse alfabéticamente por nombre.
    • «¿Quiénes están inscritos en la escuela ahora mismo?»
    • «Déjame pensar. Tenemos a Anna, Barb y Charlie en el grado 1, a Alex, Peter y Zoe en el grado 2 y a Jim en el grado 5. Entonces la respuesta es: Anna, Barb, Charlie, Alex, Peter, Zoe y Jim»

Ten en cuenta que todos nuestros estudiantes solo tienen un nombre (es un pueblo pequeño, ¿qué esperabas?) y que a ningún estudiante se lo puede agregar más de una vez a un grado ni a la lista. De hecho, cuando una prueba intenta agregar al mismo estudiante más de una vez, tu implementación debe indicar que esto es incorrecto.

Pistas

Para que el test pase, vas a necesitar crear algunos tipos con los que tu código pueda trabajar: 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 calificación de los estudiantes.

Aquí tienes un poco de código para los tipos que te puede servir 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 una pestaña nuevas
Nim Exercism

¿Todo listo para empezar Escuela primaria?

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