Comment les faire interagir, g un prog avec des variables locales et des sous programmes loacaux et la seule solution que j'ai trouvé et de rendre les variables que les sous programmes manipulent globales, il ya til une autre solution ? en clair: Pgrm local sprog local x local y define sprog(touche)=PGRM if touche=... then x+3->x endif endpgrm loop getkey()->touche if touche>300 then sprog(touche) endif enloop ca me donne "Circular Definition" |
déjà tu mets local sprog,x,y ensuite ton x n'est défini nulle part alors forcément... La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
Mais non c pas ca tu fais un loop qu'a pas de sortie... Il faut avoir un break qque part dans ta boucle |
mais non pt1 |
>Moumou: Il faut avoir un break qque part dans ta boucle Ça s'appelle Exit, pas Break sur TI-89/92+! |
Bah tu les passe en argument |
excusez pour l'optimisation: Pgrm local sprog,x,y define sprog(touche)=PGRM if touche=... x+3->x endpgrm loop getkey()->touche if touche>300 sprog(touche) enloop désolé,à part ca,G plus le tps,jte repond + tar pour ton "pb" La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
|
pas d'autre moyen que de les passer en argument... c'est très chiant d'ailleurs La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
moai, mais si tu le passe en argument, ca ne change pas la variable dans le prgm principale, donc le mieu c'est : Pgrm local sprog,x,y define sprog(touche)=FUNC if touche=... x+3->x return x endfunc loop getkey()->touche if touche>300 sprog(touche)->x endloop |
ouais mais avec des func il peut y avoir des fonctions inutilisables style sortA, tous les I/O... Donc, au pire, tu crée une variable globale, par exemple une liste, par laquelle tu fais transiter des autres variables, locales celles-ci, puis tu la détruit avant de quitter. C'est ce que je fais d'habitude. Après, chacun ses goûts La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
Ouh la la... J'ai ce problème tout le temps et je vois que 2 solutions : - La première, que j'utilise, c'est passer en argument - La deuxième c'est les fonctions, mais ça réagit pas comme il faut parfois alors... Enfin c toi qui vois P.S : En général mas progs créent des tonnes de variables qui sont toutes effacées quand on quitte. Le seul problème c'est quand l'utilisateur Break le prog mais bon ça c'est son problème [edit]Edité par Bob 64 le 03-07-2001 à 02:49:31[/edit] |
On est d'accords La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
bon ben alors je prends la 1ere ... tant pis |
c'est + simple comme ça, tu vas voir tu vas t'y faire |
encore une astuce d'optimsisation: si vous avez 36 variables inutiles,ne mettez qu'une lettre et apres newprob et zou,tout à la poubelle La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
|
et enleve le loop while y=/264 0->y while y=o getkey->y endwhile endwhile C bcp plus rapide La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
|
JE REPETE POUR LA Xieme FOIS CE NEST QUN EXTRAIT DU PROG CE NEST PAS LE VRAI PROGRAMME |
eheh I becamed a natto!!!1!one! |
calmos La fin de la TI-89 approche pour ouvrir un nouvel aire:la GBA!!!
|
c pas de ta faute c juste que ... enfin bon ... c pas de ta faute quoi ... Bouhhhh personne ne me répond ce que je veut comme réponse à ma question |
attends j'ai une idée : LE PROGRAMME QUE YODA A MONTRE EN HAUT DE LA PAGE N'EST PAS SON VRAI PROGRAMME, IL EST DONC TOTALEMENT INUTILE DE VOULOIR L'OPTIMISER ! |
OK mais ça marche mainrenant ou pas? La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
Vi ça marche mais c'est pas génial de laisser des variables non locales qui traînent pour les supprimer à la fin... Bob 64>> merçi |
c clair mais bon... La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
De rien Yoda Pour les variables qui restent, c vrai que c chiant mais ya pas d'autre moyen malheureusement. Tu peux aussi essayer de créer un sous-programme qui détruit toutes ces variables temporaires et le lancer plusieurs fois tout au long de ton prog principal. |
Il y a un autre moyen: :Prgm :Local x,y,sp :Define sp()=Prgm :Local x,y :xxx->x :yyy->y :DelVar xxx,yyy :x+1->x :y+1->y :x->xxx :y->yyy :EndPrgm :1->x :1->y :x->xxx :y->yyy :sp() :xxx->x :yyy->y :DelVar xxx,yyy :EndPrgm Et voilà, les variables globales n'existent que pour le temps du passage d'un sous-programme à l'autre et sont détruites juste après leur création. [edit]Edité par Kevin Kofler le 05-07-2001 à 20:28:07[/edit] |
ouais,moi perso,quand je peux pas faire des "local" je fait delvar à la fin de mon prog.mais la solution de kévin est plus intérressante dans la mesure ou elle a moins de chance de laisser des variables trainer en cas de break Apple vaincra.
asprintf fait tout sauf le café |
de toute façon, en cas de break, les variables traineront jusqu'au prochain lancement complet où elles seront détruites... La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork. |
Ah oui, c vrai que la solution de Kevin est bonne, mais elle a tendence à augmenter la taille des progs Fo trouver un compromit |
ouais Apple vaincra.
asprintf fait tout sauf le café |