Mathématiques en seconde générale et technologique – Algorithmes

Test de l'alignement de 3 points

Étudier l'alignement de trois points dans le plan.
X, Y = 0, 1

def det(u, v) :
    return u[X] * v[Y] - v[X] * u[Y]

def v(a, b) :
    return (b[X] - a[X], b[Y] - a[Y])

def alignes(a, b, c) :
    return det(v(a, b), v(a, c)) == 0

def run(a, b, c) :
    print("{}, {}, {} : {}".format(a, b, c,
         "alignés" if alignes(a, b, c) else "non alignés"))

run((1, 1), (2, 2), (3, 3))
run((1, 1), (2, 2), (3, 3.001))
print("Erreur :")
run((1, 0.1), (2, 0.2), (3, 0.3))
print("Correct :")
from fractions import Fraction
run((1, Fraction(1, 10)), (2, Fraction(2, 10)), (3, Fraction(3, 10)))
(1, 1), (2, 2), (3, 3) : alignés
(1, 1), (2, 2), (3, 3.001) : non alignés
Erreur :
(1, 0.1), (2, 0.2), (3, 0.3) : non alignés
Correct :
(1, Fraction(1, 10)), (2, Fraction(1, 5)), (3, Fraction(3, 10)) : alignés
Lionel Avon