= Pour optimiser un programme :
Exemple :
prgmTEST
- Code: Select all
0-A:0-B:0-C:0-D
Lbl 0
A+1-A
(A+B)x(C+D)-E
Disp E
If A1000
Then
Goto 0
Else
Goto 1
End
Lbl 1
Stop
Nombre total d'octets :
13+54=77 octets
1.Enlever les parenthèses
- Code: Select all
(A+B)x(C+D)-E
devient :
- Code: Select all
(A+B)x(C+D-E
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: Select all
Lbl 0
A+1-A
(A+B)x(C+D)-E
Disp E
If A1000
Then
Goto 0
Else
Goto 1
End
devient :
- Code: Select all
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)
- Code: Select all
0-A:0-B:0-C:0-D
devient :
- Code: Select all
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
- Code: Select all
Lbl 1
Stop
devient :
- Code: Select all
Lbl 1
Ou dans le cas actuel (suppression des labels et des goto) :
- Code: Select all
...
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

- Code: Select all
(A+B)x(C+D-E
devient
- Code: Select all
(A+B)(C+D-E
ou :
- Code: Select all
AC+AD+BC+BD-E
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: Select all
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
