NSI (terminale) · Chapitre 9 · Application directe du cours
Problème — Gestion d'une file d'attente de patients
La programmation orientée objet · niveau 2
Énoncé
Problème — Gestion d'une file d'attente de patients.
Modéliser une file d'attente dans un cabinet médical. Chaque Patient possède un nom et un niveau d'urgence. On gère deux files : une file prioritaire (urgences) et une file normale. La méthode suivant renvoie d'abord les patients prioritaires.
Corrigé
class Patient:
def __init__(self, nom, urgent=False):
self.nom = nom
self.urgent = urgent
def __repr__(self):
return self.nom + (" (urgent)" if self.urgent else "")
class SalleAttente:
def __init__(self):
self._urgents = File()
self._normaux = File()
def arriver(self, patient):
if patient.urgent:
self._urgents.enfiler(patient)
else:
self._normaux.enfiler(patient)
def suivant(self):
if not self._urgents.est_vide():
return self._urgents.defiler()
if not self._normaux.est_vide():
return self._normaux.defiler()
return None
salle = SalleAttente()
salle.arriver(Patient("Alice"))
salle.arriver(Patient("Bob", urgent=True))
salle.arriver(Patient("Chloe"))
print(salle.suivant()) # Bob (urgent)
print(salle.suivant()) # Alice
print(salle.suivant()) # Chloe
Bob, bien qu'arrivé après Alice, est traité en premier grâce à la file prioritaire ; les autres patients suivent dans leur ordre d'arrivée (FIFO).
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 8 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.