Définir une classe Rectangle représentant des rectangles présentant un côté horizontal et un côté vertical.
Les attributs et méthodes
seront :
- la largeur (longueur du côté horizontal),
- la hauteur (longueur du côté vertical),
- le point sommet inférieur gauche,
- une méthode de calcul du périmètre,
- une méthode de calcul de l'aire.
Définir ensuite une classe Carre dérivant (≡ héritant) de la classe Rectangle.
- Un code possible
class Point:
"""
Avec p = Point(3,4), on définit un point p
tel que p.x = 3 et p.y = 4.
"""
def __init__(self, abscisse, ordonnee):
self.x = abscisse
self.y = ordonnee
def __str__(self):
return "({}, {})".format(self.x, self.y)
class Rectangle:
"""
On définit un rectangle.
Un côté horizontal de longueur largeur.
Un côté vertical de longueur hauteur.
On donne le sommet bas gauche.
"""
def __init__(self, lg, ht, cig):
self.hauteur = ht
self.largeur = lg
self.cig = cig
def aire(self):
return self.largeur * self.hauteur
def perimetre(self):
return 2 * (self.largeur + self.hauteur)
def __str__(self):
ch = "\nRectangle. "
ch += "Largeur : {}. ".format(self.largeur)
ch += "Hauteur : {}. ".format(self.hauteur)
ch += "Coin inférieur gauche : {}.".format(self.cig)
return ch
class Carre(Rectangle):
def __init__(self, cote, cig):
super().__init__(cote, cote, cig)
def __str__(self):
ch = "\nCarré. "
ch += "Longueur de côté : {}. ".format(self.largeur)
ch += "Coin inférieur gauche : {}.".format(self.cig)
return ch
r = Rectangle(2, 4, Point(1,1))
print(r)
print("Aire : {}.".format(r.aire()))
print("Périmètre : {}.".format(r.perimetre()))
c = Carre( 3, Point(3,4))
print(c)
print("Aire : {}.".format(c.aire()))
print("Périmètre : {}.".format(c.perimetre()))