République Islamique de Mauritanie Groupe Polytechnique
Exercice 1 :
Un laboratoire scientifique mène différentes expériences et souhaite structurer ses données efficacement.
Chaque expérience est caractérisée par :
Un nom
Une date
Un responsable (chercheur principal)
Une liste de mesures collectées
Une méthode pour ajouter une nouvelle mesure
Chaque mesure est caractérisée par :
Une valeur numérique
Une unité (°C, m/s, kg, etc.)
Un horodatage (date et heure de la mesure) Travail demandé :
1. Créer une classe Mesure avec les attributs nécessaires et une méthode __str__() pour afficher la
mesure.
2. Créer une classe Experience qui doit permettre :
o L’ajout d’une mesure
o Le calcul de la moyenne des mesures
o Le calcul de l’écart-type des mesures
o L’affichage d’un résumé de l’expérience
3. Créer une classe Laboratoire pour gérer plusieurs expériences et permettre :
o L’ajout d’une expérience
o L’affichage de toutes les expériences
o La recherche par responsable
4. Gestion des erreurs et validation des données :
o Modifiez le code pour empêcher l’ajout de valeurs négatives pour des mesures qui ne peuvent
pas l’être (exemple : température en Kelvin).
o Ajoutez une exception si une mesure est ajoutée avec une unité incohérente avec l’expérience
(exemple : mélange de "°C" et "m/s" dans la même expérience).
5. Analyse des mesures :
o Implémentez une méthode qui filtre les mesures d’une expérience en fonction d’une plage de
valeurs donnée.
o Implémentez une méthode qui retourne les 5 valeurs extrêmes (les plus élevées et les plus
basses) d’une expérience.
6. Ajout de visualisation avec Matplotlib :
o Ajoutez une méthode qui génère un graphique des mesures en fonction du temps pour une
expérience.
Exercice 2 : Objectif : Implémenter une pile pour gérer l’historique des commandes et une file pour gérer les
requêtes à exécuter.
1. Créer une classe Pile avec les méthodes empiler(), depiler(), sommet(), et est_vide().
2. Créer une classe File avec les méthodes enfiler(), defiler(), tete(), et est_vide().
3. Créer une classe HistoriqueCommandes qui stocke les commandes dans une pile et permet d’annuler
la dernière commande.
4. Créer une classe GestionRequetes qui stocke les requêtes dans une file et les traite dans l’ordre
d’arrivée.
5. Extension : Ajouter un système de priorité aux requêtes pour que les plus urgentes soient traitées en
premier.