sciences numériques et technologie (seconde) · Chapitre 5 · Exercice de TD
La distance et ses cas particuliers
Les fonctions · Fonctions à plusieurs arguments · niveau 3 (difficile)
Énoncé
- Écrire une fonction
distance(xa, ya, xb, yb)renvoyant la distance . - L'utiliser pour écrire
est_isocele(xa, ya, xb, yb, xc, yc)renvoyantTruesi le triangle est isocèle. - Tester sur , , , puis sur trois points alignés.
- Pourquoi vaut-il mieux comparer les carrés des distances ?
Corrigé
1. et 2.
def distance(xa, ya, xb, yb):
return ((xb - xa)**2 + (yb - ya)**2) ** 0.5
def est_isocele(xa, ya, xb, yb, xc, yc):
ab = distance(xa, ya, xb, yb)
ac = distance(xa, ya, xc, yc)
bc = distance(xb, yb, xc, yc)
return ab == ac or ab == bc or ac == bc
3.
print(est_isocele(0, 0, 4, 0, 2, 3)) # True : AC = BC = sqrt(13)
print(est_isocele(0, 0, 1, 1, 2, 2)) # True aussi !
Le second cas est instructif : les trois points sont alignés, il n'y a pas de triangle, et pourtant la fonction répond True puisque . Une fonction juste sur sa définition peut répondre à côté de la question posée — il faudrait ajouter un test d'alignement.
4. Comparer les carrés évite la racine carrée, donc les flottants approchés. Avec distance, est calculé deux fois : les deux résultats coïncident ici, mais rien ne le garantit en général, et deux longueurs égales pourraient être déclarées différentes. En travaillant sur , on ne manipule que des entiers quand les coordonnées le sont, et la comparaison est exacte.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 14 autres exercices corrigés dans ce chapitre, et 23 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.