« Mathématiques avec Python et Ruby/Points en Python » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 4 : | Ligne 4 : | ||
{{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>}} |
{{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= |
=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== |
==Nature de ABC== |
||
Ligne 111 : | Ligne 18 : | ||
[[Catégorie:Mathématiques]] |
[[Catégorie:Mathématiques]] |
||
[[Catégorie:Programmation Ruby (livre)]] |
[[Catégorie:Programmation Ruby (livre)]] |
||
[[Catégorie:Mathématiques avec Python et Ruby (livre)| |
[[Catégorie:Mathématiques avec Python et Ruby (livre)|Python et géométrie]] |
Version du 2 janvier 2011 à 19:54
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.