En testant les valeurs 5,1,1 le résultat obtenu est CONSTRUCTIBLE au lieu de PAS [Résolu]

Signaler
-
 domxav1759 -
Bonjour,
voilà j'ai fais cours second de python
dans laquelle il pose une question :

Si on choisit 3 nombres, il n'est pas toujours possible de construire un triangle ayant pour longueur ces nombres. Par exemple, il est impossible de construire un triangle de côtés de longueurs 1, 1 et 5.

Un triangle est constructible si pour chaque coté, sa longueur est inférieur à la somme des longueurs deux autres cotés.

Le but de cet exercice est de créer un programme qui nous dit si le triangle est constructible ou pas à partir des longueurs qui nous sont données.

Entrée : Trois longueurs a, b et c.

Sortie : Affiche "CONSTRUCTIBLE" si on peut construire un triangle ayant des cotés de ces trois longueurs ou bien ";PAS CONSTRUCTIBLE" sinon. N'oubliez pas les guillemets.
Pour les plus rapides, vous pouvez afficher "PLAT"si le triangle qu'on peut construire est plat.

j'ai écrit mon programme:


def ma_fonction(a,b,c):
ab=a*b
bc=c*c
ac=a*c
if ab<bc+ac and bc<ab+ac and ac<ab+bc:
return ";CONSTRUCTIBLE"
elif a<1 and b< and c<1:
return "PLAT";
else:
return "PAS CONSTRUCTIBLE"
print(ma_fonction(5,1,1))


en l’exécutant j'ai une erreur message :
"En testant les valeurs 5,1,1 le résultat obtenu est CONSTRUCTIBLE au lieu de PAS CONSTRUCTIBLE"

quelqu'un peut m'aider s'il vous plaît


Configuration: Windows / Firefox 83.0

3 réponses

j'ai corrigé un peu mon programme:


def ma_fonction(a, b, c):

if a < b+c and b < a+c and c < a+b:
return "CONSTRUCTIBLE"
elif 0 < a <= b <= c:
return "PLAT"
else:
return "PAS CONSTRUCTIBLE"


print(ma_fonction(2, 1, 1))


maintenant j'ai erreur suivante:
"En testant les valeurs 2,1,1 le résultat obtenu est PAS CONSTRUCTIBLE au lieu de PLAT"
Messages postés
3668
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 janvier 2021
981
Bonjour,

Je ne comprends pas ta deuxième condition. Qu'essaies-tu de vérifier en écrivant
elif 0 < a <= b <= c:
?
Le triangle sera plat si a+b=c ou a+c=b ou b+c=a, pourquoi n'écris-tu pas ça de la même façon que dans ton premier test ?

Xavier
ok j'ai corrigé ma faute


elif a + b == c or a + c == b or b + c == a:


merci beaucoup pour votre aide