Vous êtes sur la page 1sur 2

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DE LA RECHERCHE

SCIENTIFIQUE ET DE LA TECHNOLOGIE

INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE BEJA

Date : 14/06/2022Durée : 1h30

Classe :TI1.*

Examen Final : ALGORITHMIQUE &PROGRAMMATION 2

Année universitaire : 2021-2022 Documents : Non autorisés

Exercice 1 : Liste chaînée (11 points)


On propose de modéliser la gestion des patients dans un cabinet médical.
Un patient est caractérisé par : le nom, le prénom et l’adresse (numéro, rue et code postal) et un
champ rdv (pour rendez-vous) de type entier indiquant si le patient a un rendez-vous ou pas : 0 si
le patient est sans rendez-vous, 1 si le patient a un rendez-vous.
Avant d’être consultés par le médecin, les patients sont entrés dans une salle d’attente qui sera
modélisée par une liste chaînée de patients.
On vous demande de gérer le cabinet médical.
1. Définir les structures de données appropriées. (2 points)

Ecrire les procédures/fonctions suivantes :

2. Procédure saisirPatient (var p : Patient) qui permet de saisir les informations d’un seul
patient. (1 point)
3. Procédure afficherPatient (p : Patient) qui permet d'afficher le nom et le prénom d’un seul
patient. (1 point)
4. Fonction AjoutPatient qui permet d’ajouter un nouveau patient à la fin de la liste. (1.5
points)
5. Procédure RendezVous qui compte et affiche le nombre de patients avec rendez-vous, et le
nombre de patients sans rendez-vous. (1 point)
6. Fonction SupprimePatient qui permet de faire entrer un patient en consultation. Cette
opération est effectuée de la manière suivante : s’il n’y a aucun patient avec rendez-vous alors
c’est le premier patient de la liste qui est supprimé. Sinon on supprime le premier patient qui a
un rendez-vous. (2 points)
7. Procédure ConsulterSalleAttente qui affiche tout d’abord les patients avec rendez- vous,
ensuite les patients sans rendez-vous. (1.5 points)
8. Proposer un scénario d’utilisations des fonctionnalités déjà implémentées. (1 point)
Page 1 sur 2
Exercice 2 : Pile et file (9 points)

On souhaite manipuler une pile d’entiers p et une file d’entiers f.

1. Définir les types de données appropriées (2 points)


2. Ecrire une fonction qui permet d’empiler un entier dans la pile p. (1 point)
3. Ecrire une fonction qui permet d’enfiler un entier dans la file f. (1 point)
4. Ecrire une procédure qui permet de calculer le nombre d’entiers pairs dans la pile p.
NB : N’oubliez pas de rendre la pile p à son état initial ! Utiliser sans implémenter les
fonctions dépiler et creerpileVide vues en cours. (1.5 points)
5. Ecrire une procédure qui permet de construire 2 files FP et FN qui contiennent
respectivement les entiers positifs et négatifs de la file f.
NB : N’oubliez pas de rendre la file f à son état initial ! Utiliser sans implémenter les
fonctions défiler et creefileVide vues en cours. (1.5 points)
6. Ecrire une procédure qui permet d’afficher dans l’ordre inverse les entiers de la file f.
NB : N’oubliez pas de rendre la file f à son état initial ! (2 points)

Bon Travail

Page 2 sur 2

Vous aimerez peut-être aussi