Page 1 sur 1
question
Posté : sam. 21 mai 2022 21:03
par pauline
Bonsoir
Pourquoi ce script
def pointsurdroite(x,y):
if 5*x-6*y+10=0:
print("lepointestsurladroite")
else :
print ("lepointn'estpassurladroite")
ne marche pas ?
Merci
Re: question
Posté : dim. 22 mai 2022 08:44
par sos-math(21)
Bonjour,
en Python, le symbole pour le test d'égalité est le double égal "==", le symbole "=" étant réservé pour l'affectation.
Donc tu devrais avoir :
Code : Tout sélectionner
def pointsurdroite(x,y):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
Attention tout de même car tu utilises un test entre nombres flottants (les décimaux de Python), et il se peut que tu obtiennes des erreurs alors que tes points appartiennent bien à la droite.
Par exemple le point (-1,88;0,1) appartient bien à la droite car \(-1,88\times 5-6\times 0,1+10=-9,4-0,6+10=0\).
Mais en Python, l'appel renvoie une non-appartenance :
Code : Tout sélectionner
>>>pointsurdroite(-1.88,0.1)
le point n'est pas sur la droite
C'est lié au fait que les nombre décimaux sont représentés par des valeurs approchés en machine :
Tu pourras en parler avec ton professeur.
Bonne continuation
Re: question
Posté : dim. 22 mai 2022 09:14
par pauline
Merci beaucoup !
en premier je dois tester si le point de coordonnés (10,10) appartient à la droite mais ca ne marche pas quand je fais...
def pointsurdroite(10,10):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
Pourquoi donc ?
Merci
Re: question
Posté : dim. 22 mai 2022 09:22
par sos-math(21)
Bonjour,
il faut que tu distingues les deux zones de ton environnement :
la
zone de script ou tu écris la définition de ta fonction avec le mot clé def :
Code : Tout sélectionner
def pointsurdroite(x,y):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
et la console où tu vas appeler ta fonction :
Il ne faut donc pas modifier la définition de ta fonction (on ne touche pas au script qui la définit), mais il faut l'appeler.
Bonne continuation
Re: question
Posté : dim. 22 mai 2022 09:25
par pauline
Merci, j'ai bien compris tout ca.
Mais du coup ou est ce que je rentre les coordonés ? là j'essaie sur trinket, et est ce que c'est pareil sur la calculette Numwork ?
Merci !!
Re: question
Posté : dim. 22 mai 2022 09:29
par sos-math(21)
Bonjour,
tu écris :
dans la zone à droite sur Trinket
Si cela n'est pas possible, tu demandes un affichage dans la zone de script :
Code : Tout sélectionner
def pointsurdroite(x,y):
if 5*x-6*y+10==0:
print("le point est sur la droite")
else :
print ("le point n'est pas sur la droite")
print(pointsurdroite(10,0)) # affichage pour avoir le résultat de l'appel de la fonction
Re: question
Posté : dim. 22 mai 2022 09:43
par pauline
merci j'ai réussi pour le 1er point dans la zone de script
par contre pour le deuxieme de coordonés (-53;-42.5)
ca ne marche pas... il faut faire une conversion ? Merci
Re: question
Posté : dim. 22 mai 2022 09:46
par sos-math(21)
Bonjour,
non pas la peine de faire une conversion mais il faut mettre des points pour les séparateurs décimaux et une virgule pour séparer \(x\) et \(y\) :
Bon calcul