Bonsoir a tous !
Alors que que vous explique mon problème :
Dans un de mes programmes j'utilise la fonction solve () sur une équation du second degrée qui doit me donner 1 résultat négatif et 1 positif.
j'aimerai pouvoir faire apparaitre dans une boite de dialogue les deux résultats puis seulement celui qui est positif.
merci pour votre aide
Nico
solve ((b+2*do)*(c+2*do)-(Rd/qd)>0,do)»do
dialog
text ""
text "do = "&string(do)&" mm"
enddlog
je sait que ce n'est pas bon mais c'est pour le principe.
>>>solve ((b+2*do)*(c+2*do)-(Rd/qd)>0,do)»do
ça va te donner une liste dans do. {x1,x2}
L'idée est donc de n'afficher que le résusltat kivabien :
text "do ="&string(when(do[ 1 ]>0,do[ 1 ],do[ 2 ],"eh merde..."))&" mm"
merci pour cette réponce, mais maintenant le programme me met " circular definition " et quand je fait GOTO il me renvoi au début de ma ligne " solve () "
problème ... que faire ...
rien ne change !!
quand je met mon solve (...) dans l'écran Home en remplacant les valeurs il me trouve bien " do<-... or do>+...
dans var-link, pas de variable do.
faudrai peu être que je modifi mon équation pour arriver à un truc du genre " do=...
(Mais la faut que je fasse des Math ^^)
Zeph Le 24/02/2009 à 21:30 l'erreur "circular definition" c'est parceque tu places ton résultat dans la même variable que celle qui te sert d'inconnue dans l'équation, essaie d'utiliser deux variables différentes.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Ok, mon problème recule. je sens que sa fin et proche. ^^
j'ai remplacer mon inconnue par x et le problème à changer.
Maintenant je n'arrive pas a lui faire resortir les valeurs.
solve ((b+2*x)*(c+2*x)-Vd/qd>0,x)»do
max(do)»do1
min(do)»do2
dialog
text ""
text "do ="&string(do2)&" et "&string(do1)&" mm"
enddlog
ereure
" Dimension "
Zeph Le 24/02/2009 à 22:16 si tu prends la peine de formuler une question (avec une formule de politesse ça serait encore mieux) et de donner les informations indispensables (comme la ligne à laquelle l'erreur est signalée), je pense que tu augmenteras considérablement tes chances d'avoir une réponse

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
ok pardon !
je reformule donc mon post :
Ok, mon problème recule. je sens que sa fin et proche. ^^
j'ai remplacer mon inconnue par x et le problème à changer.
Maintenant que je n'ai plus le message " circular definition",
je voudrai enregistrer les 2 valeurs de l'équation dans 2 variables.
j'ai essayé ce que j'ai mi ci-dessous mais il y a une erreure et je ne suis pas sur de la méthode.
solve ((b+2*x)*(c+2*x)-Vd/qd>0,x)»do
max(do)»do1
min(do)»do2
dialog
text ""
text "do ="&string(do2)&" et "&string(do1)&" mm" erreure dimension à ce niveau
enddlog
j'aimerai savoir si tout ça est bon ou sinon comment faire pour que ça le devienne.
merci par avance pour vos conseil.
Nico
Zeph Le 24/02/2009 à 23:22 C'est peut-être tout simplement que la chaine est trop longue et dépasse la largeur de l'écran. Essaie d'ajouter "pause string(do1)" et "pause string(do2)" avant ta boite de dialogue pour vérifier ce que tu tentes d'afficher.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
ah oui en effet il y à un problème dans mes variables.
dans les 2 variables il y à " x<-... or x>+... "
Alors que moi je voudrai separé ces deux valeurs " do1=-... " (première partie ) et " do2=+... " (deuxième partie)
Mais comment faire ?
merci
Nico
Zeph Le 25/02/2009 à 12:12 Il faudrait que tu découpes manuellement la chaine du résultat là où il y a des "or". Peut-être qu'il y a une fonction de recherche de sous-chaines dans une chaine de caractères en Ti-Basic (regarde la fonction "instring", je ne sais plus si elle fait ça et je n'ai pas de manuel sous la main), sinon il faudra que tu parcoures ta chaine à la main.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Voila j'ai réglé mon problème.
grâce à la fonction zeros () à la place de solve ()
zeros ((b+2*x)*(c+2*x)-Vd/qd,x)»do
max(do)»do1
min(do)»do2
dialog
text ""
text "do ="&string(do2)&" et "&string(do1)&" mm"
enddlog
merci pour votre aide précieuse.
Nico
Me semble que tu peux faire exp>list("x>1 or x<-5",x), ca retourne {1,-5} si j'ai bien suivi ^^
Zut, le remontage :'(