 Le Forum de TI-BANK.fr Le forum de la banque de programmes pour calculatrices graphiques Texas Instruments (aide débutants, résolution problèmes...). |
| | Aller à la page : 1, 2, 3, 4, 5, 6, 7, 8 | | Auteur | Message |
|---|
tama Animateur


   Age : 17 Inscrit le : 19 Déc 2005 Messages : 9397 Localisation : quelque part en France... Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:) Classe : Terminale S spé maths
Impureté:
   (-9/500) Dernière note en maths: 13/20
| Sujet: Re: Astuces Mer 1 Nov - 19:59 | |
| un petit truc au lieu de faire {1->LABCDE on peut tout simplement faire {1->ABCDE ça peut sembler quasi inutile mais c'est utile en cas d'utilisation multiple de la même liste dans un même programme _________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed> |
|  | | tama Animateur


   Age : 17 Inscrit le : 19 Déc 2005 Messages : 9397 Localisation : quelque part en France... Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:) Classe : Terminale S spé maths
Impureté:
   (-9/500) Dernière note en maths: 13/20
| Sujet: Re: Astuces Lun 21 Mai - 19:25 | |
| Trouvé un truc hier soir pour optimiser le code
| Code: | 0->K Repeat K getkey->K End If K=41 "A->Str1 If K=42 "B->Str1 ... If K=93 "Z->Str1
|
ça donne
| Code: | "ABCDEFGHIJKLMNOPQRSTUVWXYZ->Str0 ... 0->K Repeat K GetKey->K End (K>=51)(K<=93)(fPart(K/10)<=.5)(5int(K/10)-22+K-10int(K/10))+(K>=41)(K<=43)(K-10int(K/10 sub(Str0,Ans,1->Str1 ...
|
bon un peu compliqué mais grâce à ça j'ai réduit la taille de mon pendu de 30% (739->518) (bien sûr <= c'est inférieur ou égal et >= supérieur ou égal) voilà ^^ _________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed> |
|  | | adriweb Elite


   Age : 16 Inscrit le : 01 Juin 2007 Messages : 787 Localisation : Sur ma chaise Calculatrice : TI-84+ Classe : 1ère S
Impureté:
   (-1/450) Dernière note en maths: **/20 ^^
| |  | | tama Animateur


   Age : 17 Inscrit le : 19 Déc 2005 Messages : 9397 Localisation : quelque part en France... Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:) Classe : Terminale S spé maths
Impureté:
   (-9/500) Dernière note en maths: 13/20
| Sujet: Re: Astuces Dim 10 Juin - 16:42 | |
| cf premier post ^^ _________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed> |
|  | | tama Animateur


   Age : 17 Inscrit le : 19 Déc 2005 Messages : 9397 Localisation : quelque part en France... Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:) Classe : Terminale S spé maths
Impureté:
   (-9/500) Dernière note en maths: 13/20
| Sujet: Re: Astuces Mar 26 Juin - 11:07 | |
| (héhé je me mets à l'ASM z80 syfo fais gaffe ) Bon j'ai trouvé un truc assez intéressant pour ceux qui veulent des trucs avancés dans leurs programmes et qui ne peuvent pas ou ne veulent pas télécharger de programmes ASM C'est l'équivalent des chaines Exec pour les 68k : Allez commençons : 2 façons : Utiliser la commande ExecAsm de Omnicalc ([PRGM] 2 fois) puis rentrer la chaine ou -Créer un nouveau programme -Mettre ASMPrgm sur la première ligne (c'est dans le Catalog : [2nd]+[0]) -Taper les chiffres/lettres à la suite -Ne pas oublier d'ajouter C9 à la fin du programme sinon ça bug -Pour appeler : Asm(nomduprogramme Ah oui aussi pour les fonctions sur l'écran il faut ajouter : EF6A48 à la fin pour rafraichir l'écran. Bon on commence :
- Scroller l'écran à droite : 2140930E40060CB7CB1E2310FB0D20F5
- Scroller l'écran à gauche : 213F960E40060CB7CB162B10FB0D20F5
- Scroller l'écran en haut : 214C9311409301F402EDB0EB010C00EF304C
- Scroller l'écran en bas : 213396113F9601F402EDB823010C00EF304C
- Augmenter le contraste : 2147847EC604FE28D077C6D8CD0B00D310
- Diminuer le contraste : 2147847ED604D877C6D8CD0B00D310
- Mettre le contraste contenu dans X : EFE04AEFEF4AC6C0CD0B00D310
- Graph tout noir : 2140930100033EFFEF334C
- Effacer graph : EFD04B
- Inverser l'écran Home : FDCB05DEEF7945FDCB059E
- Inverser graph : 2140930100037E2F77230B78B120F7
- Inverser tous les écrans :
F33E20CD0B00D3103E80CD0B00D310060EC5063F2E7FCD0B00DB112C CD0B00DB112FF57DCD0B00D311CD0B00DB11F1CD0B00D31110E5C110D8
- Cercles rapides : FDCB3CE6
- Ecran on/off: DB10CB6F20053E03D310C93E02D310
- Alpha lock : FDCB12E6FDCB12F6
- Permettre les minuscules : 21148A3E08AE77
- Enlever done: FDCB00AE
- Texte inversé ou non : 21F5893E08AE77
- APD : 210101224884FDCB08DEFB76
- Mettre l'APD à X (X=variable X) : EFE04AEFEF4AEB214884732372
- Eteindre la TI : 3E01D30376FDCB09A6
- "Powerdown" : EF0850
- Etat des batteries (dans Ans) : EFBF41EFB3502803EF9B41EFBF4A
- RAM libre : EFE542EF9247EF5641EFBF4A
- Version de l'OS : EF6F4CF578EF8C47EF6742EF6742F1EF8F47F7EFBF4A
- Version de l'Hardware : EFBA80EF8C47EFBF4A
- Getkey: EF7045FB76EF4447B728F8EF5641EFD14A
Il faut être prudent en utilisant ces chaines, comme pour les chaines Exec un seul chiffre faux et tout devient différent (crash voire pire ?) Voilà c'était l'astuce du jour =) le lien : http://wikiti.denglend.net/index.php?title=83Plus:Basic:Tricks_ExecAsm Sinon j'en ai des petites :
- pour savoir facilement si on est sur TI82 ou TI83+, utiliser abs : sur TI82 abs -1+1 donne 2 (considère comme abs(-1)+1), sur TI83(+) abs(-1+1 donne 0
- les erreurs :
Pour que l'utilisateur connaisse ce qu'il a oublié (par exemple pour un sous-programme), on peut faire :
| Code: | PROGRAM:FIRST ... ... Output(1,1,"ERR:prgmSUB manquant prgmSUB ... ...
|
et dans le prgmSUB :
| Code: | PROGRAM:SUB Output(1,1," " (16 espaces) ... ... ...
|
Après l'ERR:UNDEFINED l'utilisateur pourra voir ce qu'il manque voilà c'est tout pour aujourd'hui ! [url=http://wikiti.denglend.net/index.php?title=83Plus:Basic:Tricks_ExecAsm][/url] _________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed> |
|  | | tama Animateur


   Age : 17 Inscrit le : 19 Déc 2005 Messages : 9397 Localisation : quelque part en France... Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:) Classe : Terminale S spé maths
Impureté:
   (-9/500) Dernière note en maths: 13/20
| Sujet: Re: Astuces Ven 29 Juin - 19:39 | |
| | tama a écrit: | Je propose de poster ici toutes les astuces que vous connaissez pour la programmation sur TI z80 ou sur TI z80 tout court
=> Pour optimiser un programme :
Exemple :
prgmTEST
code non optimisé
| Code: | 0->A:0->B:0->C:0->D Lbl 0 A+1->A (A+B)x(C+D)->E Disp E If A<1000 Then Goto 0 Else Goto 1 End Lbl 1 Stop
|
Nombre total d'octets : 13+54=77 octets
1.Enlever les parenthèses
devient :
Gain ==> 1 octet
2.Utiliser For( et End au lieu des goto (l'instruction Goto cherche le lbl correspondant et cela peut prendre du temps)
| Code: | Lbl 0 A+1->A (A+B)x(C+D)->E Disp E If A<1000 Then Goto 0 Else Goto 1 End
|
devient :
| Code: | For(A,1,1000 (A+B)x(C+D->E Disp E End
|
Gain ==> 12 octets Gain total ===> 13 octets
3.Utiliser DelVar var au lieu de 0->var Avantage : DelVar A et 0->A prennent autant de place mais on peut enchainer les DelVar (les coller)
devient :
| Code: | DelVar BDelVar CDelVar D
|
(DelVar A est inutile puisque A sera utilisé pour faire une boucle)
Gain : 6 octets Gain total : 19 octets
4.Mettre un "stop" en fin de programme ne sert à rien
devient :
Ou dans le cas actuel (suppression des labels et des goto) :
| Code: | ... Disp E End (plus rien après mais attention à ne pas oublier le End sinon la boucle ne marche plus)
|
Gain : 1 octet Gain total : 20 octets
5.Utiliser vos connaissances en maths et en programmation
devient
ou :
Gain : 1 octet Gain total : 21 octets
6 (facultatif) : Installer Omnicalc ==>http://www.ticalc.org/archives/files/fileinfo/226/22626.html
voilà :)
Bilan final : + Le programme a 21 octets de moins et la vitesse en plus correspondante - euh...
code final après optimisation :
| Code: | DelVar BDelVar CDelVar D For(A,1,1000 (A+C)(B+D->E Disp E End
|
13+43 = 56 octets
N'hésitez pas à poster vos astuces !!! 
P.S : Attention pour les connaissances en programmation : le programme peut devenir plus complexe Attention aussi aux gros gros programmes, il faut avoir le cerveau correspondant  |
tiens je viens de trouver une nouvelle optimisation : au lieu d'utiliser E, utiliser Ans ici c'est plus avantageux : donc ça donne :
| Code: | DelVar BDelVar CDelVar D For(A,1,1000 (A+C)(B+D Disp Ans End
|
J'ai gagné 2 octets  donc taille finale => 13+41=54 octets (ce qui fait une optimisation de 43% =)) _________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed> |
|  | | |
| Page 8 sur 8 | Aller à la page : 1, 2, 3, 4, 5, 6, 7, 8 |
| | Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| | |
| |
|