Parcours
/
Nim
Nim
/
Exercices
/
École primaire
École primaire

École primaire

Facile

Instructions

Étant donné les noms des élèves et le niveau dans lequel ils se trouvent, crée un registre pour l'école.

Au final, tu dois pouvoir :

  • Ajouter le nom d'un élève au registre d'un niveau
    • « Ajoute Jim au niveau 2. »
    • « OK. »
  • Obtenir la liste de tous les élèves inscrits dans un niveau
    • « Quels élèves sont au niveau 2 ? »
    • « On n'a que Jim pour l'instant. »
  • Obtenir une liste triée de tous les élèves, tous niveaux confondus. Les niveaux doivent être triés dans l'ordre 1, 2, 3, etc., et les élèves d'un même niveau doivent être triés par ordre alphabétique de leur nom.
    • « Qui est inscrit à l'école en ce moment ? »
    • « Laisse-moi réfléchir. On a Anna, Barb et Charlie au niveau 1, Alex, Peter et Zoe au niveau 2, et Jim au niveau 5. Donc la réponse est : Anna, Barb, Charlie, Alex, Peter, Zoe et Jim »

Note que tous nos élèves n'ont qu'un seul nom (c'est une petite ville, qu'est-ce que tu veux ?) et qu'un même élève ne peut pas être ajouté plus d'une fois à un niveau ni au registre. En fait, quand un test essaie d'ajouter le même élève plus d'une fois, ton implémentation doit signaler que ce n'est pas correct.

Indices

Pour que le test passe, tu vas devoir créer quelques types sur lesquels ton code pourra s'appuyer. Il te faut en effet un objet pour School qui contient une séquence de type Student, ce dernier étant un tuple de string et de int destiné à stocker le nom et la note des élèves.

Voici du code pour ces types, qui pourrait t'aider à démarrer

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

Source

Une session de programmation en binôme avec Phil Battos à gSchool.
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Nim Exercism

Prêt à commencer École primaire ?

Inscris-toi sur Exercism pour apprendre et maîtriser Nim avec 70 exercices, et un vrai mentorat humain, le tout gratuitement.