Posté le 25/05/2011 22:12
Voici un programme avant l'optimisation :
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) :
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
Ils sont lent:
Ils bug si on les utilise mal:
Comment contourner ces problèmes ? Tout simplement en utilisant moins de labels et plus de boucles (boucle For, Do-LpWhile, While ...), le mieux c'est de ne plus utiliser de label
0.6+0.4A+0.2B->E s'écrit aussi .6+.4A+.2B->E ,dans ce cas les zéros sont inutiles, la calculatrice comprend que 0.6 = .6 
5(2A(3+A(4-A(5-A(A+B+C+D)))))->E s'écrit aussi 5(2A(3+A(4-A(5-A(A+B+C+D->E , dans ce cas les parenthèses ')' à la fin ne servent à rien
1/A s'écrit aussi A^-1, pour obtenir ^-1 il suffit d'appuyer respectivement sur les touches [shift] puis [)].
5000000000000 s'écrit aussi 5*10^12 ou encore 5E12, pour obtenir le 'E' il suffit d'appuyer sur la touche [x10^x], cette touche se trouve en bas de la calculatrice
{500,501,502->List 1 s'écrit aussi 500+{0,1,2->List 1, dans cet exemple chaque valeur de la List 1 est additionné par 500
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 206 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
Citer : Posté le 28/05/2012 11:39 | #
Dans une boucle :
5->A
Else
3->A
Ifend
est plus lent que
Ajouté le 28/05/2012 à 11:43 :
Edit : je peux recopier une partie de ton tuto pour en faire un pour la classpad sur casio-scene ?
Merci d\'avance
Ajouté le 28/05/2012 à 11:51 :
Edit2 : Il y a encore moyen d\'optimiser ton prog :
{25,5651,505,1,561,65,165,51,52,651,5->List 2
Prog \"GETKEY\"
Int .1Ans-2->A
5+3(A<3[DISP]
Text 1,1,\"SALUT\"
Prog \"GETKEY\"
Text 1,1,\"JE SUIS SMASHMASTER\"
Prog \"GETKEY\"
Text 1,1,\"JE SUIS MEMBRE DEPUIS 2009\"
Prog \"GETKEY\"
Text 1,1,\"J\'AIME PC \"
Prog \"GETKEY\"
Drawstat
Filename : GETKEY
Do
Getkey
LpWhile Not Ans
Cls
Citer : Posté le 28/05/2012 12:45 | #
Sur ma G65
5->A
Else
3->A
Ifend
Merci d'avance
Citer : Posté le 28/05/2012 12:50 | #
Ok. Merci pour le test, et pour l'autorisation de ré-utilisation
Par contre, va falloir que j'ajoute pas mal de trucs qui ne sont pas présent sur les autres calculatrices
Citer : Posté le 28/05/2012 13:05 | #
édit
If A>C
Then 5->C
Else 3->C
IfEnd
Next
//Vitesse sur la prizm underclocké à 54.4 Mhz : 9.31s
//Vitesse sur la G75 : 8.3s
3+2 (A>C->C
Next
//Vitesse sur la prizm underclocké à 54.4 Mhz : 7.84s
//Vitesse sur la G75 : 8.46s
Citer : Posté le 28/05/2012 13:18 | #
Ok. Merci
Ps : tu peux rajouter ces test dans le spoiler des conditions
Citer : Posté le 28/05/2012 13:24 | #
De rien, j'ai rajouté ces test dans le spoiler ;).
Ajouté le 28/05/2012 à 13:25 :
C\'est assez bizarre, cette astuce est bien plus rapide sur la prizm, mais pas sur les autres calculatrices.
Citer : Posté le 28/05/2012 13:38 | #
et sur la classpad, cette astuce ne fonctionne pas
Ajouté le 28/05/2012 à 13:42 :
edit : pour les listes : e8{1,2,3->List 1 ne marche pas ? Parce sur classpad, il ne faut ni le \'\'1\'\', ni le \'\'x\'\'
Citer : Posté le 28/05/2012 20:26 | #
pour les variables, je vient de voir qqu chose: en plus des variables traditionnelles, a0, a1 etc comprises, il y a le "X" utilisé dans les fonctions, ainsi que le "Theta" si vous modifiez les réglages de la calto avant d'éditer vos programmes => vous utilisez "X", puis changez le mode de graphique en polaire, et utilisez le "theta".
Citer : Posté le 28/05/2012 21:05 | #
Citer : Posté le 30/05/2012 14:29 | #
génial ce tuto! mon optimisation de code va s'en retrouver améliorée
Calcu: graph 35+ tweaké
Transformez votre graph 35+ SH4
C'est par ici!
Business
Swords and Sandals 2
2048
Citer : Posté le 29/06/2012 15:34 | #
Petite astuce qui peut aider quelque un d'entre vous :
On a un menu avec un curseur '=>'
Locate 3,1,"CHOIX 1" [green]//on affiche le menu avec les choix[/green]
Locate 3,2,"CHOIX 2"
Locate 3,3,"CHOIX 3"
Do
Locate 1,A,"=>" [green] //On affiche le curseur[/green]
Getkey->G
G=28=>A-1->A [green] //si on appuie sur la touche du haut alors le curseur monte[/green]
G=37=>A+1->A [green] //si on appuie sur la touche du bas alors le curseur descend[/green]
A>3=>1->A [green] //si le curseur descend trop bas alors on le place en haut de l'écran (au niveau de "CHOIX 1")[/green]
A<1=>3->A [green] //si le cuseur monte trop haut (ou sort de l'écran) alors on le place au niveau de "CHOIX 3"[/green]
LpWhile G!=31
A>3=>1->A : A<1=>3->A est un peu long, on peut optimiser ça par 1+MOD(A-1,3->A
1->A
Locate 3,1,"CHOIX 1"[green] //on affiche le menu avec les choix[/green]
Locate 3,2,"CHOIX 2"
Locate 3,3,"CHOIX 3"
Do
Locate 1,A,"=>" [green] //On affiche le curseur[/green]
Getkey->G
G=28=>A-1->A [green] //si on appuie sur la touche du haut alors le curseur monte[/green]
G=37=>A+1->A [green] //si on appuie sur la touche du bas alors le curseur descend[/green]
1+MOD(A-1,3->A
LpWhile G!=31
Syntaxe : Min+MOD(PositionDuCurseur-Min,Max-(Min-1)->PositionDuCurseur
Citer : Posté le 29/06/2012 15:39 | #
ca fait quoi la commande MOD?
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous
)Arcuz !Citer : Posté le 29/06/2012 15:44 | #
La commande MOD donne le reste de la division euclidienne entre deux nombres
My program is not working, I have no idea why.
My program is working, I have no idea why.
Citer : Posté le 29/06/2012 15:46 | #
MOD
Exemple : MOD(5,2) = 1 car 5=2*2+1 (1 est le reste de la division euclidienne)
Citer : Posté le 29/06/2012 16:04 | #
Belle astuce
Citer : Posté le 29/06/2012 20:54 | #
Le modulo est un des 5 opérateurs numériques de base du C, C++, PHP, JavaScript et j'en passe. Très utile quand on y pense.
Vous n'avez jamais fait d'algo sur le PGCD ?
Citer : Posté le 30/06/2012 00:23 | #
Il y a déjà une fonction pour ça, quand tu la découvres il n'y a plus aucun intérêt...
My program is not working, I have no idea why.
My program is working, I have no idea why.
Citer : Posté le 30/06/2012 02:45 | #
Pour le PGCD, je m'étais fait trois trucs:
1) un programme avec l'alto d'Euclide par division successives
2) ensuite, je me suis dit que par soustractions c'est serai plus simple
3) pour finir, j'ai trouve la fonction PGCD
Citer : Posté le 30/06/2012 11:58 | #
Et il y a un algo pour ça dans le manuel casio
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.