Exercice: Classe point
Rédigez la définition d'une classe “Points”. Les objets de cette classe doivent avoir :
une méthode d'affichage des coordonnées du point
une méthode de déplacement pour changer ces coordonnées.
une méthode dist qui calcule la distance entre 2 points.
Nous supposons que la distance entre 2 points
A(x0, y0)
et
B(x1, y1)
peut être calculée avec
la formule :
d(A , B)=
(x1x0)²+( y1y0)²
Exercice 2: Classe Vecteur
1. Création de la classe et de ses méthodes
a) Créer une nouvelle classe Vecteur dont les attributs s’appellent x, y et z et qui contiendront
chacune des coordonnées représentant un vecteur de R3 .
L’afficheur doit permettre de renvoyer un vecteur sous la forme (1,2,3)
b) Écrire une méthode norme() qui renvoie la norme (euclidienne) d’un vecteur.
2. Surcharge des méthodes
a) Surcharger l’opérateur - pour la différence de vecteurs ;
b) Surcharger les opérateurs == et = ! pour tester l’égalité ou la non égalité de vecteurs.
Classe point from math import sqrt
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def show(self):
return self.x, self.y
def move(self, x, y):
self.x += x
self.y += y
def dist(self, pt):
dx = pt.x - self.x
dy = pt.y - self.y
return math.sqrt(dx ** 2 + dy ** 2)
p1 = Point(2, 3)
p2 = Point(3, 3)
print(p1.show()) # (2, 3)
print(p2.show()) # (3, 3)
p1.move(10, -10)
print(p1.show()) # (12, -7)
print(p1.dist(p2)) #
13.45362404707371
Classe vecteur
et ses méthodes
Surcharge de
l’opérateur -
Surcharge de
l’opérateur ==
from math import sqrt
class Vecteur():
def __init__(self,x,y,z):
self.x=x
self.y=y
self.z=z
def affiche(self):
return self.x , self.y, self.z renvoie un tuple donc (….)
def norme(self):
return sqrt((self.x)**2+(self.y)**2+(self.z)**2)
v=Vecteur(1,2,3)
print(v.affiche()) # affichera (1, 2, 3)
print(v.norme()) # affichera 3.7416573867739413
def __sub__(self,v):
if type(v)==Vecteur:
return Vecteur(self.x-v.x,self.y-
v.y,self.z-v.z)
v=Vecteur(1,2,3)
w=Vecteur(3,4,5)
print(v.__sub__(w).affiche()) #(-2, -2, -2)
print((v-w).affiche()) #(-2, -2, -2)
def __eq__(self,v):
if type(v)==Vecteur :
return self.x==v.x and self.y==v.y and self.z==v.z
def __ne__(self,v):
if type(v)==Vecteur :
return self.x != v.x or self.y !=v.y or self. z !=v.z
v=Vecteur(1,2,3)
w=Vecteur(1,2,3)
print(v.__eq__(w))
print(v.__ne__(w))
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !