Bonjour à tous !
Je rassemble dans cet article des astuces de programmation, leur effet, leur avantage et désavantage. Il est voué à être complété au fur et à mesure, avec votre aide bien sûr
Les dénominations internationales des modèles sont utilisées dans cet article
Effacer le Fait/Done à la fin d'un programme
Ce mot à la fin du programme est affiché automatiquement à la fin d'un programme. Seulement, il peut être inesthétique ou déranger une fin d'exécution de programme. Il existe cependant plusieurs manières de le contourner :
Les variables du codetouche/getkey
Pour détecter et attendre la pression d'une touche, il existe un code infaillible :
Cependant, il est tout à fait possible d'économiser des octets et la variable K :
A la recherche de nouvelles variables...
Ecrit à l'aide de l'article Plus de variables sur la TI-82 Stats(.fr) de Persalteas
Vous savez certainement ce qu'est une variable, ces lettres dans lesquelles on peut stocker un nombre durablement, pour l'utiliser dans des calculs. Il y en a 27 :
Eh bien, on vous l'avait caché, mais dans votre menu Finance (83 : 2nd-x^-1 ; 83+ : 2nd-App-Enter) se cachent 7 nouvelles variables, qui fonctionnent commes les autres !
Toutes les variables des menus Vars-1 et Vars-2 fonctionnent aussi comme les autres, soit quelques 44 variables supplémentaires ! Attention cependant, si vous utilisez le graphe, ne touchez pas à tout le menu X/Y de Vars-1 pour d'autrs utilisations que l'initialisation du graphe ! De même pour les variables de zoom, n'oubliez pas de les éinitialiser en fin de programme avec ZStandard.
Une chose à savoir : la variable TblInput est une liste système supplémementaire ! Elle peut contenir jusqu'à 7 éléments et règle les valeurs en entrées du tableau de valeurs. Les programmeurs vont être contents ! Plus de précisions dans mon article sur la gestion des tableaux en Basic (url à venir...)
Vous êtes dans un code où les variables sont très utilisées, il vous en faut plus... Eh bien c'est pas encore fini ! On peut utiliser les trois variables des suites, u, v et w (avec 2nd-7, 2nd-8 ou 2nd-9), précédées elles d'un guillemet :
On peut aussi détourner d'autres variables, comme les chaînes, les fonctions, les matrices ou les listes !
Enfin, il existe une variable très pratique, et qui ne prend qu'un octet. A manier avec précaution pas contre : la variable Ans (Rep). Elle stocke le résultat de chaque calcul effectué.
Les lettres minuscules
Reboot de l'article Ecrire en minuscules sur la TI 82 Stats(.fr) de Persalteas sur l'ancien Tout82
Pour avoir un peu plus "la classe", je suis certain que vous avez déjà voulu utiliser des lettres minuscules, présentes dans la plupart des tokens mais pas accesibles spontanément; Pourtant, avec un peu de savoir faire, on peut en récupérer quelques unes :
La condition ternaire
Dans votre code, vous avez forcément déjà utilisé des conditions. Un exemple :
Bouh que c'est laid ! Déjà, avant d'aborder la condition ternaire, sachez que si une seul commande dépend d'un If, ce code équivaut à celui ci :
Maintenant, vous allez pouvoir encore simplifier, sans le If !
Alors, qu'est ce qui se passe ? C'est bien simple, c'est un test booléen, dont le résultat est 1 ou 0. Par exemple, si vous tapez 53=1 sur votre calculatrice, elle afficher 0. magique hein ? Eh bien on l'applique dans le proramme :
Ces conditions sont très rapides et très légères, cherchez toujours à les utiliser, elles peuvent s'appliquer très souvent. Voici par exemple un morceau de code que je ne veux voir s'effectuer qu'une seule fois dans ma boucle :
C'est un exemple, les apllications sont bien plus poussées, à vous de les trouver
Les nombres-listes
Cette partie est un déterrage d'un tuto de Ratuss avec l'aide de vibra sur l'ancien Tout82
Vous savez certainement ce qu'est une liste. Il s'agit d'une suite de nombres stockés dans une seule variable. Quelque chose comme ça :
Si vous en avez déjà utilisé, vous avez aussi que ces variabes sont très lourdes ! En effet, on gagne 12 octets dans le poids de la listes à chaque fois qu'on lui ajoute un terme. Il existe pourtant un moyen d'utiliser un nombre comme liste. On reprend la même liste :
Pour extraire un terme, on applique la formule suivante :
int(10fPart(Aᴇ(X-1
Avec : - A le nombre utilisé comme liste
- X le rang à atteindre
Cette astuce ne fonctionne bien sûr que pour les listes de moins de 14 termes, la précision de la calculatrice ne permet pas plus.
A compléter avec les nombres-matrices...
Je rassemble dans cet article des astuces de programmation, leur effet, leur avantage et désavantage. Il est voué à être complété au fur et à mesure, avec votre aide bien sûr
Les dénominations internationales des modèles sont utilisées dans cet article
Effacer le Fait/Done à la fin d'un programme
Ce mot à la fin du programme est affiché automatiquement à la fin d'un programme. Seulement, il peut être inesthétique ou déranger une fin d'exécution de programme. Il existe cependant plusieurs manières de le contourner :
- Code:
//Code...
Output(1,1,"
- Code:
//Code...
"
- Code:
//Code
Nombre, test
Les variables du codetouche/getkey
Pour détecter et attendre la pression d'une touche, il existe un code infaillible :
- Code:
Repeat K
getkey->K
End
If K=...
Cependant, il est tout à fait possible d'économiser des octets et la variable K :
- Code:
Repeat Ans
getkey
End
If Ans...
A la recherche de nouvelles variables...
Ecrit à l'aide de l'article Plus de variables sur la TI-82 Stats(.fr) de Persalteas
Vous savez certainement ce qu'est une variable, ces lettres dans lesquelles on peut stocker un nombre durablement, pour l'utiliser dans des calculs. Il y en a 27 :
- Code:
ABCDEFGHIJKLMNOPQRSTUVWXYZθ
Eh bien, on vous l'avait caché, mais dans votre menu Finance (83 : 2nd-x^-1 ; 83+ : 2nd-App-Enter) se cachent 7 nouvelles variables, qui fonctionnent commes les autres !
- Code:
I%,N,PV,PMT,FV,P/Y,C/Y
//et en français :
I%,N,ValAct,PMT,ValAcq,Ech/an,Per/an
Toutes les variables des menus Vars-1 et Vars-2 fonctionnent aussi comme les autres, soit quelques 44 variables supplémentaires ! Attention cependant, si vous utilisez le graphe, ne touchez pas à tout le menu X/Y de Vars-1 pour d'autrs utilisations que l'initialisation du graphe ! De même pour les variables de zoom, n'oubliez pas de les éinitialiser en fin de programme avec ZStandard.
Une chose à savoir : la variable TblInput est une liste système supplémementaire ! Elle peut contenir jusqu'à 7 éléments et règle les valeurs en entrées du tableau de valeurs. Les programmeurs vont être contents ! Plus de précisions dans mon article sur la gestion des tableaux en Basic (url à venir...)
Vous êtes dans un code où les variables sont très utilisées, il vous en faut plus... Eh bien c'est pas encore fini ! On peut utiliser les trois variables des suites, u, v et w (avec 2nd-7, 2nd-8 ou 2nd-9), précédées elles d'un guillemet :
- Code:
53->u //NON !
"53->U //c'est bien !
On peut aussi détourner d'autres variables, comme les chaînes, les fonctions, les matrices ou les listes !
- Code:
"1->Str1
Disp expr(Str1 //on calcule ce qu'il y a entre les guillemets
"1->Y1
Disp Y1
{1->L1
Disp L1
[[1->[A]
Disp [A]
Enfin, il existe une variable très pratique, et qui ne prend qu'un octet. A manier avec précaution pas contre : la variable Ans (Rep). Elle stocke le résultat de chaque calcul effectué.
Les lettres minuscules
Reboot de l'article Ecrire en minuscules sur la TI 82 Stats(.fr) de Persalteas sur l'ancien Tout82
Pour avoir un peu plus "la classe", je suis certain que vous avez déjà voulu utiliser des lettres minuscules, présentes dans la plupart des tokens mais pas accesibles spontanément; Pourtant, avec un peu de savoir faire, on peut en récupérer quelques unes :
- Code:
a [var][5][>][>][2]
b [var][5][>][>][3]
c [var][5][>][>][4]
d [var][5][>][>][5]
e [2nd][/]
i [2nd][.] c'est la lettre grecque iota mais peu importe... ^
l [1] oui, un 1 ressemble vachement à un L minuscule...
n [var][5][1]
p [var][5][<][<][1]
r [var][5][>][>][7]
s [var][5][<][<][0]
t [var][5][<][<][3]
u [2nd][7]
v [2nd][8]
w [2nd][9]
z [var][5][<][<][2]
La condition ternaire
Dans votre code, vous avez forcément déjà utilisé des conditions. Un exemple :
- Code:
Prompt A
If A=1
Then
53->A
End
If A=53
Then
1->A
End
Bouh que c'est laid ! Déjà, avant d'aborder la condition ternaire, sachez que si une seul commande dépend d'un If, ce code équivaut à celui ci :
- Code:
Prompt A
If A=1
53->A
If A=53
1->A
Maintenant, vous allez pouvoir encore simplifier, sans le If !
- Code:
A+52(A=1)-52(A=53->A
Alors, qu'est ce qui se passe ? C'est bien simple, c'est un test booléen, dont le résultat est 1 ou 0. Par exemple, si vous tapez 53=1 sur votre calculatrice, elle afficher 0. magique hein ? Eh bien on l'applique dans le proramme :
- Code:
A+52(A=1) //Si A=1 est vrai, alors A=1 vaut 1 ; A+52*1=1+52=53
A-52(A=53) //Si A=53 est vrai, alors A=53 vaut 1 ; A-52*1=53-52=1
//et comme A=1 et A=53 ne peuvent pas arriver en même temps, on concatène le tout dans une ligne :
A+52(A=1)-52(A=53->A
Ces conditions sont très rapides et très légères, cherchez toujours à les utiliser, elles peuvent s'appliquer très souvent. Voici par exemple un morceau de code que je ne veux voir s'effectuer qu'une seule fois dans ma boucle :
- Code:
1->G:53->B
For(A,1,53
If GB
Then
DelVar GDisp "HELLO WORLD !
End
Disp "ON A DEPASSE G
End
C'est un exemple, les apllications sont bien plus poussées, à vous de les trouver
Les nombres-listes
Cette partie est un déterrage d'un tuto de Ratuss avec l'aide de vibra sur l'ancien Tout82
Vous savez certainement ce qu'est une liste. Il s'agit d'une suite de nombres stockés dans une seule variable. Quelque chose comme ça :
- Code:
{1,2,2,1,6,5,9,8,7->L1
//On extrait un terme de cette manière :
L1(rang du terme
Si vous en avez déjà utilisé, vous avez aussi que ces variabes sont très lourdes ! En effet, on gagne 12 octets dans le poids de la listes à chaque fois qu'on lui ajoute un terme. Il existe pourtant un moyen d'utiliser un nombre comme liste. On reprend la même liste :
- Code:
.122165987->A
//10 octets au lieu de... 120 !
Pour extraire un terme, on applique la formule suivante :
int(10fPart(Aᴇ(X-1
Avec : - A le nombre utilisé comme liste
- X le rang à atteindre
Cette astuce ne fonctionne bien sûr que pour les listes de moins de 14 termes, la précision de la calculatrice ne permet pas plus.
A compléter avec les nombres-matrices...
Dernière édition par Mingerton le Lun 9 Mar 2015 - 19:42, édité 3 fois (Raison : Correction code getKey)