Tous | Tutoriels du Mercredi | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graphs 35 à 100
Graph 25
Graphs 75/85/95 (SD)
Graph 100(+)
Classpad 300/330 (+)
Fx-CG 10/20
Fx-CP 400
Graph 90+E

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 v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 48 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd