point.py

text/x-python point.py — 2.1 KB

Contenu du fichier

''' **********************************************************************
    Fichier point.py

    Classe qui implante le type Point

    auteur gabriel girard
    date 2017

********************************************************************** '''
import math
#
#  La classe Point
#
# Entree : (implicite) Chaque fonction reçoint un paramètre implicte de type point (self)
#
class Point:
    instances = 0
    # Initialisation d'un point : x=0, y=0 par défaut)
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y
        Point.instances += 1
    # Fonction permettant de récupérer la valeur en x d'un point
    # Sortie : (retour) la valeur en x du point
    def get_val_x(self): return self.x
    # Fonction permettant de récupérer la valeur en y d'un point
    # Sortie : (retour) la valeur en y du point
    def get_val_y(self): return self.y
    # lecture des coordonnées d'un point
    # Entree : (clavier) les valeurs en x et y du point
    def lecture(self):
        self.x = int(input("Valeur en x: "))
        self.y = int(input("Valeur en y: "))
    # Fonction calculant la distance entre 2 points
    # Entree : (parametre) un point
    # Sortie : (retour) la distance entre ls points
    def evaluer_distance(self, point2):
        dis_x = point2.x - self.x
        dis_y = point2.y - self.y
        return math.sqrt(dis_x ** 2 + dis_y ** 2)
    # Fonction comparant deux point (==)
    # Entree : (parametre) un point
    # Sortie : True/False selon l'égalité
    def __eq__(self, p):
        return self.x == p.x and self.y == p.y
    # Fonction transformat un point pour l'impression
    # Sortie : (retour) chaine de caractères avec les valeurs du point
    def __str__(self):
        return "(" + str(self.x) + ", " +  str(self.y) + ")"

#
# Programme pour tester la classe...
#
def main():
    pt1 = Point(1,2)
    pt2 = Point()
    pt2.lecture()
    distance = pt1.evaluer_distance(pt2)
    pt4 = Point()
    if pt2 == pt4: print("Égaux")
    else : print("Différent")
    print("Distance entre :", str(pt1), str(pt2), "=", distance)
    print("Le nombre de points créés est", pt1.instances)

if __name__ == "__main__":
    main()