Page 1 sur 1

Où est le bug?

Publié : lun. 04/mai/2009 9:12
par meganet
Bonjour, j'ai fait ce petit soft pour vérifier mes résultats, mais je ne comprend pas avec une calculette ça marche, mais avec pb (4.30 Windows X86), ile me retourne 0 pour le x1 mais pour x2 il me retourne 1.
Pouvez-vous me dire où est la faute?

Code : Tout sélectionner

Procedure calcule(x)
resultat = 2*(x*x)+x*Sqr(3)-4
ProcedureReturn resultat
EndProcedure

MessageRequester("Resultat 1", "x1 = "+Str(calcule((-Sqr(3)+Sqr(35))/4))+"", #PB_MessageRequester_Ok)
MessageRequester("Resultat 2", "x2 = "+Str(calcule((-Sqr(3)-Sqr(35))/4))+"", #PB_MessageRequester_Ok)
End

Publié : lun. 04/mai/2009 9:31
par Backup
sans avoir testé, c'est OBLIGATOIREMENT un problème de parenthèses :)

ps : ou de typage de variable ou de retour de procedure!! :lol:

tu veux des resultats en virgule ou pas ??

n'oublie pas que str() c'est pas strf()
et que Resultat.f = Sqr(Nombre.f)
le resultat renvoyé est un FLOTTANT !!!!

qu'une variable "toto" est différente de "toto.f"

Publié : lun. 04/mai/2009 10:18
par Ollivier
Logiquement, ceci devrait t'éviter tout type d'erreur. Et qu'est-ce que tu fous à m@~chonner les caractħres avec accents? T'as pas honte?!?

Ollivier

Code : Tout sélectionner

Procedure.F calcule(x.F) 
Protected Resultat.F
resultat = 2.0 * (x * x) + x * Sqr(3.0) - 4.0 
ProcedureReturn resultat 
EndProcedure 

MessageRequester("Resultat 1", "x1 = "+Str(calcule((0.0 - Sqr(3.0) + Sqr(35.0) ) / 4.0) ) + "", #PB_MessageRequester_Ok) 
MessageRequester("Resultat 2", "x2 = " + Str(calcule((0.0 - Sqr(3.0) - Sqr(35.0) ) / 4.0) ) + "", #PB_MessageRequester_Ok) 
End

Merci!

Publié : mar. 05/mai/2009 11:49
par meganet
Merci, ça marche nikel!!!! Pour le coup de Sqr() qui renvois un float, j'avais pas fait gaf! Et pour les accents merci Firefox!!