Exercices sur la programmation orientée objet
Exercice 1
1) Créez une classe Point
qui possède deux attributs x
et y
correspondant aux coordonées du point.
Ces deux attributs doivent être affectés par le constructeur.
2) Ajoutez une méthode affiche()
qui affiche les coordonnées du point comme ci-dessous (ici, x = 2 et y = 3) :
Point | x : 2 | y : 3
3) Ajoutez une méthode translater(tx,ty)
qui ajoute tx
à x
et ty
à y
.
class Point:
""" Point dans un plan """
def __init__(self, x, y):
self.x = x
self.y = y
def affiche(self):
print("Point | x :", self.x, " | y :", self.y)
def translater(self, tx, ty):
self.x = self.x + tx
self.y = self.y + ty
mon_point = Point(2,3)
mon_point.affiche()
mon_point.translater(2,2)
mon_point.affiche()
Exercice 2
1) Créez une classe Compte
modélisant un compte en banque.
La classe possède deux attributs somme
et taux
correspondant à la somme placée sur le compte et au taux d'intérêt.
Ces deux attributs doivent être affectés par le constructeur.
2) Ajoutez une méthode affiche()
qui affiche la somme et le taux comme ci-dessous :
Compte | somme : 2000€ | taux : 2%
3) Ajoutez une méthode depot(x)
qui ajoute x
à la somme sur le compte.
4) Ajoutez une méthode retrait(x)
qui enlève x
à la somme sur le compte.
Elle pourra renvoyer un erreur si la somme sur le compte devient négative et annuler alors l'opération.
5) Ajoutez une méthode interets()
qui calcule les intérêts perçus en un an et les ajoute à la somme placée.
Pour rappel les intérets se calculent avec la formule interets = taux x somme / 100
class Compte:
""" Compte en banque """
def __init__(self, somme, taux):
self.somme = somme
self.taux = taux
def affiche(self):
# On met sep="" pour pouvoir coller € et %
print("Compte | somme : ", self.somme, "€ | taux : ", self.taux, "%", sep="")
def depot(self, x):
self.somme = self.somme + x
def retrait(self, x):
if self.somme > x: # Si le compte reste créditeur
self.somme = self.somme - x
else:
print("Erreur : découvert non autorisé !")
def interets(self):
""" Calcule les intérets sur 1 an et les crésite au compte. """
interets = self.somme * self.taux / 100
self.somme = self.somme + interets
mon_compte = Compte(5000, 10)
mon_compte.affiche()
mon_compte.depot(5000)
mon_compte.affiche()
mon_compte.retrait(4000)
mon_compte.affiche()
mon_compte.retrait(10000)
mon_compte.interets()
mon_compte.affiche()
Exercice 3
1) En vu de faire un site web recensant des citations de films, créez une classe Citation
permettant d'enregistrer le texte de la cittion et son film.
2) Créez une méthode affiche
permettant d'afficher la citation de cette façon :
Si je connaissais le con qu’a fait sauter le pont !
-- On a retrouvé la 7e compagnie
3) Ajouter deux attributs vote_plus
et vote_moins
pour enregistrer les votes des utilisateurs sur chaque citation.
4) Ajouter deux méthodes vote_pour
et vote_contre
qui permettent respectivement d'incrémenter vote_plus
et vote_moins
.
5) Enfin, ajoutez une méthode affiche_votes
qui affiche le nombre de votes pour et le nombre de votes contre la citation.