sciences numériques et technologie (seconde) · Chapitre 3 · Exercice de TD
Reconnaître un triangle
Instructions conditionnelles · La structure if / elif / else · niveau 3 (difficile)
Énoncé
Trois longueurs a, b, c sont données.
- Écrire une fonction
est_triangle(a, b, c)qui renvoieTruesi les trois longueurs peuvent être les côtés d'un triangle (inégalité triangulaire : chaque côté est plus petit que la somme des deux autres). - Écrire une fonction
nature(a, b, c)qui renvoie"impossible","équilatéral","isocèle"ou"quelconque". - Tester sur , , et .
Corrigé
1.
def est_triangle(a, b, c):
return a < b + c and b < a + c and c < a + b
Les trois inégalités sont nécessaires : il ne suffit pas de tester le plus grand côté si l'on ne sait pas lequel c'est.
2.
def nature(a, b, c):
if not est_triangle(a, b, c):
return "impossible"
elif a == b and b == c:
return "équilatéral"
elif a == b or b == c or a == c:
return "isocèle"
else:
return "quelconque"
3.
print(nature(3, 4, 5)) # quelconque
print(nature(2, 2, 2)) # équilatéral
print(nature(5, 5, 8)) # isocèle
print(nature(1, 2, 9)) # impossible
L'ordre des tests est ici encore décisif, et pour deux raisons. Il faut écarter le cas impossible en premier, sinon serait déclaré quelconque. Et il faut tester équilatéral avant isocèle : un triangle équilatéral vérifie aussi a == b, il serait donc classé isocèle si l'on inversait les deux branches.
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.