Voici un programme avant l'optimisation :
{2565166,2565166,2565166,2565166,2565166,2565166,1451,1546,
444,2565166,2565166,2565166,2565166,2565166->List 1
Et maintenant ce même programme après l'optimisation :
[u]Premier possibilité :[/u]
2565166->A
{A,A,A,A,A,A,1451,1546,444,A,A,A,A,A->List 1
[u]Deuxième possibilité :[/u]
2565166
{Ans,Ans,Ans,Ans,Ans,Ans,1451,1546,444,Ans,Ans,Ans,Ans,Ans->List 1
Remarque 1 : Dans ce cas les '}' sont inutiles
Remarque 2 : Ans est une variable qui contient la valeur du dernier résultat, ici Ans vaut 2565166
J'ai tout simplement stocké le nombre 2565166 dans la variable A ;). Une autre possibilité est d'utiliser la variable Ans qui permet d'optimisé encore mieux vos programmes
Autres exemples :
[u]Avant :[/u]
(Mat S[1,4]+AxMat S[1,4])xMat S[1,4]->E
[u]Après :[/u]
Mat S[1,4]->B
(B+AB)B->E
ou encore (avec Ans) :
Mat S[1,4]
(Ans+AxAns)Ans
Do
Getkey=31=>1->A
Getkey=41=>2->A
Getkey=51=>3->A
Getkey=61=>4->A
Getkey=71=>5->A
Getkey=32=>6->A
Getkey=42=>7->A
Getkey=52=>8->A
(89 octets)
devient
Do
Getkey
Ans=31=>1->A
Ans=41=>2->A
Ans=51=>3->A
Ans=61=>4->A
Ans=71=>5->A
Ans=32=>6->A
Ans=42=>7->A
Ans=52=>8->A
(67 octets)
Combien de variables existe-t-il ? Beaucoup de personnes pensent qu'il y en a 28 (Toutes les lettres de l'alphabet, r et [TETA] ), mais en réalité il y en a 37 (peut être même plus) :
Les variables supplémentaires sont a0, a1, a2, b0, b1, b2, c0, c1 et c2, on les trouve dans [VARS]+[F6]+[F2]+[2] pour les Graph 100 (+) ou dans [VARS]+[F6]+2x[F2] pour les autres calculatrices
Dans cette partie du cours on admettra ceci : une variable existe si elle ne vaut pas 0 et une variable n'existe pas si elle vaut 0. Exemple : soit une variable A, la variable A existe si A != 0 et elle n'existe pas si A=0
Voici un programme avant l'optimisation :
If A!=0
Then ...
IfEnd
If B=0
Then ...
IfEnd
Et maintenant ce même prog après l'optimisation :
If A
Then ...
IfEnd
If Not B
Then ...
IfEnd
La première ligne signifie ''Si A existe'' c'est-à-dire ''Si A !=0''
La quatrième ligne signifie ''Si B n'existe pas'' c'est-à- dire ''Si B = 0''
Syntaxe globale :
''<variable> = 0'' s'écrit aussi ''Not <variable>'' (optimisation de 1 octet, c'est déjà pas mal)
''<variable> != 0'' s'écrit aussi ''<variable>'' (optimisation de 2 octets)
On peut aussi appliquer cette méthode dans les boucles, exemple :
Do
...
LpWhile A=0 And B!=0
donne:
Do
...
LpWhile Not A And B (optimisation de 3 octets)
Citer : Posté le 30/06/2012 18:26 | #
Oui mais moi je me suis amusé à écrire un code qui détaille les opérations avec une mise en forme adaptée et qui scrolle quand t'appuies sur EXE. Et le but n'est pas de coder un truc utile mais de se former.
Citer : Posté le 05/06/2014 16:25 | #
Petit déterrage (quoique, mieux vaut que ce topic ne tombe pas dans l'oubli ) pour dire qu'il existe des raccourcis pour File, VarList et List qui donnent dans la taille en octets d'un élément "List " ou "File " une donnée complète du style "List1" ou "File3". Par exemple :
List1[2] // 2+3 = 5 octets
Les valeurs vont de 1 à 6.
C'est presque rien, mais c'est déjà ça.
Citer : Posté le 05/06/2014 16:44 | #
Ah pas mal!
C'est une vieille fonction qui date des vieilles Graph 25...
En fouillant l'autre fois dans absolument tous les menus j'avais trouvé des trucs sortis d'outre-tombe, comme ça par exemple!
Timeless Remix
Super Run & Jump
Timeless
Les tests vidéo de Marmotti
Timeless Remix Airwolf
Citer : Posté le 05/06/2014 17:13 | #
Raccourcis introuvables sur G100+
Ajouté le 05/06/2014 à 17:14 :
Et tnat que j'y suis, le lien Optimiser les GETKEY est mort
Citer : Posté le 05/06/2014 17:14 | #
Ah oui, peut-être. Je les ai trouvés au fin fond du catalogue, tout en bas après les symboles.
Citer : Posté le 05/06/2014 17:18 | #
Sur G100+, le catalogue est sous forme de menu comme le menu démarer de windows, et on a rien après les symboles
Citer : Posté le 05/06/2014 17:33 | #
C'est presque rien, mais c'est déjà ça.
Sur des fonctions aussi courantes que les "List" (après ça dépend du programme), ça me paraît énorme. Je vais remplacer tout ça et je vous communiquerai les gains de mémoire.
Citer : Posté le 05/06/2014 17:37 | #
Attention, ça ne fonctionne que pour les indexs de liste de 1 à 6 !
Citer : Posté le 05/06/2014 17:39 | #
Sur des fonctions aussi courantes que les "List" (après ça dépend du programme), ça me paraît énorme. Je vais remplacer tout ça et je vous communiquerai les gains de mémoire.
Ne t'emballe quand même pas, tu gagne juste un octet à chaque fois
Citer : Posté le 05/06/2014 17:43 | #
@Lephenixnoir Oui j'ai bien compris.
@Cartix Sur mon jeu, les listes sont la base du programme. Admettons que j'utilise 200 fois les listes comprises entre 1 et 6, là ça fait un changement.
(J'avais oublié que j'utilisais généralement une variable pour les numéros de liste. Inutile pour moi donc. )
Ajouté le 05/06/2014 à 17:56 :
J'ai tout de même économisé 108 octets. Non négligeable.
Citer : Posté le 05/06/2014 17:58 | #
Non maisz je sais que c'est pas inutile, mais ça reste pas grand chose (Ton programme, il en fait combien au total ?)
Citer : Posté le 05/06/2014 18:03 | #
Je suis très attaché à l'économie de mémoire.
Quand je peux grappiller deux octets je suis heureux, alors imagine 108...
Sans les matrices, pictures et listes, il pèse 37 044 octets.
Citer : Posté le 05/06/2014 18:09 | #
Quand je peux grappiller deux octets je suis heureux, alors imagine 108...
Sans les matrices, pictures et listes, il pèse 37 044 octets.
Ajouté le 05/06/2014 à 18:13 :
Par contre, ça permet de faire tenir certain calcul sur une seule ligne, dont c'est plus beau
Citer : Posté le 30/03/2015 11:25 | #
Je ne l'ai pas vu dans ce post et comme je l'ai trouvé par hasard suite à une "non erreur" qui m'a étonnée ; il n'est pas nécessaire de fermer le second guillemet avec la fonction Text ! sauf si vous avez placé un Disp "◢" à la fin !
Citer : Posté le 30/03/2015 11:27 | #
Oui j'avais vu ça aussi ça m'a étonné que ça plante pas, mais après, il considère que tout le retse et du texte du coup ça plante à un moment
Citer : Posté le 30/03/2015 12:13 | #
Ben, ça marche aussi avec les locate
Citer : Posté le 30/03/2015 12:15 | #
Et ça fait faire des gains de mémoire ?
Citer : Posté le 30/03/2015 12:28 | #
Ben 1 octet par " enlevé
Citer : Posté le 30/03/2015 12:31 | #
pas grand chse quoi
Citer : Posté le 30/03/2015 12:34 | #
C'est à force de pas grand chose que tu économise de la place
Mais oui, cette astuce seule n'est pas très significative.
Citer : Posté le 30/03/2015 12:41 | #
Oi c'est ce que je dis si tu fais toutes les optis, le gain est déja assz conséquent, la technique seule ne suffit pas