Soit \(A\) et \(B\) deux points du plan. On souhaite connaître les coordonnées du vecteur \(\overrightarrow{AB}\)
Compléter le constructeur de la classe Vecteur qui prend en paramètres deux instances point1 et point2 de la classe Point et initialise les attributs x et y, qui représentent les coordonnées du vecteur fomré par ces deux points.
Soit \(A\) et \(B\) deux points du plan. On souhaite connaître la norme du vecteur \(\lvert\lvert\overrightarrow{AB} \lvert\lvert\).
Écrire la méthode norme de la classe Vecteur qui renvoie la norme de ce vecteur.
Exemples
>>> AB.norme()5.0
Racine carrée d'un nombre
La fonction permettant de calculer la racine carrée d'un nombre positif fait partie du module math. Elle est importée au début de cette version de l'exercice : from math import sqrt.
\(\sqrt{5}\) s'obtient avec sqrt(5)
La valeur renvoyée est bien souvent une valeur approchée du résultat. Regardons par exemple \({\sqrt{3}}^2\)
🐍 Console Python
>>> sqrt(3)**22.9999999999999996
La fonction sqrt renvoie un nombre flottant (type float) :
🐍 Console Python
>>> sqrt(16)4.0
Comparaison de nombres flottants
Lorsqu'on écrit a = x ou x est un nombre réel, la valeur de a enregistrée en machine est une valeur approchée de x (quelques fois la valeur exacte).
Cette valeur approchée a la forme d'un nombre flottant (le type float en Python). En conséquence, alors que des calculs et des comparaisons peuvent être effectués de manière exacte sur des réels, ils ne le sont que de manière approchée sur leur représentation en machine.
On peut donc obtenir par exemple, avec a = x et b = y, l'expression a == b évaluée à True alors que x et y sont différents.
C'est pourquoi les tests ne vérifient pas l'égalité des résultats et des valeurs attendues mais leur proximité.
Ainsi, on peut vérifier que \(\sqrt{2} \approx 1,414214\) en faisantassertabs(1.414214-sqrt(2))<1e-6. Ce test vérifie que les deux valeurs sont proches à \(10^{-6}\) près.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Écrire la méthode est_colineaire qui prend en paramètre une instance de la classe Vecteur et renvoie la valeur booléenne indiquant si ces vecteurs sont colinéaires ou non.
Remarque
Du fait des problèmes de comparaison entre nombres flottants, on se limitera à des coordonnées entières.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)