SD2 - Programmation Orientée Objet
Exercice 1 - CORRIGE
Utilisation d’objets
🐍 Script Python
#1. Créer la carte Valet de COEUR que l'on nommera c1.
c1=Carte('Valet', 'COEUR')
🐍 Script Python
#2. Afficher le nom, la valeur et la couleur de c1.
print('c1 = ',c1.getNom(), c1.getValeur() , c1.getCouleur() )
🐍 Script Python
#3. Créer la carte As de PIQUE que l'on nommera c2.
c2=Carte('As', 'PIQUE')
🐍 Script Python
#4. Afficher le nom, la valeur et la couleur de c2.
print('c2 = ',c2.getNom(), c2.getValeur() , c2.getCouleur() )
🐍 Script Python
#5. Modifier le nom de la carte c2 en Roi et afficher les attributs de c2
c2.setNom('Roi')
print('c2 = ',c2.getNom(), c2.getValeur() , c2.getCouleur() )
🐍 Script Python
#6. Créer la carte 8 de TREFLE que l'on nommera c3.
c3=Carte('8', 'TREFLE')
🐍 Script Python
#7. Comparer les cartes c1 et c2 puis c1 et c3.
if c1.egalite(c2):
print(c1.getNom(), " est égale à ",c2.getNom())
elif c1.estSuperieureA(c2):
print(c1.getNom(), " est supérieure à ",c2.getNom())
else:
print(c1.getNom(), " est inférieure à ",c2.getNom())
if c1.egalite(c3):
print(c1.getNom(), " est égale à ",c3.getNom())
elif c1.estSuperieureA(c3):
print(c1.getNom(), " est supérieure à ",c3.getNom())
else:
print(c1.getNom(), " est inférieure à ",c3.getNom())
Exercice 2 - CORRIGE
Utilisation d’objets
🐍 Script Python
# 1. créer une pièce « chambre1 » , de surface 20 m2 et une pièce « chambre2 » », de surface 15 m2
chambre1 = Piece("chambre1", 20)
chambre2 = Piece("chambre2", 15)
🐍 Script Python
# 2. créer une pièce « séjour » », de surface 25 m2 et une pièce « sdb » », de surface 10 m2
sejour = Piece("séjour", 25)
sdb = Piece("sdb", 10)
🐍 Script Python
# 3. créer une pièce « cuisine » », de surface 12 m2
cuisine = Piece("cuisine", 12)
🐍 Script Python
# 4. créer un appartement « appart205 » qui contiendra toutes les pièces créées
appart205 = Appartement("Appart205")
appart205.ajouter(chambre1)
appart205.ajouter(chambre2)
appart205.ajouter(sejour)
appart205.ajouter(sdb)
appart205.ajouter(cuisine)
🐍 Script Python
# 5. afficher la surface totale de l’appartement créé.
print(appart205.SurfaceTotale())
🐍 Script Python
# 6. afficher la liste des pièces et surfaces de l’appartement créé.
print(appart205.getListePieces())
Exercice 3 - CORRIGE
Rédaction de méthodes
🐍 Script Python
class Piece:
def __init__(self,nom,surface): # Constructeur
self.nom=nom
self.surface=surface
def getSurface(self): # accesseur
return self.surface
def getNom(self): # accesseur
return self.nom
def setSurface(self,s): # mutateur
self.surface=s
class Appartement:
def __init__(self,nom): # Constructeur
self.listeDePieces=[]
self.nom=nom
def getNom(self): # accesseur
return self.nom
def ajouter(self,piece): # mutateur
self.listeDePieces.append(piece)
def nbPieces(self): # autre nbPieces N’EST PAS un attribut de la classe Appartement
return len(self.listeDePieces)
def getSurfaceTotale(self): # accesseur
total=0
for piece in self.listeDePieces:
surf=piece.getSurface()
total=total+surf
return total
def getListePieces(self): # accesseur
L=[]
for piece in self.listeDePieces:
surf=piece.getSurface()
nom=piece.getNom()
L.append((nom,surf))
return L
Exercice 4 - CORRIGE
🐍 Script Python
toto = Toto(1, 2, 3)
titi = Toto(2, 1, 6)
a) meth1()
b)
🐍 Script Python
def meth3(self, c):
self.att3 = self.att3 * c
🐍 Script Python
titi.meth1()
🐍 Script Python
toto.meth3(2)
🐍 Script Python
>>> print(toto == titi)
False
toto | titi | ||
---|---|---|---|
Question 1 | (1, 2, 3) | (2, 1, 6) | instanciation |
Question 3 | (1, 2, 3) | (1, 2, 6) | inversion dans titi |
Question 4 | (1, 2, 6) | (1, 2, 6) | multiplication dan toto |
Les valeurs de i
, j
, k
sont les mêmes pour toto
et titi
mais le test est effectué sur les objets et non les valeurs de leurs attributs.
Exercice 5 - CORRIGE
🐍 Script Python
def __init(self, x, y, z)__:
self.x = x
self.y = y
self.z = z
🐍 Script Python
def avance(self):
self.x = x + 1
def droite(self):
self.y = y + 1
def saute(self):
self.z = z + 1
🐍 Script Python
def coord(self):
return (x, y, z)
🐍 Script Python
class Personnage:
def __init(self, x, y, z)__:
self.x = x
self.y = y
self.z = z
def avance(self):
self.x = x + 1
def droite(self):
self.y = y + 1
def saute(self):
self.z = z + 1
def coord(self):
return (self.x, self.y, self.z)
🐍 Script Python
Laura = Personnage(0, 0, 0)
Laura.avance()
Laura.saute()
Laura.droite()
print(Laura.coord())
Retour de la console : >>> (1, 1, 1)
Exercice 6 - CORRIGE
Text Only
Il permet d'effectuer un tirage aléatoire de 100 valeurs et d'en afficher la moyenne.
Exercice 7 - CORRIGE
🐍 Script Python
class Carre:
def __init(self, cote):
self.cote = cote
def perimetre():
return 4 * self.cote
def aire():
return self.cote**2
🐍 Script Python
c1 = Carre(3)
c2 = Carre(2)
print(c1.perimetre)
print(c1.aire)
print(c2.perimetre)
print(c2.aire)
Retour de la console :
Text Only
12
9
8
4