Université Ibn Tofail
Faculté des Sciences de Kénitra
PROGRAMMATION AVANCEE & LUNIX
Pr : Akram CHHAYBI
TP Python : Notions de classes et objets
Objectifs du TP
Comprendre les notions de classe, objet, attribut et méthode en Python
Savoir modéliser un système simple à l’aide de la programmation orientée objet (POO)
Faire le lien entre diagramme de classes, diagramme de séquence et implémentation
Python
Avant de commencer les exercices, il est nécessaire d’installer Python et de préparer
l’environnement de travail.
1. Installation de Python
1. Rendez-vous sur le site officiel : [Link]
2. Téléchargez la version stable recommandée (3.x) selon votre système d’exploitation
(Windows, macOS, Linux).
3. Lors de l’installation :
o Cochez l’option “Add Python to PATH” (très important).
o Puis cliquez sur Install Now.
4. Une fois installé, vérifiez la version avec la commande en cmd : python –version
2. Environnement de développement
Vous pouvez utiliser l’un des environnements suivants :
Option 1 : Jupyter Notebook (recommandé pour Data Science
Option 2 : Visual Studio Code
Option 3 : Google Colab (en ligne, sans installation)
Exercice 1 : Système universitaire (modélisation simple)
On considère un système universitaire composé des trois classes suivantes :
1. Étudiant
o Attributs :
nom
1
prenom
id_etudiant
2. Enseignant
o Attributs :
nom
specialite
id_enseignant
3. Module
o Attributs :
code_module
intitule
volume_horaire
Travail demandé
1. Écrire les classes Étudiant, Enseignant et Module en Python.
2. Pour chaque classe, définir un constructeur __init__ permettant d’initialiser les attributs.
3. Ajouter 2 à 3 méthodes descriptives pour chaque classe (sans implémentation
complexe).
Description des méthodes attendues
Étudiant :
o afficher_infos() : affiche les informations de l’étudiant
o inscrire_module() : permet d’inscrire l’étudiant à un module
Enseignant :
o afficher_infos() : affiche les informations de l’enseignant
o affecter_module() : affecte un module à l’enseignant
Module :
o afficher_module() : affiche les informations du module
o modifier_volume() : modifie le volume horaire du module
Exercice 2 : Modélisation d’un système mécatronique
Contexte : On considère une station mécatronique automatisée chargée de surveiller la
température et de piloter des actionneurs afin de garantir un fonctionnement sûr du système
industriel.
Classe Capteur : Représenter un capteur industriel chargé de mesurer une grandeur physique
(ex. température).
2
Attributs
_id : identifiant unique du capteur
_valeur : dernière valeur mesurée
_etat : état courant du capteur
La variable _etat peut prendre uniquement :
"DESACTIVE" : capteur hors service
"ACTIVE" : capteur prêt à mesurer
"EN_COURS" : mesure en cours
Fonctionnalités de capteur :
activer() :
Met le capteur sous tension
Change l’état du capteur vers "ACTIVE"
Exemple : activation d’un capteur de température avant une mesure
desactiver() :
Coupe le capteur
Met l’état à "DESACTIVE"
Exemple : arrêt du capteur lors d’un arrêt machine
lire_valeur() :
Simule la lecture d’une grandeur physique
Met à jour l’attribut _valeur
Met l’état à "EN_COURS" pendant la lecture
Exemple : lecture d’une température de 65°C
get_etat() :
Retourne l’état actuel du capteur
Exemple : vérifier si le capteur est actif avant de lire la valeur
est_valide() :
Vérifie si la valeur mesurée est dans une plage acceptable
Retourne un indicateur de validité
Exemple : température comprise entre 0°C et 80°C
3
Classe Actionneur : Représenter un élément agissant sur le système mécatronique (moteur,
ventilateur, vérin).
Attributs
_id : identifiant de l’actionneur
_etat : état courant de l’actionneur
États possibles
"DESACTIVE" : actionneur à l’arrêt
"ACTIVE" : actionneur prêt à fonctionner
"EN_COURS" : actionneur en action
"DEFAUT" : dysfonctionnement détecté
Fonctionnalités d’un actionneur :
activer() :
Alimente l’actionneur
Change l’état vers "ACTIVE"
Exemple : moteur prêt à démarrer
desactiver() :
Arrête l’actionneur
Met l’état à "DESACTIVE"
Exemple : arrêt du moteur après un cycle
get_etat() :
Retourne l’état actuel de l’actionneur
Exemple : vérifier si un ventilateur est en fonctionnement
signaler_defaut() :
Met l’actionneur en état "DEFAUT"
Exemple : moteur bloqué ou surchauffé
Classe Controleur_Automate : Analyser les informations issues des capteurs et décider des
actions à exécuter.
Attributs
_capteurs : liste des capteurs
_actionneurs : liste des actionneurs
4
Fonctionnalités :
ajouter_capteur(capteur)
Ajoute un capteur au système
Exemple : ajout d’un capteur de température (list)
ajouter_actionneur(actionneur)
Ajoute un actionneur au système
Exemple : ajout d’un ventilateur (list)
analyser_capteurs()
Lit les valeurs de tous les capteurs
Détecte les situations anormales
Exemple : détection d’une température élevée (si > 80 C)
etat_global()
Fournit un résumé textuel de l’état du système :
Si la température est comprise entre 0°C et 20 :
Message retourné : « Système en fonctionnement normal »
Si la température est strictement supérieure à 20°C et inférieure ou égale à 60°C :
Message retourné : « Système en fonctionnement normal avec surveillance »
Si la température est strictement supérieure à 60°C et inférieure ou égale à 80°C :
Message retourné : « Alerte : température élevée, système en état critique »
Travail demandé :
Implémenter en Python le système mécatronique décrit précédemment, en respectant l’ensemble
des contraintes de conception, des états définis et des règles de fonctionnement spécifiées