Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 17166
Réponses : 58
Type : discussion
Etat : réponses autorisées

Easy F'(x) , la version finale de DERIVE - Page 1 / 2

Persalteas le 15/06/2011 à 15:41
vous vous souvenez peut être du programme de dérivation de fonctions que j'avais fait l'année dernière, eh bien le voilà définitivement bouclé, avec une belle présentation inutile, et plus aucun bug.


il peut dériver presque toutes les fonctions de base, avec un facteur, ainsi que certaines fonctions composées avec les ln, les exponentielles et les fractions.

Tout est expliqué dans le joli mode d'emploi que je me suis em***** à programmer et qui fait que le seul désavantage du prog est sa taille: 3.7 Ko.

si vous souhaitez copier le code car vous n'avez pas le cable:

si vous souhaitez le télécharger, c'est possible: c'est un *.8xp, mais si vous le renommez en *.83p, vous pourrez l'envoyer sur les 82 stats (fr). Pas les 82 basiques.

http://www.mediafire.com/file/[...]1og4/EASYFX.8xp

Rappel : les minuscules sont dans le menu var>stat excepté "e" qui est l'exponentielle de la touche "diviser" et "i" qui est l'immaginaire de la touche ".". les y et x minuscules ont une barre dessus, c'est pas plus moche.
#rac sert à ce que vous voyez bien que c'est la fonction racine et pas du texte.


Code

:FnOff
:AxesOff
:0->Xmin:94->Xmax
:0->Ymin:62->Ymax
:Lbl 0
:ClrDraw
:Horizontal 60
:Horizontal 59
:For(A,1,12
:For(B,0,1
:Text(4,10+5A+B,sub("easy F'(x) !",A,1
:End:End
:Horizontal 51
:Horizontal 50
:30->A
:{28,47,73->L1
:Line(15,30,88,30
:Line(15,30,15,33
:Text(25,17,"deriver une FOnctiOn
:Text(35,17,"MOde d'eMp1Oi
:Text(45,17,"credits
:Repeat K=105 or K=45
:getKey->K
:If K=25 or K=34:Then
:Line(15,A,15+L1(A.1),A,0
:Line(15,A,15,A+3,0
:A+10(K=25)-10(K=34->A
:If not(A:30->A
:If A=40:10->A
:Line(15,A,15+L1(A.1),A
:Line(15,A,15,A+3
:End
:End
:If K=45:Goto Q

:If A=10:Then
:ClrDraw
:Horizontal 60
:Horizontal 59
:Horizontal 51
:Horizontal 50
:"credits
:For(A,1,7
:For(B,0,1
:Text(4,21+5A+B,sub(Ans,A,1
:End:End
:Text(25,23,"(C)   cOpyriGHt
:Text(32,28,"persa1teas
:Text(39,38,"2010.
:Text(13,47,"easy F'(x) v 2.0
:Text(46,5,"rea1ise pOur Espace-TI
:Text(54,6,"cOncOurs de nOv. 2010.
:Repeat getKey
:End:End

:If A=20:Then
:ClrDraw
:Horizontal 60
:Horizontal 59
:Horizontal 50
:Horizontal 51
:"CONSIGNES
:For(A,1,9
:For(B,0,1
:Text(4,5A+B+15,sub(Ans,A,1
:End:End
:Text(13,0,"-REFERMEZ LES PARENTHESES
:Text(19,0,"-PAS DE FORMES FACTORISEES
:Text(25,0,"-PAS PARENTHESES INUTILES
:Text(31,0,"-PAS DE FONCTION COMPLEXE
:Text(37,0,"-5 TERMES PAR FONCTION MAX.
:Text(43,0,"-CHAQUE TERME PEUT ETRE UN
:Text(49,0,"PRODUIT SIMPLE:
:Text(55,0,"2X²,-cos(X),(3+2)#rac((X),5/X...
:Pause
:For(A,49,0,-1
:Line(0,A,94,A,0
:End
:Text(13,0,"LES PUISSANCES SONT
:Text(20,0,"COMPRISES EN DENOMINATEUR
:Text(27,0,"DE FRACTION ET DANS LES
:Text(34,0,"LOGARITHMES NEPERIENS.
:Text(45,0,"-1/(X^6),ln(X³),-ln(X^8)
:Text(52,0,"2X^7,X³,-X²...
:Pause
:For(A,49,0,-1
:Line(0,A,94,A,0
:End
:Text(13,0,"EXPONENTIELLES: FONCTIONS
:Text(20,0,"COMPOSEES AUTORISEES MAIS:
:Text(27,0,"REMPLACEZ LES + ET - PAR
:Text(34,0,"DES VIRGULES:
:Text(40,0,"3X²-2X+2e^(6X+2) DEVIENT:
:Text(50,10,"3X²-2X+2e^(6X,2)
:Pause
:For(A,49,0,-1
:Line(0,A,94,A,0
:End
:Text(13,0,"LES CHOSES INCOMPRISES:
:Text(25,0,"- LES RACINES CUBIQUES ET +
:Text(32,0,"- LES TANGENTES
:Text(39,0,"- LES LOGARITHMES DECIMAUX
:Text(46,0,"- LES FACTORIELLES ET
:Text(52,0,"AUTRES FONCTIONS COMPLEXES.
:Pause
:ClrDraw
:End

:If A<30:Goto 0
:ClrDraw:ZStandard:AxesOn
:ClrHome
:Input "F(X)=",Str0
:Output(8,1,"derivatiOn...
:If not(inString(Str0,"X":Then
:ClrHome
:Disp "F'(X)=","  0
:Output(8,1,"
:Goto Q
:End
:0->N:0->K:0->M
:"0->Str1
:"0->Str2
:"0->Str3
:"0->Str4
:"0->Str5
:Repeat K=9
:sub(Str0,1,1->Str9
:If not(Str9="1" or Str9="2" or Str9="3" or Str9="4" or Str9="5" or Str9="6" or Str9="7" or Str9="8" or Str9="0":Then
:If Str9=/="-":"1"+Str0->Str0
:If Str9="-":Then
:sub(Str0,2,1->Str9
:If not(Str9="1" or Str9="2" or Str9="3" or Str9="4" or Str9="5" or Str9="6" or Str9="7" or Str9="8" or Str9="9"
:"-1"+sub(Str0,2,length(Str0)-1->Str0
:End
:End
:If M:"-"+Str0->Str0
:inString(Str0,"+"->A
:inString(Str0,"-"->B
:If (B<A and B and A) or (B and not(A:Then
:B->A:1->M
:Else
:0->M
:End
:If A:Then
:N+1->N
:sub(Str0,1,A-1->Str9
:If N=1:Str9->Str1
:If N=2:Str9->Str2
:If N=3:Str9->Str3
:If N=4:Str9->Str4
:sub(Str0,A+1,length(Str0)-A->Str0
:sub(Str0,1,1->Str9
:Else
:9->K
:Str0->Str5
:End
:End
:0->L1(1
:0->L2(1
:0->L3(1
:0->L4(1
:0->L5(1
:0->L6(1
:0->M:0->R
:For(K,1,5
:If K=1:Str1->Str9
:If K=2:Str2->Str9
:If K=3:Str3->Str9
:If K=4:Str4->Str9
:If K=5:Str5->Str9
:
:
:16->M:0->A
:inString(Str9,"e^("->A
:If not(A:Then
:M-1->M
:max(inString(Str9,"ln(X²"),inString(Str9,"ln(X^2"->A
:End
:If not(A:Then
:M-1->M
:max(inString(Str9,"ln(X³"),inString(Str9,"ln(X^3"->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"ln(X^->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"ln(X->A
:End
:If not(A:Then
:M-1->M
:max(inString(Str9,"/(X^"),inString(Str9,"/X^->A
:End
:If not(A:Then
:M-1->M
:max(inString(Str9,"/(X³"),inString(Str9,"/X³->A
:End
:If not(A:Then
:M-1->M
:max(inString(Str9,"/(X²"),inString(Str9,"/X²->A
:End
:If not(A:Then
:M-1->M
:max(inString(Str9,"X-1"),inString(Str9,"/X->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"#rac((X)->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"cos(X)->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"sin(X)->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"X²->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"X³->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"X^->A
:End
:If not(A:Then
:M-1->M
:inString(Str9,"X->A
:End
:If not(A:M-1->M
:If M:expr(sub(Str9,1,A-1->L1(1
:If M=12:"/X->Str9
:If M=15:2L1(1->L1(1
:If M=16:Then
:inString(Str9,"X
:If Ans:Then
:expr(sub(Str9,A+1,Ans-A-1->N
:NL1(1->L1(1
:sub(Str9,A,length(Str9)-A+1->Str9
:Else
:0->L1(1:" "->Str9:End:End
:If M=14:3L1(1->L1(1
:If M=13:Then
:sub(Str9,4,length(Str9)-4->N
:NL1(1->L1(1
:End
:If M<16 and M>12:"ln(X)->Str9
:If M=11:Then
:expr(sub(Str9,A+3+(inString(Str9,"/(X")>0),1->N
:-NL1(1->L1(1
:N+1->L1(2
:End
:If M=10 or M=11:"/(X^->Str9
:If M=10:Then
:-3L1(1->L1(1
:4->L1(2
:End
:If M=9:Then
:-2L1(1->L1(1
:"/(X³)->Str9
:End
:If M=8:"/(X²)->Str9
:If M=8 or M=6:-L1(1->L1(1
:If M=7:"/(2#rac((X))->Str9
:If M=6:"sin(X)->Str9
:If M=5:"cos(X)->Str9
:If M=4:Then
:2L1(1->L1(1
:"X->Str9
:End
:If M=3:Then
:3L1(1->L1(1
:"X²->Str9
:End
:If M=2:Then
:expr(sub(Str9,A+2,1->N
:NL1(1->L1(1
:N-1->L1(2
:"X^->Str9
:If N=4:"X³->Str9
:If N=3:"X²->Str9
:If N=2:"X->Str9
:End
:If M=1:" ->Str9
:If M:Then
:R+1->R
:If R=1:Then
:L1->L2
:Str9->Str1:End
:If R=2:Then
:L1->L3
:Str9->Str2:End
:If R=3:Then
:Str9->Str3:L1->L4
:End
:If R=4:Then
:L1->L5
:Str9->Str4:End
:If R=5:Then
:L1->L6
:Str9->Str5:End
:End
:End
:ClrHome
:R->C
:Disp "F'(X)=
:If not(C:Disp "AUCUNE IDEE
:For(R,1,C
:If R=1:Then
:L2->L1:Str1->Str9
:End
:If R=2:Then
:L3->L1:Str2->Str9
:End
:If R=3:Then
:L4->L1:Str3->Str9
:End
:If R=4:Then
:L5->L1:Str4->Str9
:End
:If R=5:Then
:L6->L1:Str5->Str9
:End
:If R>1 and 0<=L1(1:Output(R+1,1,"+
:If 0>L1(1:Output(R+1,1,"-
:If Str9=" " or inString(Str9,"/") or 1=/=abs(L1(1
:Output(R+1,2,abs(L1(1
:Output(R+1,4,Str9
:If inString(Str9,"X^":Output(R+1,6+2(Str9="/(X^"),L1(2
:End
:Output(8,1,"             
:Lbl Q
:DelVar Str1DelVar Str2DelVar Str3DelVar Str4DelVar Str5DelVar Str0DelVar Str9
:ClrAllLists
linkakro le 15/06/2011 à 16:58
C'est génial ! bigmouth.gif


Pour le mode d'emploi, c'eût été plus simple de joindre un txt au programme dans un zip.
Voir même en deux programmes, dont un facultatif.

Attention aux caractères qui ne passent pas depuis Ti-éditor. (en particulier ceux qui se transforment en balises).
Sangohan38 le 15/06/2011 à 20:13
Aller hop, tu me reposte ce sujet mais en faisant attention à ne pas modifier la fenêtre.
Tu as 3 jours avant que je ne le supprime!

Sangohan38
sandro le 15/06/2011 à 21:09
Un petit problème, comment veut tu utiliser le même signe pour + et pour - dans les expendantiels.

Sandro

PS1 : pourrais-tu mettre une version avec les carractères lisibles pour que l'on puisse trouver de potentielles optimisations

PS2 : Noublie pas le message de Sango (n'ai pas peur, il m'a fait la même chose il y a 2-3 jours)
Persalteas le 16/06/2011 à 09:16
modifier la fenêtre ? quelle fenêtre? tu veux dire en version lisible ?

Bon, je pensais que ça passerait, le copier coller dans Ti editor...

Bon, si tu veux.

Alors, je t'explique pour le + et -:

en fait, il ne faut pas écrire ces signes sinon le programme interprète ça comme un nouveau terme.

étant donné que le signe ne change pas dans la dérivée d'une exponentielle, si tu avais écrit un +, la virgule que le prog affiche à la fin est un +, si tu avais écrit un -, c'est un -.

BON, QUE CEUX QUI ONT LE COURAGE DE RECOPIER LE FASSENT EN MOINS DE 3 JOURS, APR7S JE SUPPRIMERAI LE CODE.
(et je laisserai le lien de téléchargement. Il faudra télécharger sur son disque, re-uploader sur Ti editor, et recopier.)
sandro le 16/06/2011 à 10:28
Lâche maxiangry.gif maxiangry.gif
T'a qu'à créeer un nouveau topic du même nom que celui-ci, tu fait un copier-coller de ton texte (attention, il faut refaire le lien), tu remmet une balise code et tu y copie le texte depuis ton éditeur, tu fais entrer quand les lignes sont trop longues, tu met les autres messages de la page en sitation en bas du tien pour pas qu'ils sse perdent (même si Sango risque de supprimer le sien comme chez moi), tu prévisualise, si ça passe c'est bon, sinon tu fait entrer là où c'est trop long.

Sandro maxiangry.gif maxiangry.gif
linkakro le 16/06/2011 à 15:51
Ne te pose pas de problème insurmontable, il faut juste utiliser Ctrl+H frénétiquement.
Voici une version épurée des balises et cie. J'ai même isolé les deux parties qui ne servent qu'à la notice et aux crédits.
Après, tu n'as plus qu'à éditer ton message avec ce code puis j'effacerai le mien.
(Edit : j'avais oublié que tu étais modérateur ^^")

Je ne vois pas où est le problème de la fenêtre : le sujet est propre chez moi.

Rappel : les minuscules sont dans le menu var>stat excepté "e" qui est l'exponentielle de la touche "diviser" et "i" qui est l'immaginaire de la touche "."
#rac sert à ce que vous voyez bien que c'est la fonction racine et pas du texte.


Code


ici linkakro a recopié toouuuuut le code, avec seulemnt une seule faute !
félicitations et merci!

j'ai recopié ce code en haut.
Persalteas le 16/06/2011 à 20:44
linkakro tu es un amour. Merci beaucoup. goutte.gif
linkakro le 16/06/2011 à 21:56
Il reste encore deux caractères spéciaux.
Près du Repeat K=9 :
If Str9&#8800;"-" // inférieur ou égal <=
Vers la fin :
0&#8804;L1(1 // différent =/=
Persalteas le 18/06/2011 à 09:27
ah oui je n'avais vu que le différent... merci.

par contre je crois plutôt que c'est un égal, le deuxième, ça voudrait dire quoi Str9<="-" ?
linkakro le 18/06/2011 à 15:10
J'ai tout mélangé :
&#8800; est le symbole "différent".
&#8804; est le symbole "inférieur ou égal".
Tandis que le symbole "égal" ne cause pas d'erreur.

On avait donc
Str9=/="-"
0<=L1(1

Voilà, falait comparer avec le programme sous émulateur ou fouiner dans ti-editor.
Cocodidou le 18/06/2011 à 20:27
Excellent!!
Celui-là, je le mets dans un coffre fort en attendant le bac l'année prochaine! Malheureusement, la machine n'est pas autorisée au bac de français....
sandro le 18/06/2011 à 20:41
Non, mais pour l'oral, il faut vraiment s'y connaitre pour trouver que c'est interdit, il à falut plus d'une demie heure au CPE du lycée pour trouver dans le décret (environt 2 pages) que c'est interdit (et encore, il c'est fait aider par un autre prof). Au final c'était car c'est l'examinnateur qui crée le sujet de l'oral donc c'est lui qui décide (après tu peu toujours lui demander mais bon, sans billet je ne croie pas qu'il accèpte LOL).
Sandro
Persalteas le 20/06/2011 à 13:55
Bien enregistré, linkakro. Merci.

pour le bac de français, c'est pas le meilleur moyen de te faire aimer du prof.
Tigre-obscure le 26/06/2011 à 00:38
Bon désolé de remonté ce TOPIC, mais c'est pour comprendre une touche car je ne la trouve pas, cette touche est "#rac((" je n'arrrive vraiment pas à la trouvé.
Merci de m'aide happy.gif, J'espère vous me direr pas qu'il n'existe pas cry.gif

Tigre =)

PS : j'ai une Texte Instrument 82 stats.fr donc aidez moi sur cette calculatrice
linkakro le 26/06/2011 à 01:38
Il y a pire comme remontage de topic.
Néanmoins tu as manqué 2 exemplaires de l'information. notgood.gif
#rac est une notation que j'ai immaginée pour exprimer le symbole racine carrée sans que vous le confondiez avec l'agencement des trois lettres R,A,C.
( Maintenant cela fait 3 exemplaires. cupsmiley.gif )
Tigre-obscure le 26/06/2011 à 02:03
Merci mais j'ai un autre problème ^^ c'est à la ligne
Code
Texte(4,10+5A+B,sub("esay F'(X) !",A,1


Il n'y aurais pas un problème? car moi il met erreur Dim invalide sur cette ligne.

Tigre =)
Persalteas le 26/06/2011 à 20:14
Ah tiens ?

On me l'a jamis fait ce bug là... Dans l'affichage du titre...

Ben écoute, je crois pas, si ce n'est que ça, supprime l'affichage du titre.
Tigre-obscure le 26/06/2011 à 21:00
Code
:If M:expr(sub(Str9,1,A-1->L1(1

Sur le "sto->" erreur domaine notgood.gif
Je n'arrive pas à le réglé

Tigre =)
Tigre-obscure le 26/06/2011 à 22:39
Je n'ai pas mal recopié car j'ai vérifié plusieurs fois (5fois), donc me dites pas ça s'il vous plaît cry.gif. Je comprend pas pourquoi
Aidez moi


et ici erreur syntaxe :
Code
:If Str9=/="-":"1"+Str0->Str0

Ici le curseur est là "/"
:If Str9=/="-":"1"+Str0->Str0

Tigre =)
linkakro le 27/06/2011 à 00:55
Le expr est-il sur la même ligne que le If ?
S'il y a erreur sur la variable A, alors l'erreur vient sûrement d'une ligne antérieure. Dis nous les valeurs des variables après le plantage.

L'erreur syntaxe, c'est parce que tu n'as pas utilisé le égal barré du menu test. "=/=" = "différent de"
Persalteas le 27/06/2011 à 08:00
Le problème , c'est que la variable A dépend elle de la longueur du terme, et donc de la fonction que tu as rentrée...

Tu avais mis quoi comme fonction, que j'essaie aussi ?

Et oui, le expr doit normalement être sur la même ligne que le If.

A vue d'oeil je crois que c'est la ligne qui identifie le facteur devant une fonction simple (3x²,-cos(crazy.gif etc...)

2e possibilité: L'erreur n'est pas sur cette ligne mais sur une des lignes du début, à l'endroit ou le programme transforme les "-cos(crazy.gif" en "-1cos(crazy.gif" et les "x²" en "1x²"... Si il y a une erreur ici, il se peut que ce soit le facteur qui n'existe pas.

Conclusion: donne moi ta fonction et la Str9 àprès l'erreur. Donne toujours le A.
Tigre-obscure le 27/06/2011 à 14:03
La fonction est "X" ou "1/X" ^^ -> "1" ou "-1/X²" Normalement c'est ça la dérivé

Tigre =)
Tigre-obscure le 28/06/2011 à 01:32
Mais j'ai toujours le problème dans cette ligne avec n'importe quel fonction
Une erreur de domaine

Tigre =)
Persalteas le 28/06/2011 à 08:55
Donne moi la valeur de Str9 à l'erreur stp. (chaine9 en français)
Tigre-obscure le 28/06/2011 à 21:17
Comment ça chaine 9? Elle se trouve où? Je comprend pas crazy.gif

Tigre =)
linkakro le 28/06/2011 à 21:57
C'est la neuvième chaîne de caractères.
Les chaînes sont dans le menu var>chaîne
En anglais, c'est "Str" comme "string"
Si tu n'as pas utilisé de chaîne de caractère avant dans le programme, commence par corriger ça.

Et tu ne nous as toujours pas indiqué le contenu de chaque variable lors du plantage. Dis les nous, surtout la Chaîne9.
Tigre-obscure le 28/06/2011 à 23:15
Non mais cela, je sais. Je voudrai savoir comment voir les variables de la Chaîne 9 :x. On doit allé dans quoi? pour voir les Chaînes.

Tigre =)

PS : je suis vraiment désolé de rien savoir happy.gif
linkakro le 28/06/2011 à 23:22
Tu écris Chaîne9 dans l'écran de calcul puis tu appuies sur "entrer" comme pour TOUTES les variables.
La Chaîne9 est une variable en elle-même.
Tigre-obscure le 29/06/2011 à 02:16
Ha! mais oui Rhoo chui bête lol
Bon voila la variable. Merci j'avais complètement zappé
Chaine 9 = 0

Tigre
Persalteas le 29/06/2011 à 08:23
Ah. Bah oui, alors, tu m'étonnes que ça plante.

Tu devrais avoir un truc genre "1/x" ou "1x".

Après le repeat K=9, tu as bien écrit:

sub(Str0,1,1->Str9 et non pas sub(Str1 ou Str2... ,1,1->Str9 ?


Tu as le cable Ti-PC, tigre, ou pas ? (question idiote mais on sait jamais...)
Tigre-obscure le 29/06/2011 à 12:30
J'ai bien mis ce que tu as mis et bien mis les Chaînes mais il a toujours le problème

Non, je n'ai pas de câble et c'est super énervant !!! car je passe 5h devant l'ordi pour recopier c'est choses cry.gif. J'essaie de m'en procuré un, je cherche partout mais personne vend en main-propre.

~~~~~~~~~~~~~~~~

La ligne d'après c'est If not(Str9="1" ou Str9="2" etc...ou Str9="0":then
Le problème est toujours le même à la ligne
Code
If M:expr(sub(Str9,1,A-1->L1(1

Sur le sto ->

Tigre =)
Tigre-obscure le 29/06/2011 à 14:09
Bon bah maintenant que j'ai tous revérifie et corrigé, il me met F'(crazy.gif=Aucune idée. C'est normal pour X,X²,1/X et 1/X²? :x Vraiment il y a un problème cry.gif
J'y suis presque bigmouth.gif
Chaîne 9 = Err: Indéfinie :x

Tigre =)
linkakro le 29/06/2011 à 15:44
"erreur indéfinie" se produit quand on appelle une variable vide. Str9 a été effacée par le programme après le message "AUCUNE IDEE".
Place un Stop juste après le Disp du message puis dis nous chaque chaîne valide. (et avant les DelVar)
Tigre-obscure le 29/06/2011 à 15:56
Je place Le Stop après le Disp"AUCUNE IDEE mais le problème est la même. Je ne comprend pas le Delvar ou il est?
Le Str9 Je dois le remettre ou juste mettre un Stop?

Tigre =)

PS : je suis nul, je comprend rien. cry.gif
linkakro le 29/06/2011 à 16:04
Quand la calculatrice t'annonce "AUCUNE IDEE", elle efface les variables.
(La myriade de DelVar à la fin efface toutes les variables.)

=> Tu dois donc empêcher la calculatrice d'effacer les variables, afin que tu puisses nous communiquer le contenu de ces variables lors du message "AUCUNE IDEE".

=> La solution que je propose est de placer un Stop juste après le Disp.
Il faut le placer avant les DelVar et les Str1->Str9.

----
D'autre part, verrifie ce qui concerne la variable C.
Tigre-obscure le 29/06/2011 à 16:29
Je n'arrive pas à trouvé l'endroit exacte pour le Stop cry.gif il y a toujours
F(X)=AUCUNE IDEE
------------- Fait

Tigre =)
linkakro le 29/06/2011 à 16:44
C'est normal. J'ai dit que tu pourrais lire Str9 en mettant Stop après le Disp dans le code.
Mais je n'ai pas dis que cela résolverai les bug.

Démarche :
-Tu mets le Stop après le Disp
-Tu lances le programme et attends l'arrêt
-Tu affiches Str9 à l'écran et éventuellement d'autres variables
-Tu nous dis ce que tu as lu dans les variables
sandro le 29/06/2011 à 22:43
C'est que le contenue de Str9 pourra peut-être révéler la racine de l'erreur.

sandro
Persalteas le 30/06/2011 à 11:25
Je persiste a croire que l'erreur vient du début:

Le prog affiche "Aucune idée" s'il ne détecte pas de X dans ta fonction. Or tu en as mis (X², 1/X et tout...)

Il y a donc une erreur dans le début, au moment de décomposer la chaine de départ.

Code
:Input "F(X)=",Str0


tu as bien mis Str0 et pas Str9 à cette ligne ?

J'ai l'impression qu'il y a des mélanges entre la chaine 9 et la chaine 0...
Tigre-obscure le 30/06/2011 à 13:28
J'ai bien mis je vrai vérifié tous pour voir si j'ai pas oublie un truc
linnkakro je vais essayé ta manip et on va voir ce que ça donne ;p

Tigre =)
Tigre-obscure le 30/06/2011 à 13:42
Chaîne 0 = 5X (ce que j'ai mis pour F( crazy.gif=)
Chaîne 1 = 0
Chaîne 2 = 0
Chaîne 3 = 0
Chaîne 4 = 0
Chaîne 5 = 5X (pareil ou Chaîne 0
Chaîne 6 = Err : Indéfinie
Chaîne 7 = " " " "(c'est pareil que Chaîne 6)
Chaîne 8 = " " " "
Chaîne 9 = 0
A = 0, B = 0, C = 0, D = 0, E = 0, F = 1, G = 40, H = 1, I = 2, J = 0, K = 1, L = 10^9, M = 0, N = 0, O = 0, P = 0, Q = 9, R = 0, S = 7, T = 2, U = 59, V = 9, W = 0, X = 0, Y = 0, Z = 2, [tetha] = 1

J'ai mis presque toutes les variables mais voila ^^ maintenant je sais pas où est le problème :x

Tigre =)
Persalteas le 30/06/2011 à 20:52
Je vais étudier ça de près ce soir.

Demain je te réponds.
tu n'as pas oublié le not( ici:
Code
:If not(inString(Str0,"X":Then


EDIT: M=0 ! ç'est ça qui ne vas pas... ça veut dire que le X n'est pas détecté.


suite a une réflexion intense, je remarque que les deux lignes d'où peut provenir l'erreur sont les deux où le prog recherche X.

La deuxième est dans la deuxième moitié, avant ton ereur:
Code
:inString(Str9,"X->A


question: tu utilises quoi comme caracère de X ? bien celui de la touche [X,t,@,n] ?
Tigre-obscure le 30/06/2011 à 23:14
persalteas a écrit :

tu n'as pas oublié le not( ici:
Code
:If not(inString(Str0,"X":Then

Je l'ai bien mis bigmouth.gif
persalteas a écrit :

EDIT: M=0 ! ç'est ça qui ne vas pas... ça veut dire que le X n'est pas détecté.


suite a une réflexion intense, je remarque que les deux lignes d'où peut provenir l'erreur sont les deux où le prog recherche X.

Ils sont où exactement ^^" ces deux ligne :x
persalteas a écrit :

La deuxième est dans la deuxième moitié, avant ton ereur:
Code
:inString(Str9,"X->A


Pas très bien compris
persalteas a écrit :
question: tu utilises quoi comme caracère de X ? bien celui de la touche [X,t,@,n] ?

Oui, j'utilise bien cette touche

Tigre =)

PS : Désolé de vous embêtez avec le programme
Persalteas le 01/07/2011 à 08:22
Effectivement, erreur de cohérence dans ma démarche de raisonement; ça ne peut pas être la première ligne.

Il reste la deuxième:
Code

:inString(Str9,"X->A


pas d'erreur à celle là, donc ? (instring(, c'est carchaine( en français).

le programme se passe comme si il ne détectait pas le X dans ta fonction à la fin, alors qu'il l'a détecté au début. d'où le "aucune idée".

Mais au fait, si tu en arrives là, c'est que tu n'as plus d'erreur à la ligne:

Code
:If M:expr(sub(Str9,1,A-1->L1(1


sinon, le prog fait l'erreur AVANT d'arriver à l'affichage de "aucune idée" !

PS: t'inquiète pas, j'adore quand mes programmes marchent pas, ça me fait penser à eux plus longtemps. le pb, c'est que là t'es le seul.
Tigre-obscure le 01/07/2011 à 11:17
Non il n'y a pas d'erreur j'ai pris ton catalogue de TI pour faire ce programme donc je pense pas avoir d'erreur la

persalteas a écrit :
Mais au fait, si tu en arrives là, c'est que tu n'as plus d'erreur à la ligne:


Code
:If M:expr(sub(Str9,1,A-1->L1(1



sinon, le prog fait l'erreur AVANT d'arriver à l'affichage de "aucune idée" !

Non je n'ai plus de problème car j'ai tous vérifié et il y avait des erreurs mais là j'en trouve une autre sauf que je sais pas où elle se situe :x

Au fait dans les carChaîne(Chaîne9,"X->A, carChaîne(Chaîne9, "X^->A. Les guillemets servent à quoi?
Les In( aussi, je voudrais savoir à cette ligne :
Code
:max(inString(Str9,"X-1"),inString(Str9,"/X->A

Pourquoi c'est X-1 et pas X


Tigre =)

PS : Merci, oui ça doit être ma calculette notgood.gif
Tigre-obscure le 01/07/2011 à 11:52
Plus la peine de cherché !!!!! J'ai trouvé les erreurs j'avais confondu les CtrlDraw par des CtrlHome cry.gif et donc ça ma tous chanboulé
Il marche super bien bigmouth.gif même le texte marche maintenant =)
J'ai dû tous vérifié au moin 5 fois donc voila :p

Tigre =)

PS : Vraiment merci pour votre aide ^^
Persalteas le 01/07/2011 à 13:01
HOURRRAAAAHHHHHHHHHHH!!! Victoire !!!
Hiroshima!! Alleluia !! YIPEEEEEEEEEEEEEEEEEEEEEEEEEE !!!

Mon programme fonctionne. bigmouth.gif bigmouth.gif bigmouth.gif

maxiangry.gif maxiangry.gif t'aurais pas pu te rendre compte de ça PLUS TOT ? maxiangry.gif maxiangry.gif
sandro le 01/07/2011 à 13:12
crazy.gif ça change quoi que tu les ait mélangé les ClrDraw et les ClrHome? En quoi ça modifie le résultat?

Sandro crazy.gif
linkakro le 01/07/2011 à 13:17
Moi non plus je ne vois pas le rapport entre les bugs et les effacements d'écran. ahh.gif

Mais ça fait du bien quand ça s'arrête. happy.gif