Master IC²A – DCISS 2/4 JMA – 04/2015
La figure ci-dessous schématise la structure de données décrite par ce lexique :
1) Compréhension de la structure de données (1 point)
Donnez la séquence d’instructions qui affiche à l’aide d’un écran e :
- le nom de l'activité du premier cahier apparaissant dans le registre,
- puis le nom de la première personne apparaissant dans la liste d'inscription de ce cahier (on
suppose que le registre n’est pas vide et que le premier cahier comporte au-moins un inscrit).
2) Recherche d'un cahier dans le registre des inscriptions (2 points)
Ecrire la fonction activité qui recherche une activité dans le registre :
fonction activité(treg : AdrCahier ; a : chaine) → AdrCahier
// activité(a) renvoie l’adresse de la cellule contenant l’activité a, dans le registre des inscriptions
// de tête treg ; renvoie nil s’il n’y a pas d’activité de nom a.
3) Les activités les plus demandées (3 points)
Une activité est la plus demandée si son nombre d'inscrits est maximum (supérieur ou égal au
nombre d'inscrits de chacune des autres activités) : lorsque le registre n'est pas vide, il y en a au
moins une, mais il peut y en avoir plusieurs. Ecrire l’action nbActivitésPlusDemandées qui affiche,
à l’aide d’un écran e, le nombre d'activités les plus demandées ou 0 si le registre des inscriptions
est vide, ainsi que le nombre de personnes inscrites à ces activités.
action nbActivitésPlusDemandées (consultés treg : AdrCahier ; e : écran)
// Effet : affiche, à l’aide de l’écran e, le nombre d'activités les plus demandées ou 0 si le registre
// des inscriptions est vide, ainsi que le nombre de personnes inscrites à ces activités.
Par exemple, si les activités les plus demandées sont au nombre de 3 et que 12 personnes sont
inscrites à chacune de ces activités, l’action nbActivitésPlusDemandées affichera :
Nombre d’activités les plus demandées : 3
Nombre de personnes inscrites : 12
Indication : privilégiez une solution n’effectuant qu’un seul parcours du registre des inscriptions.
4) Inscription d'une personne à une activité (3 points)
Réaliser l’action ajouterInscription qui a pour effet d’inscrire une personne à une activité et de
modifier la structure de données en conséquence :
action ajouterInscription (modifié treg : AdrCahier ; consultés p : chaine ; a : chaine)
// Effet : inscrit la personne de nom p à l’activité de nom a et modifie le registre des inscriptions de
// sorte que la personne de nom p apparaisse dans la liste des personnes inscrites à l'activité de
// nom a. Si la personne p est déjà inscrite à l'activité a, le registre est inchangé. Si l’activité a
// n’existe pas dans le registre, on l’ajoute au registre.
On utilisera la primitive de gestion mémoire créer pour la création d’une nouvelle cellule.