# -*- encoding:utf8 -*-

# Définition des classes

class Point(object):
    """ Définition d'un point géométrique """
    
    def __init__(self, coord_x=0, coord_y=0):       # la méthode constructeur
        """
        Point(float coord_x, float coord_y) --> Obj
        Retourne un objet de la classe Point dont les coordonnées sont <coord_x> et <coord_y>
        """
        self.x =coord_x                             # initialise les attributs d'instance
        self.y =coord_y                             # à coord_x et coord_y

    def affiche_point(self):
        """
        affiche_point() --> None
        Affiche les coordonnées du point sous la forme (x;y)
        """
        print("({};{})".format(self.x, self.y))


class Rectangle(object):
    """Définition d'un rectangle"""
    
    def __init__(self, coin, largeur, hauteur):
        """Rectangle(Point coin, float largeur, float hauteur) --> Obj
        Retourne un objet de la classe Rectangle
        """
        self.coin = coin
        self.largeur =largeur
        self.hauteur = hauteur

    def trouveCentre(self):
        """
        trouveCentre() --> Point
        Retourne les coordonnées du centre du rectangle sous forme d'un objet de la classe Point
        """
        
        xc = self.coin.x + self.largeur/2
        yc = self.coin.y + self.hauteur/2
        return Point(xc, yc)


# Programme de test

if __name__ == "__main__":

    # Définition d'un rectangle:
    coin = Point(12, 27)
    boite = Rectangle(coin, 50, 35)

    # Milieu du rectangle
    centre = boite.trouveCentre()
    print("Le milieu du rectangle est:")
    centre.affiche_point()
