Activités pratiques : exercices d'introduction
Duration1h15Présentation & objectifs
L’objectif de cette séance est de vous faire pratiquer l’identification des classes que peuvent constituer un logiciel objet qui répond à un problème donné en utilisant quelques exercices simples.
Pour cette séance vous n’allez pas écrire du code, vous allez réfléchir à comment structurer une solution à un problème donné et vous donnerez le pseudo-code correspondant. Vous n’avez donc pas besoin d’utiliser votre ordinateur, un simple papier/crayon suffit.
Contenu de l’activité
Pour chaque exercice vous devez identifier les objets, les classes, les méthodes, les attributs, les associations et les relations d’héritage (voir tableau 1). Pour un objet, donnez sa classe ; pour une classe, donnez ses attributs et méthodes ; pour une méthode, donnez ses arguments et, si besoin, son résultat ; pour un attribut, donnez son type et pour une association précisez les classes qu’elle met en relation.
![]() |
---|
Tableau 1. Classes, objets, attributs, méthodes et associations. |
0 - Mage, guerrier, voleur
L’objectif de cet exercice est de documenter, sous la forme de tableau les différents éléments qui rentrent en jeu dans une version objet du jeu mage, guerrier, voleur qui a été introduit pendant le cours.
Pour rappel, les règles du jeu sont les suivantes :
on souhaite programmer, en pseudo-code, un jeu de rôle de combat. Dans le jeu on a trois types de personnages : le mage, le guerrier et le voleur. Ils ont tous des points de vie au départ (hp
), causent des dégâts à ses opposants (damage
) et ont un personnage qui leur cause 2 fois plus de dégâts (weakness
). Plus précisément :
- Mage :
hp
= 50,damage
= 10,weakness
= Guerrier - Guerrier :
hp
= 40,damage
= 12,weakness
= Voleur - Voleur :
hp
= 45,damage
= 8,weakness
= Mage
De plus, à chaque victoire, un personnage gagne en expérience et ces gains sont différents selon le personnage :
- Mage : +5
hp
; +1damage
- Guerrier : +10
hp
; +2damage
- Voleur : +8
hp
; +1damage
Une partie se déroule de la manière suivante : à chaque tour, l’attaquant et la cible sont choisis de manière aléatoire. Après l’attaque, les dégâts infligés à la cible sont calculés : la puissance d’attaque de l’attaquant ou 2 fois cette puissance si l’attaquant est le point faible de la cible. La partie est finie quand il ne reste qu’un seul survivant.
0.1 - Jeu sans héritage
Complétez le tableau pour la version du jeu sans héritage.
0.2 - Jeu avec héritage
Complétez le tableau pour la version du jeu avec héritage.
1 - L’ascenseur
On souhaite modéliser le fonctionnement (simplifié) d’un ascenseur. L’ascenseur ferme ses portes avant de se déplacer vers un autre étage. De plus, l’ascenseur connaît tous les déplacements d’un étage à un autre effectués depuis sa mise en service.
Question 1.1
Complétez le tableau avec les éléments qui permettent de répondre à l’énoncé.
Question 1.2
Donnez le pseudo code qui correspond à la création d’un ascenseur, la fermeture de ses portes et son déplacement au 4ème étage.
2 - Un système de gestion de comptes bancaires
On souhaite créer un système très simple de gestion de comptes bancaires. Le système (logiciel) doit permettre de gérer les comptes bancaires des clients (en ajouter, supprimer, modifier les informations associées) et les transactions (créditer/débiter un compte et connaître l’historique des transactions faites sur un compte) qui y sont faites pour une institution bancaire.
Question 2.1
Complétez le tableau avec les éléments qui permettent de répondre à l’énoncé.
Question 2.2
Donnez le pseudo-code qui crée la banque cmb
, ouvre un compte pour Louis Dupond
et crédite 100 euros sur ce compte.
Question 2.3
Donnez le pseudo-code du constructeur de la classe Bank
et de la méthode open_account
.
Question 2.4
Donnez le pseudo-code de la classe BankAccount
.
Question 2.5
On souhaite maintenant qu’une banque puisse gérer des comptes jeunes, qui, au démarrage ont un solde de 500 euros et pour lesquels il n’est possible de débiter de l’argent 10 ans après leur ouverture. Modifiez le tableau construit dans les questions précédentes pour tenir compte de cette contrainte.
Question 2.6
Donnez le pseudo-code des modifications apportées.
Pour aller plus loin
Parcours de soins dans un hôpital
On veut développer un logiciel pour informatiser le parcours de soins dans un hôpital. Dans le logiciel, on doit avoir le nom, prénom, date de naissance, sexe et actes médicaux que les patients ont subis. Ces actes peuvent être des diagnostics ou des soins. Les deux sont réalisés par un personnel soignant à une certaine date. Mais un soin produit une certaine amélioration de l’état du patient (en pourcentage) et un diagnostic a une certaine validité (fiabilité du diagnostic en pourcentage).
Question 3.1
Complétez le tableau avec les éléments qui permettent de répondre à l’énoncé.
Question 3.2
Donnez le pseudo-code qui crée l’hôpital Cavale Blanche
, crée le dossier médical de Louis Dupond
né à Valence et qui a été diagnostiqué le 08/07/2025 comme ayant (à 90% de chances) un Zona.
Question 3.3
Donnez le pseudo-code des différentes classes identifiées.