1

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.

2

>>>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"
avatar
<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

3

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 ...

4

essaye de lancer la ligne du solve(...) dans l'écran home pour voir. Si ça continue, efface do dans le var-link et réessaye ; tiens-nous au jus. smile
avatar
<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

5

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 ^^)

6

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.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

Ah bien vu, ça fait longtemps que j'ai plus fait de basic moi triso
avatar
<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

8

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 "

9

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
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

10

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

11

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.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

Effectivement, l'erreur (*) est sans doute que la chaîne à afficher est trop longue.

(*) et non pas "erreure" - le mot "erreur" a bien être féminin, ça ne change pas que "erreure" est une erreur wink
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

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

14

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.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

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

16

T'as les fonctions left, mid() et right() pour travailler sur les chaines. Mais regarde part() pour les expressions, c'est une fonctions particulièrement puissante. smile
avatar
<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

17

C'est n'importe quoi le bidouillage sur les chaînes de caractères pour séparer les racines. roll
Il a déjà trouvé la bonne solution: zeros.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

18

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 :'(