Programmation Python
Introduction à la programmation orientée objet :
Exercice 1 : Compte bancaire
Un compte bancaire est défini par les attributs suivants : nom de la banque, nom du titulaire et solde
du compte. Deux opérations de base sont possibles sur un compte : déposer et retirer de l’argent.
Aucune facilité de caisse n’est autorisée (i.e. le solde d’un compte ne peut pas être négatif). La classe
CompteBancaire modélise un compte.
1) Comment faut-il déclarer les trois attributs d’un compte : des attributs de classe ou des
attributs d’instance ?
2) Donner la méthode constructeur de cette classe. La méthode doit vérifier que les valeurs
fournies en entrée sont recevables. Dans le cas contraire aucun objet ne devrait être crée.
3) Définir une méthode deposer qui permet de déposer une somme positive d’argent.
4) Définir une méthode retirer qui permet de retirer une somme positive si le solde du compte
le permet
5) Définir une méthode qui permet d’afficher un l’état d’un compte sous le forme suivant :
Titulaire : nom du titulaire
Banque : nom de la banque
Solde : solde du compte
6) On considère une liste listComptes de comptes bancaires. Comment faire pour permettre de
trier cette liste facilement en fonction de l’ordre alphabétique des noms des titulaires ?
(Indice pour trier une liste on utilise la méthode sort() de la classe list.
7) Soit c un objet instancié à partir de la classe CompteBancaire. Exécuter les instructions
suivantes
Que remarquez vous ? Comment résoudre le problème constaté ? (Indice : Penser à rédéfinir la mé-
thode __setattr__)
p. 1
Programmation Python
Introduction à la programmation orientée objet :
Exercice 2 :
On considère le cas d’un groupe d’étudiants qui suivent une formation en réseaux et télécommunica-
tions. Le tableau 1 donne les coefficients appliqués pour chaque module dans la formation et le code
pour désigner chaque module.
Chaque étudiant doit avoir une note dans chaque module de la formation. En plus des notes un étu-
diant est caractérisé par les attributs suivants : Numéro d’étudiant, nom et prénom.
1. On veut développer une classe Étudiant qui modélise un étudiant. Donner les attributs
nécessaires à la définition d’une telle classe en précisant la nature de chaque attribut (attribut
de classe, attribut d’instance).
2. Proposer une méthode constructrice de la classe Étudiant.
3. Proposer une méthode addNote qui permet d’affecter la note d’un étudiant pour un module
donnée.
4. Propose une méthode setCoeff qui permet de changer le coefficient d’un module. Le
coefficient d’un module est obligatoirement une valeur parmi les valeurs suivantes :
{1.5, 2, 3, 4}
5. Proposer une méthode moyenne qui calcule la moyenne des notes d’un étudiant.
6. Soit L une liste d’étudiants. On veut afficher les noms d’étudiants dans cette liste selon l’ordre
décroissant des moyennes. Les étudiants ayant la même moyenne seront triés en ordre
alphabétique de leurs noms. Comment faire pour faciliter le tri de cette liste ?
p. 2