Logo de kxs.frCours d'informatique pour le lycée et la prépa

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()