classDiagram
Point --o Polygone
Polygone <|-- Segment : 2
Polygone <|-- Triangle : 3
Polygone <|-- Quadrilatere : 4
Quadrilatere <|-- Rectangle
class Point{
+float x
+float y
+distance(autre_point)
}
class Polygone{
+liste[Point] liste_points
+aire()
+perimetre()
}
class Quadrilatere{
+aire()
+perimetre()
}
class Segment{
+aire()
+perimetre()
}
class Triangle{
+aire()
+perimetre()
}
Programmation Orientée Objet - Exercices
Mise en place
Lancer un service VSCode
Créer votre arborescence
-
- 💡 évitez d’utiliser des accents dans votre code, en informatique on n’aime pas trop
À chaque fois que l’on vous demandera de créer un classe, vous commencerez par créez un fichier du même nom.
Aide
Vous trouverez des éléments de réponse sur la page de cours d’introduction à la POO.
Voici quelques exemples simples de code si vous avez besoin d’inspiration :
- deux_roues.py : classe mère abstraite représentant un véhicule à deux roues
- trottinette.py : classe représentant une trottinette (hérite de DeuxRoues)
- velo.py : classe représentant un velo (hérite de DeuxRoues)
- main.py : un fichier bac à sable pour tester
1 Exercice 1 - Points
Définissez une classe Point pour représenter un point du plan de coordonnées x et y.
Codez les méthodes suivantes :
Pour vérifier que vos méthodes sont correctes, vous pouvez ajouter à la fin de votre classe un bloc main. Lorsque vous exécuterez ce fichier, c’est ce code qui sera lancé.
point.py
class Point:
# ...
if __name__ == "__main__":
p1 = Point(1, 2)
p2 = Point(1, 2)
print(f"p1 : {p1}")
print(f"Distance entre p1 et p2 : {p1.distance(p2)}")
print(f"p1 est égal à p2 : {p1 == p2}")2 Exercice 2 - Polygones
Vous allez maintenant utiliser des objets de la classe Point pour créer des objets plus complexe.
Vous allez également utiliser l’héritage, i.e. les comportements mutualisables seront dans les classes mères et les comportements spécifiques dans les classes filles.
-
- Nous supposerons par la suite que les segments ne se croisent pas
-
- ces méthodes seront définies dans les classes filles
-
- vérifiez à chaque fois le nombre de points
Voici le diagramme de classes généré avec Mermaid
3 Exercice 3 - Domino
3.1 Un Domino
Écrire une classe Domino avec :
3.2 Jeu
Maintenant nous allons essayer de coder un jeu de dominos.
Pour plus de facilité :
- il n’y aura qu’un seul joueur
- il n’est possible de poser que d’un seul côté, à la fin de la rangée de domino
Commençons par générer tous les dominos possibles, i.e. toutes les combinaisons de (0,0) à (6,6) sans doublon.
Écrivez une fonction jouer() qui :
classDiagram
class Domino{
+int extr_A
+int extr_B
+retourne()
+accepte_apres(autre_domino)
}
Correction
Exercices 1 et 2
Un exemple de tests unitaires sur la classe Point :