π
<-
Chat plein-écran
[^]

Comment économiser des octets et optimiser (TI-Basic)

Comment économiser des octets et optimiser (TI-Basic)

Unread postby Larwive » 27 Feb 2020, 16:07

Bonjour,
en me promenant parmi les partenaires de TI-Planet, je suis tombé sur Espace TI qui propose une page d'aide à l'optimisation en TI-Basic.
Malgré que le guide a été fait pour TI-82 Stats et TI-83 (tout court), cela s'applique aussi (au moins la plupart) pour les nouvelles versions, TI-82 Advanced, TI-83 Premium CE (Edition Python ou pas).

N'hésitez pas à signaler des méthodes d'optimisations qui auraient été oublié. :) Ce topic sera mis à jour en cas de besoin.
Dernière mise à jour : 27/02/2020
Merci à grosged et tous ceux qui ont répondu au topic pour leur participation !

Page en question : http://espace-ti.e-monsite.com/pages/as ... ctets.html

La fin d'une fonction et juste avant la flèche:
Tout d'abord, sachez que si vous enlevez la parenthèse ou le guillemet à la fin d'une fonction, vous pouvez faire de la place tout en n'ayant aucune erreur, par exemple:

12215

Les parenthèses ne sont pas toujours obligatoires :

12217

Attention: Ceci ne fonctionne pas au milieu d'un calcul:

12218
Sinon vous ajoutez 1/2 à A à la place de diviser A+1 par 2.

Les multiplications :
12221

12225

Une seule conséquence dans un If:
Ensuite, si vous n'avez qu'une seule conséquence après la condition de If, vous pouvez vous passer de Then et End.

12219

Ici par exemple vous gagnez quatre octets. Par contre cela ne fonctionne pas si vous avez plusieurs conséquences entre Then et End.

Ecriture simplifiée d'un nombre:
Vous connaissez les puissances de dix et les nombres décimaux ? Eh bien nous allons les utiliser ici, par exemple:

12220

12224

Sachez que devant un nombre décimal compris entre 0 et 1 vous n'êtes pas obligé de mettre le zéro devant le point.

L'inversion des opérations :

12222

Divers "petits trucs":

12226
Quand vous mettez plusieurs EffVar à la suite, vous n'êtes pas obligé de sauter une ligne ni de mettre deux points:

12230
(Sachez que sur certaines calculatrices en français on a EffVar au lieu de DelVar.)

L'algèbre :
12231

12233

12234
Dans ce cas, le getKey avec 24 et 26 correspondent aux flèches gauche et droite. Si A=24, la parenthèse (A=24) est égale à 1, et si A=26, la parenthèse (A=26) est égale à 1.
N'oubliez pas que le If avec une conséquence peut s'écrire sans le Then ni le End comme ici.

Les listes :
12232
Les accolades de fin et le petit L ne sont pas obligatoires.

Le getKey :

12235
Attention !
Vous deviez vouloir que la flèche bas soit enclenchée au moment du calcul pour simplifier le programme ! (getKey=34 correspond à la flèche bas)
Si vous vouliez garder en mémoire un getKey à un moment particulier avant le calcul, gardez la version non optimisée !


12238
Dans cet exemple qui ressemble à un précédent, on utilise Rep (ou Ans en anglais) qui garde en mémoire le dernier résultat.

Et maintenant une amélioration un peu plus technique, qui utilise la fonction max( :

12237
La fonction max( prend le maximum de ce qu'il y a juste après.
Ce morceau de programme détecte si une des flèches est appuyée.
Rappel :
getKey=24 : gauche
getKey=25 : haut
getKey=26 : droite
getKey=34 : bas

Variables :
Sachez aussi qu'utiliser la variable n utilise un octet de moins et son exécution par l'interpréteur Basic est plus rapide ! Cette variable est obtenable avec :f32: en mode Suite.
Attention
12214

Affichage de résultat :

En fin de programme, le Disp n'est pas utile car la variable dans Rep (ou Ans en anglais) est affiché automatiquement.
12239
Last edited by Larwive on 12 Mar 2020, 06:52, edited 39 times in total.
Je dis que je ne dis rien, à part que mes programmes sont disponibles ici. Image

En mettant à profit mes pouvoirs de devin, sachant que j'ai écrit ma signature bien avant ta venue, ton pseudo est Anonymous.:whistle:
User avatar
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.2%
 
Posts: 282
Images: 20
Joined: 25 Oct 2018, 17:41
Location: Chez moi
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby Hamza.S » 27 Feb 2020, 16:14

Il y a une petite correction à apporter
Code: Select all
If A≠0

Peur s'écrire
Code: Select all
If not(A
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 28.5%
 
Posts: 4463
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby Larwive » 27 Feb 2020, 16:18

Ajouté !
Je dis que je ne dis rien, à part que mes programmes sont disponibles ici. Image

En mettant à profit mes pouvoirs de devin, sachant que j'ai écrit ma signature bien avant ta venue, ton pseudo est Anonymous.:whistle:
User avatar
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.2%
 
Posts: 282
Images: 20
Joined: 25 Oct 2018, 17:41
Location: Chez moi
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby Wistaro » 27 Feb 2020, 19:01

Intéressant. Ça me rappelle des souvenirs :p

J'en avais aussi une autre pour les getkey.

Tu peux remplacer :

Code: Select all
GetKey → K
If K = 25 OR K = 24 OR K = 26 OR K = 34 Then
...
End


Par

Code: Select all
GetKey → K
If max(K={24,25,26,34 Then
...
End
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88%
 
Posts: 3158
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby Larwive » 27 Feb 2020, 21:07

Ajouté !
Ça serait peut-être plus visible si je les tape sur ma calculatrice ?

Déjà 38 édition du post originel !
Je dis que je ne dis rien, à part que mes programmes sont disponibles ici. Image

En mettant à profit mes pouvoirs de devin, sachant que j'ai écrit ma signature bien avant ta venue, ton pseudo est Anonymous.:whistle:
User avatar
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.2%
 
Posts: 282
Images: 20
Joined: 25 Oct 2018, 17:41
Location: Chez moi
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby Wistaro » 05 Mar 2020, 23:26

Cool!
Et yep :)
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88%
 
Posts: 3158
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby edgar13 » 06 Mar 2020, 10:43

Pas mal! :bj:
Ça me rappelle ce petit tuto.
Mes programmes sont ici: archives_cat.php?auteur=201254
User avatar
edgar13Modo
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 97.4%
 
Posts: 589
Images: 24
Joined: 04 Jan 2019, 20:31
Location: Sur TI-Planet voyons
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere année de license maths-info
YouTube: Non
Twitter: Non
Facebook: Non
GitHub: Non

Re: Comment économiser des octets et optimiser (TI-Basic)

Unread postby Larwive » 09 Mar 2020, 19:45

edgar13 wrote:Pas mal! :bj:
Ça me rappelle ce petit tuto.


Je les rajouterai quand j'aurai le temps. ;)
Je dis que je ne dis rien, à part que mes programmes sont disponibles ici. Image

En mettant à profit mes pouvoirs de devin, sachant que j'ai écrit ma signature bien avant ta venue, ton pseudo est Anonymous.:whistle:
User avatar
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.2%
 
Posts: 282
Images: 20
Joined: 25 Oct 2018, 17:41
Location: Chez moi
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ère année d'école d'ingénieur informatique
GitHub: Larwive


Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1022 utilisateurs:
>1008 invités
>9 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)