« Mathématiques avec Python et Ruby/Points en Python » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 105 : | Ligne 105 : | ||
==Figure== |
==Figure== |
||
[[Fichier:GeomRuby1.svg|center]] |
|||
[[Catégorie:Informatique]] |
|||
[[Catégorie:Mathématiques]] |
|||
[[Catégorie:Programmation Ruby (livre)]] |
|||
[[Catégorie:Mathématiques avec Python et Ruby (livre)|Ruby et géométrie]] |
Version du 2 janvier 2011 à 19:51
L'objet Point est une bonne manière d'aborder la programmation objet. En géométrie repérée, un point est constitué de deux nombres, son abscisse et son ordonnée.
Voici l'énoncé de l'exercice:
Dans un repère orthonormé, on considère , et . Calculer les distances AB, AC et BC et en déduire la nature du triangle ABC. Puis en déduire les coordonnées de son cercle circonscrit.
Classe
Pour que Ruby possède un objet Point, il suffit de le définir, sous la forme d'une classe:
class Point
def initialize(x,y)
@x, @y = x, y
end
end
Dorénavant, chaque fois qu'on crée un point par Point.new(x,y), celui-ci possédera les coordonnées x et y qui sont pour l'instant ses seules propriétés (des variables stockées temporairement dans l'objet).
Coordonnées
Cependant pour accéder depuis l'extérieur aux coordonnées du point, il faut les redéfinir comme des méthodes Ruby (parce que dans Ruby, tout est méthode).
Abscisse
Il suffit de dire que la méthode x renvoit le nombre x:
def x
@x
end
(à l'intérieur de la classe)
Ordonnée
Idem pour y:
def y
@y
end
Dorénavant, l'abscisse de P s'appelle M.x et son ordonnée, M.y.
Affichage
Deux points
Milieu
Vecteur
Distance
Application au problème
Pour récapituler, la classe Point en entier est décrite ici:
class Point
def initialize(x,y)
@x, @y = x, y
end
def x
@x
end
def y
@y
end
def to_s
'('+@x.to_s+';'+@y.to_s+')'
end
def milieu(q)
Point.new((@x+q.x)/2,(@y+q.y)/2)
end
def vecteur(q)
Vecteur.new(q.x-@x,q.y-@y)
end
def distance(q)
(self.vecteur(q)).norme
end
end
C'est tout!