|
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)
|
|