y'avais déjà un topic la dessus ki était bien alors je le reprend...pour vous faire partager mon faire-savoir et le vôtre
nous avons déjà vu:
utilisation de if tout seul(pour une seule utilisation)
ex:if x=20:exit
les string pouvant devenir actifs:
"pause x">a
expr(a)
par contre,j'ai toujours pas compris celui là:
0>x
loop
x+1>x
if x=20
endloop
ca marche pas...
j'ai un nouveau
au lieu de
dialog
dropdown "choix",{"x","y"},c
endDlog
if a=1:goto a1
if a=2:goto a2
lbl a1
lbl a2
préférez celui là:
dialog
dropdown "choix",{"x","y"},c
endDlog
goto #("a"&string a)
lbl a1
lbl a2
si une commande vous semble incertaine et que vous voulez l'effacer,ne prenez pas le risque d'oublier la ligne de commande ou de tout retapez surtout si c'est long,mettez le signe du commentaire ki rendra la commande inactive
dans vos prog,ne faites pas lire à la ti des lignes de commandes inutiles pour certains calculs
la fonction cycle est là pour cela,regardez vos manuels
la fonction try:endtry est aussi utile,elle évite obligatoiremnet l'erreur ki provoque l'arret du prog
si vous avez encore d'otres astuces comme moi,faites les nous profiter ici
(j'en ai d'autres mais je ne m'en rapelle plus pour l'instant!)
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
natto Le 09/07/2001 à 18:13 par contre,j'ai toujours pas compris celui là:
0>x
loop
x+1>x
if x=20
endloop
ca marche pas
MAIS SI !!! en fait elle est mal faite ici, mais si x=20 la boucle se répérera, ça evite un label et un goto
là c mieux:
19>x
loop
x+1>x
...instructions.....
if x=20
endloop

納 豆パワー!
I becamed a natto!!!1!one!
natto Le 09/07/2001 à 18:13 je HAIS les for endfor, c lent et c nul....d'ailleurs je pense pas l'utiliser bcp ds mes prgm..

納 豆パワー!
I becamed a natto!!!1!one!
aze Le 09/07/2001 à 18:13 donc le + rapide pour les boucles, c les loop...
okok c bon a savoir
pour le goto #(...)
merci aussi
j'comprend pas j'avais deja essayé et ca marchais pas..
*edit*
euh je viens de tester avec timerzen la boucle avec loop (l'erreur est : "if x<20" et non x=20)
ben "for" c bien plus rapide... (900 contre 1500 pour 200 itérations)
[edit]Edité par azerty83 le 20-06-2001 à 19:06:54[/edit]
azerty>C koi timerzen?
tu le trouve ou?
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
merci,j'avais cherché sur ticalc mais il l'avait pas
bouh!
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
MAIS SI !!! en fait elle est mal faite ici, mais si x=20 la boucle se répérera, ça evite un label et un goto
là c mieux:
19>x
loop
x+1>x
...instructions.....
if x=20
endloop
euh...mettre exit ne serait pas plus simple?
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
C clair,j'ai toujours pas exactement compris comment il fonctionne alors maintant y voir un interet,C le comble de l'absurde!
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
Pour faire 20 itérations :
0>x
loop
x+1>x
if x=/=20
endloop
Il va ajouter un à chaque fois, si x est inférieur à 20, il va donc voir le endloop, et revenir au début du loop. A la 20eme itération, il ne verra pas le endloop, et continuera donc jusque tout en bas. Il ne trouvera pas de endloop, mais c trop tard pour faire une erreur car le prog est fini.

I'm on a boat motherfucker, don't you ever forget
natto Le 09/07/2001 à 18:13 c vrai que l'exemple n'a pas d'intéret...

納 豆パワー!
I becamed a natto!!!1!one!
Ben la c vrai que c pas tellement optimisé cet exemple, on aurait tout ausi bien pu faire 20->x

I'm on a boat motherfucker, don't you ever forget
aze Le 09/07/2001 à 18:13 surtout que
for x,0,20
endfor
est 1.5 fois plus rapide...
enfin pour quoi faire rapide... ?
natto Le 09/07/2001 à 18:13 je crois que tu as pas trop pigé, on peut utiliser loop et if x=0:endloop autremnt qu'avec un compteur.....reste a savoir si c plus rapide que while

納 豆パワー!
I becamed a natto!!!1!one!
dialog
dropdown "choix",{"x","y"},c
endDlog
if a=1:goto a1
if a=2:goto a2
lbl a1
lbl a2
préférez celui là:
dialog
dropdown "choix",{"x","y"},c
endDlog
goto #("a"&string(a))
lbl a1
lbl a2
La variable récupérant la valeur du dropdown, ce serait pas a plutot que c ?

I'm on a boat motherfucker, don't you ever forget
oxman Le 09/07/2001 à 18:13 mdr ué mais bon on as compris le principe
par conte si le truc du loop ca peut servir a autre chose que compter je veux une demo d'un truc valable
Les meilleures optimisations à faire, ce n'est pas tellement de remplacer un loop par un for, c'est de choisir des structures d'enregistrement de données le plus adaptées au prog que vous voulez réaliser (c'est à dire adaptées aux fonctionnalités que vous voulez créer).
Et là ça fait vraiement la défférence entre deux progs identiques extérieurement, mais dont les données sont implantées différemment.
aze Le 09/07/2001 à 18:13 et tu conseille quoi ?
je reviens sur le truc du : (prenons un prog a la con)
"delfold main"->a
expr(a)
bon c super lent comme truc...
si c pas pour executer une chaine entrée par l'utilisateur utiliser plutot
define a()=prgm
delfold main
endprgm
une fais le prog precompilé, ya plus de probleme de lenteur...
oxman Le 09/07/2001 à 18:13 bon je viens polluer ici
pck yAro ma injustement banni mon pseudo avec mes fleches.
delfold main>ca,C strictement impossible
main est un répertoire indestructible!!!
le truc avec l'expression sert à créer des boites de dialogue
par exemple un programme qui te demande de créer une barre d'outil avec le nombre de titre et de sous-titre
comprendo?
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
aze Le 09/07/2001 à 18:13 vivi ok, je ne l'avais pas envisagé de cette maniere...
moi je pensais que c'etait pour alleger le code...
euh apres cette string ya pas un moyen de la transformer en prog (genre Rcl mais depuis un prog)
si si,on peut
attend réflexion.............................
je l'avais déja fait....................
2 secondes.....................
brossage de dents...........................
cherche la ti-89..........................
bon,j'arrive plus
j'te donne la réponse plus tard
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
voila,trouvé!!!(enfin,car ca mnervait,G du cherché sur mon ordi)
en exemple,créer un programme à partir d'une boite de dialogue:
Prgm
dialog
title "création d'un programme"
request "nom du programme",x
enddlog
define #x()=Prgm:EndPrgm
EndPrgm
ou pour autre chose
define #(string(ceketuveu))()=Prgm:EndPrgm
voila!
(n'empeche,Cté un truc dur à trouver,j'y ai passé facilement 1/2 heure avec les indirections!)
La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
aze Le 09/07/2001 à 18:13 euh la je suis sceptique...
ton truc ne fait que creer un prog d'un nom contenu dans une string...
moi ce que je veux c (exemple) :
"prgm:disp ""kikoo les amis"":endprg"-> a
ensuite remplacer le expr(a)
par un prog cree qui contient
prog()
prgm
disp "kikoo les amis"
endprgm