Corrigés des tests Python
IPEIN 2016/2017
Corrigés des tests Python Sommaire Test1 pour ST2 : .......................................................................................................................................................1 Corrigé : ...............................................................................................................................................................1 Test2 pour SM5 et ST3 :...........................................................................................................................................2 Corrigé : ...............................................................................................................................................................2 Test3 pour ST5 : .......................................................................................................................................................2 Corrigé : ...............................................................................................................................................................2 Test4 pour SM4 et ST1 :...........................................................................................................................................3 Corrigé : ...............................................................................................................................................................3
Test1 pour ST2 : Définissez une classe Domino() qui permette d'instancier des objets simulant les pièces d'un jeu de dominos. Le constructeur de cette classe initialisera les valeurs des points présents sur les deux faces A et B du domino (valeurs par défaut = 0). Deux autres méthodes seront définies : • •
une méthode affiche_points() qui affiche les points présents sur les deux faces ; une méthode valeur() qui renvoie la somme des points présents sur les 2 faces.
Exemples d'utilisation de cette classe : 1. 2. 3. 4. 5. 6. 7. 8.
>>> d1 = Domino(2,6) >>> d2 = Domino(4,3) >>> d1.affiche_points() face A : 2 face B : 6 >>> d2.affiche_points() face A : 4 face B : 3 >>> print("total des points :", d1.valeur() + d2.valeur()) total des points : 15
Corrigé : 1. 2. 3. 4. 5. 6. 7. 8. 9.
class Domino: def __init__ (self, A=0, B=0): self.Face_A = A self.Face_B = B def affiche_points(self): print("face A : {0} face B : {1}"\ .format(self.Face_A, self.Face_B)) def valeur(self): return self.Face_A + self.Face_B
K. GHALI
Page 1 sur 3
Corrigés des tests Python
IPEIN 2016/2017
Test2 pour SM5 et ST3 : Définissez une classe CompteBancaire(), qui permette d'instancier des objets tels que compte1, compte2, etc. Le constructeur de cette classe initialisera deux attributs d'instance nom et solde, avec les valeurs par défaut 'Ali' et 1000. Trois autres méthodes seront définies : - depot(somme) permettra d'ajouter une certaine somme au solde - retrait(somme) permettra de retirer une certaine somme du solde - affiche() permettra d'afficher le nom du titulaire et le solde de son compte. Exemples d'utilisation de cette classe : 1. 2. 3. 4. 5. 6. 7. 8. 9.
>>> compte1 = CompteBancaire('Salah', 800) >>> compte1.depot(350) >>> compte1.retrait(200) >>> compte1.affiche() Le solde du compte bancaire de Salah est de 950 dinars. >>> compte2 = CompteBancaire() >>> compte2.depot(25) >>> compte2.affiche() Le solde du compte bancaire de Ali est de 1025 dinars.
Corrigé : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
class CompteBancaire(): def __init__ (self, Nom="Ali", Solde=1000): self.nom = Nom self.solde = Solde def depot(self, somme): self.solde += somme def retrait(self, somme): self.solde -= somme def affiche(self): print("Le solde du compte bancaire de dinars." .format(self.nom, self.solde))
{0}
est
de
{1}
Test3 pour ST5 : Définissez une classe Voiture() qui permette d'instancier des objets reproduisant le comportement de voitures automobiles. Le constructeur de cette classe initialisera les attributs d'instance suivants, avec les valeurs par défaut indiquées : marque = 'Ford', couleur = 'rouge', pilote = 'personne', vitesse = 0. Lorsque l'on instanciera un nouvel objet Voiture(), on pourra choisir sa marque et sa couleur, mais pas sa vitesse, ni le nom de son conducteur. Les méthodes suivantes seront définies : - choix_conducteur(nom) permettra de désigner (ou changer) le nom du conducteur. - accelerer(taux, duree) permettra de faire varier la vitesse de la voiture. La variation de vitesse obtenue sera égale au produit : taux x duree. Par exemple, si la voiture accélère au taux de 1,3 m/s2 pendant 20 secondes, son gain de vitesse doit être égal à 26 m/s. Des taux négatifs seront acceptés (ce qui permettra de décélérer). La variation de vitesse ne sera pas autorisée si le conducteur est 'personne'. - affiche_tout() permettra de faire apparaître les propriétés présentes de la voiture, c'est-à-dire sa marque, sa couleur, le nom de son conducteur, sa vitesse.
Corrigé :
K. GHALI
Page 2 sur 3
Corrigés des tests Python
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
IPEIN 2016/2017
class Voiture(): def __init__ (self, marque = 'Ford', couleur = 'rouge'): self.marque = marque self.couleur = couleur self.pilote = 'personne' self.vitesse = 0. def choix_conducteur(self, nom): self.pilote = nom def accelerer(self, taux, duree): if self.pilote == 'personne': print("Cette voiture n'a pas de conducteur!") else: self.vitesse += taux * duree def affiche_tout(self): print("{0} {1} pilotée par {2}, vitesse = {3} m/s."\ .format(self.marque, self.couleur, self.pilote, self.vitesse))
Test4 pour SM4 et ST1 : 1) Ecrire une classe Cercle qui permet de manipuler des objets de type cercle caractérisé chacun par un rayon « r ». La classe contiendra: • Un constructeur • Une méthode « surface » qui calcule la surface du cercle • Une méthode « perim » qui calcule le périmètre du cercle 2) Ecrire les commandes python permettant de : • Créer deux cercles « cl » et « c2 » de rayons respectifs 4 et 6 • Et de calculer et d'afficher la surface et le périmètre de cl et c2
Corrigé : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
from math import pi class Cercle: def __init__ (self, r): self.r = r def surface(self): return pi*self.r**2 def perim(self): return 2*pi*self.r >>> c1 = Cercle(4) >>> c2 = Cercle(6) >>> print("La surface de c1 est: {0} \nLe périmètre de c1 est: {1}".format(c1.surface(), c1.perim())) La surface de c1 est: 50.26548245743669 Le périmètre de c1 est: 25.132741228718345 >>> print("La surface de c2 est: {0} \nLe périmètre de c2 est: {1}".format(c2.surface(), c2.perim())) La surface de c2 est: 113.09733552923255 Le périmètre de c2 est: 37.69911184307752
K. GHALI
Page 3 sur 3