π
<-
Chat plein-écran
[^]

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

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

Message non lude Larwive » 27 Fév 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
Dernière édition par Larwive le 12 Mar 2020, 06:52, édité 39 fois.
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:
Avatar de l’utilisateur
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 88.2%
 
Messages: 282
Images: 20
Inscription: 25 Oct 2018, 17:41
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

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

Message non lude Hamza.S » 27 Fév 2020, 16:14

Il y a une petite correction à apporter
Code: Tout sélectionner
If A≠0

Peur s'écrire
Code: Tout sélectionner
If not(A
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.4%
 
Messages: 4460
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude Larwive » 27 Fév 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:
Avatar de l’utilisateur
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 88.2%
 
Messages: 282
Images: 20
Inscription: 25 Oct 2018, 17:41
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

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

Message non lude Wistaro » 27 Fév 2020, 19:01

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

J'en avais aussi une autre pour les getkey.

Tu peux remplacer :

Code: Tout sélectionner
GetKey → K
If K = 25 OR K = 24 OR K = 26 OR K = 34 Then
...
End


Par

Code: Tout sélectionner
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!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3152
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

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

Message non lude Larwive » 27 Fév 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:
Avatar de l’utilisateur
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 88.2%
 
Messages: 282
Images: 20
Inscription: 25 Oct 2018, 17:41
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

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

Message non lude 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!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3152
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

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

Message non lude edgar13 » 06 Mar 2020, 10:43

Pas mal! :bj:
Ça me rappelle ce petit tuto.
Mes programmes sont ici: archives_cat.php?auteur=201254
Avatar de l’utilisateur
edgar13Modo
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 97.4%
 
Messages: 589
Images: 24
Inscription: 04 Jan 2019, 20:31
Localisation: Sur TI-Planet voyons
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere année de license maths-info
YouTube: Non
Twitter/X: Non
Facebook: Non
GitHub: Non

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

Message non lude Larwive » 09 Mar 2020, 19:45

edgar13 a écrit: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:
Avatar de l’utilisateur
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 88.2%
 
Messages: 282
Images: 20
Inscription: 25 Oct 2018, 17:41
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère année d'école d'ingénieur informatique
GitHub: Larwive


Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
814 utilisateurs:
>787 invités
>21 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)