Adloun

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.

  1. Écrire une fonction est_triangle(a, b, c) qui renvoie True si 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).
  2. Écrire une fonction nature(a, b, c) qui renvoie "impossible", "équilatéral", "isocèle" ou "quelconque".
  3. 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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →