Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Tous | Tutoriels du Mercredi | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC

Retour à la liste des tutoriels
Tutoriel Casio : Manipuler les valeurs du Getkey
Tutoriel rédigé le : 2011-04-14 10:55  par Pie3636  Catégorie : Basic Casio  Calculatrice : Toutes

Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (24 commentaires)

Manipuler les valeurs du Getkey
Je voudrais faire part d'une astuce trouvée par un de mes amis pour transformer le Getkey en nombre (merci Christophe).
La formule
G-82/-10->A
donne le nombre 1, 2 ou 3 dans la variable A si on tape 1, 2 ou 3 (G représente le getkey). Ayant trouvé ceci, il a trouvé une formule qui marche pour les nombres de 1 à 9 :
G/-10+31Frac(G/10)+2->A

ou
(G-31MOD(G,10))/-10+2

ou encore
RndFix(((G-((Int(G/10))*10+1))*3-(Abs(52-G)/10)),0)->A

Ou encore, merci Drak, dans sa version la plus optimisée à ce jour :
-.1G+2+31Frac (.1G→A


Cette formule a un inconvénient : Le 0 est placé de telle manière qu'on ne peut pas l'intégrer. Avec un booléen, on résout facilement le problème :
(G≠71)(-.1G+2+31Frac (.1G→A



Getkey vers caractères alphabétiques

Merci à Drakalex pour la formule.

Aujourd'hui, pendant une heure peu intéressante de cours je me suis amusé à essayer de créer une formule permettant, grâce à la valeur GetKey pressée, de retourner un chiffre de 1 à 26 correspondant à la lettre pressée.
Et c'est chose réussie !

Voici le code "brut" pour ceux que ça intéresse :

Getkey[b]->[/b]G
(6-Frac (G/10)*10)(5+(Frac (G/10)*10>=[maroon]4[/maroon]))+8-Int G/10[b]->[/b]L


Et le code en plus clair (A correspond aux chiffres des dizaines de Getkey et B aux chiffre des unités)

Getkey[b]->[/b]G

Int G/10[b]->[/b]A
Frac (G/10)*10[b]->[/b]B

(6-B)(5+(B>=[maroon]4[/maroon]))+8-A[b]->[/b]L


Dans les deux cas, L correspond à la position dans l'alphabet de la lettre pressée. Si vous voulez récupérer directement la lettre et non le chiffre, il suffit d'exécuter un code comme ceci :

[gray]"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[/gray][b]->[/b]Str [maroon]1[/maroon]

Getkey[b]->[/b]G

Int G/10[b]->[/b]A
Frac (G/10)*10[b]->[/b]B

(6-B)(5+(B>=[maroon]4[/maroon]))+8-A[b]->[/b]L
[b][brown]Locate[/brown][/b] [maroon]1[/maroon],[maroon]1[/maroon],StrRight(StrLeft(Srt [maroon]1[/maroon],L),[maroon]1[/maroon])


Je ne sais pas si une formule de la sorte existe déjà, mais je suis fier de vous faire partager ma découverte qui peut s'avérer utile pour plusieurs programmes !


Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (24 commentaires)

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 121 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