« Mathématiques avec Python et Ruby/Points en Python » : différence entre les versions

aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
 
{{Cadre|<code>Dans un repère orthonormé, on considère <math>A(-1;3)</math>, <math>B(5;1)</math> et <math>C(1;5)</math>. 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 [[w:Cercle circonscrit|cercle circonscrit]].</code>}}
 
=Classe=
 
Pour que ''Ruby'' possède un objet ''Point'', il suffit de le définir, sous la forme d'une ''classe'':
 
<source lang="ruby">
class Point
 
def initialize(x,y)
@x, @y = x, y
end
 
end
</source>
 
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'':
 
<source lang="ruby">
def x
@x
end
</source>
 
(à l'intérieur de la classe)
 
==Ordonnée==
 
Idem pour ''y'':
 
<source lang="ruby">
def y
@y
end
</source>
 
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:
 
<source lang="ruby">
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
</source>
 
C'est tout!
 
==Nature de ABC==
[[Catégorie:Mathématiques]]
[[Catégorie:Programmation Ruby (livre)]]
[[Catégorie:Mathématiques avec Python et Ruby (livre)|RubyPython et géométrie]]
1 277

modifications