Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
L'optimisation

XII - L'optimisation

L'optimisation consiste d'une part à rendre le programme plus rapide en diminuant le nombre de calculs et en jouant avec les performances des fonctions, et d'autres part, à économiser de la mémoire. Ces deux cas sont importants, surtout quand on programme sur une calculatrice qui dispose de ressources limitées, tant en puissance qu'en mémoire.

Nous commencerons par l'optimisation de la mémoire car ce sont des astuces et règles élémentaires à appliquer systématiquement à tous vos programmes.

Supprimez tous les caractères facultatifs

Ne fermez jamais vos parenthèses, crochets et accolades en fin de ligne ou avant la fonction =>. Ils sont facultatifs. Par exemple :

List 1[5] [i]devient[/i] List 1[5
1=List 1[5]=>"HELLO" [i]devient[/i] 1=List 1[5=>"HELLO"

If Mat A[12,A+2(B+3)] [i]devient[/i] If Mat[12,A+2(B+3

Sauf avec les fonctions Str pour lesquelles il faut fermer la parenthèse (l'uniformisation de la sématique du Basic Casio est à revoir...).

Dans la même veine, supprimez tous les signes de multiplication. Remplacez aussi les divisions par une multiplication quand un gain en mémoire s'opère.

2*A [i]devient[/i] 2A
2*(A+3) [i]devient[/i] 2*(A+3 ou 2A+6
A/10 [i]devient[/i] .1A
A/100 [i]devient[/i] .01A
2(A+3)/100 [i]devient[/i] .02(A+3

Usez des booléens

Nous allons prendre un cas précis pour expliquer cette astuce d'optimisation. Selon le tableau ci-dessous, on doit trouver une équation pour obtenir la valeur de B en fonction de A.

ABCalcul
11A=B
22A=B
33A=B
46A+2=B
57A+2=B
68A+2=B

On constate qu'entre 1 et 3, les variables A et B sont égales (B = A). Mais à partir de A = 4, il y a rupture car B = A + 2. On serait alors tenté d'écrire ceci pour calculer la valeur de B en fonction de A :

A->B
A>=4=>B+2->B

Je suis d'accord, le code est court et ne tient sur deux lignes. Ce n'est pas la mer à boire, mais quand on peut optimiser davantage le code, pourquoi s'en priver ? Vous vous rappelez des booléens, j'en parlais dans la réalisation du morpion : quand la condition est vraie, elle renvoie 1, sinon elle renvoie 0. Nous allons donc jouer avec cette caractéristique. En une seule ligne, on obtient le code suivant :

A+2(A>=4->B

Conclusion

C'est tout sur l'optimisation ? En effet, une liste exhaustive est impossible car elle ne serait pas représentative de la diversité des situations rencontrées en programmation. Vous devez vous adapter en fonction de votre programme et des connaissances en Basic Casio, et ainsi faire preuve d'ingéniosité pour réaliser le code le plus optimisé.


<<< Revenir au cours précédent Continuer le cours >>>

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 215 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd