TP - poo & classes en Python3-exercices avec solutions

Python est un excellent langage de programmation qui prend en charge la POO. Vous allez l'utiliser pour définir une classe avec des attributs et des méthodes, que vous appellerez ensuite. Python offre de nombreux avantages par rapport à d’autres langages de programmation tels que Java, C ++ ou R. C’est un langage dynamique, avec des types de données de haut niveau. Cela signifie que le développement est beaucoup plus rapide qu'avec Java ou C ++. Il n’est pas nécessaire que le programmeur déclare les types de variables et d’arguments. Cela rend également Python plus facile à comprendre et à apprendre pour les débutants, son code étant plus lisible et intuitif.

 

Exercice 1. Classe Rectangle : || Solution

  1. Ecrire une classe Rectangle en langage Python, permettant de construire un rectangle dotée d'attributs longueur et largeur.
  2. Créer une méthode Perimetre() permettant de calculer le périmètre du rectangle et une méthode Surface() permettant de calculer la surface du rectangle
  3. Créer les getters et setters.
  4. Créer une classe fille Parallelepipede héritant de la classe Rectangle et dotée en plus d'un attribut hauteur et d'une autre méthode Volume() permettant de calculer le volume du Parallélépipède.

Exercice 2. Classe Compte bancaire : || Solution

  1. Créer une classe Python nommée CompteBancaire qui représente un compte bancaire, ayant pour attributs : numeroCompte (type numérique ) , nom (nom du propriétaire du compte du type chaine), solde.
  2. Créer un constructeur ayant comme paramètres : numeroCompte, nom, solde.
  3. Créer une méthode Versement() qui gère les versements.
  4. Créer une méthode Retrait() qui gère les retraits.
  5. Créer une méthode Agios() permettant d'appliquer les agios à un pourcentage de 5 % du solde
  6. Créer une méthode afficher() permettant d’afficher les détails sur le compte
  7. Donner le code complet de la classe CompteBancaire.

Exercice 3. Classe Cercle || Solution

  1. Définir une classe Cercle permettant de créer un cercle C(O,r) de centre O(a,b) et de rayon r à l'aide du constructeur :
  2. Définir une méthode Surface() de la classe qui permet de calculer la surface du cercle
  3. Définir une méthode Perimetre() de la classe qui permet de calculer le périmètre du cercle
  4. Définir une méthode testAppartenance() de la classe qui permet de tester si un point A(x,y) appartient ou non au cercle C(O,r)

Exercice 4. Classe Calcul arithmétique || Solution

  1. Créer une classe Calcul ayant un constructeur par défaut (sans paramètres) permettant d’effectuer différents calculs sur les nombres entiers.
  2. Créer au sein de la classe Calcul une méthode nommée Factorielle() qui permet de calculer le factorielle d'un entier. Tester la méthode en faisant une instanciation sur la classe.
  3. Créer au sein de la classe Calcul une méthode nommée Somme() permettant de calculer la somme des n premiers entiers:  1 + 2 + 3 + .. + n. Tester la méthode.
  4. Créer au sein de la classe Calcul une méthode nommée testPrim() permettant de tester la primalité d'un entier donné. Tester la méthode.
  5. Créer au sein de la classe Calcul une méthode nommée testPrims() permettant de tester si deux nombres sont premier entre eux.
  6. Créer une méthode tableMult() qui crée et affiche la table de multiplication d'un entier donné. Créer ensuite une méthode allTablesMult() permettant d'afficher toutes les tables de multiplications des entiers 1, 2, 3, ..., 9.
  7. Créer une méthode  listDiv() qui récupère tous les diviseurs d'un entier donné sur une liste Ldiv. Créer une autre méthode listDivPrim() qui récupère tous les diviseurs premiers d'un entier donné

Exercice 5  ||  Solution

Coder une classe  myString permettant de doter les chaines de caractères des méthodes append() et pop() faisant les mêmes opérations que celles des listes. Exemple si on crée  des chaines via l'instanciation s1 = myString("Hello") et s2 = "bonjour", et on lui applique les méthodes :

print(s1.append(" world !")) # affiche  'Hello world !'
print(s2.pop(2))  # affiche 'bojour'  

Exercice 6 || Solution

1. Définir une classe Book avec les attributs suivants : Title, Author (Nom complet), Price.
2. Définir un constructeur ayant comme attributs: Title, Author, Price.
3. Définir la méthode View() pour afficher les informations d'une instance object Book.
4. Ecrire un programme pour tester la classe Book.

Exercise 7 Classe Geometry || Solution

Ecrire une classe Python nommée Geometry avec un constructeur par défaut sans paramètres.
1. Ajouter une méthode nommée distance() à la classe geometry qui permet de calculer la distance entre deux points

A = (a1, a2), B = (b1, b2) (avec la convention: un point est est identifié à ses coordonnées M = (xM , yM) )
2. Ajouter une méthode nommée middle() à la classe geometry qui permet de déterminer le milieu d'un bipoint (A , B).
3. Ajouter une méthode nommée trianglePerimeter() à la classe geometry qui permet de calculer le périmètre d'un triangle ABC.
4. Ajouter une méthode nommée triangleIsoscel() qui renvoie True si le triangle est isoscel et False sinon.

Exercice 8 || Solution

1) - Créez une classe Python appelée Voiture qui a les attributs suivants:

  • marque
  • modèle
  • vitesse
  • moteur (essence ou diesel)

2) - Ajoutez un constructeur à la classe Voiture qui initialise les attributs ci-dessus lorsque l'on crée un nouvel objet de la classe.
3) - Ajoutez une méthode à la classe Voiture appelée accélérer qui augmente la vitesse de 10 km/h à chaque fois que cette méthode est appelée.
4) - Ajoutez une méthode à la classe Voiture appelée afficher_vitesse qui affiche la vitesse actuelle de la voiture.
5) - Créez un objet de la classe Voiture et utilisez les méthodes accélérer et afficher_vitesse pour vérifier que tout fonctionne correctement.
 

Solutions

Exercice1 : classe rectangle en Python 3

 

Younes Derfoufi
CRMEF OUJDA

9 thoughts on “TP - poo & classes en Python3-exercices avec solutions

Leave a Reply