Dans cette sous-partie, vous verrez des fonctions très très utiles. Lisez attentivement, ça vous aidera pour la suite
Getkey (=>[SHIFT][VARS][F6][F4][F2])
Cette fonction est
in-dis-pen-sable, elle renvoie un nombre correspondant à la touche que presse l'utilisateur. Toutes les touches ont un code, à part la touche [AC/ON] (si on la presse, ça quitte le programme). Elle permettra à l'utilisateur d'agir sur le comportement du programme (on pouvait déjà le faire avec
?, mais ça n'est pas ce qu'il y a de plus
User Friendly).
Dans beaucoup de tutos, on vous donne une image de clavier de calculatrice avec les codes associés, et celui que vous êtes en train de lire dérogera à la règle (tant que j'aurai la flemme de la faire

).
Mais cette idée d'avoir une image de référence m'ennuie un peu, je préfèrerai vous voir les connaître par coeur le plus rapidement possible. Ce n'est pas mission impossible, car il y a une logique dans ces codes : ils sont composés de deux chiffres. Plus le chiffre des dixaines est grand (le maximum est 7, le minimum est 2), plus la touche est à gauche, et plus le chiffre des unités est grand (maximum 9, minimum 1), plus la touche est haute. Quand aucune touche n'est pressée, Getkey renvoie 0.
Le Getkey pose souvent des problèmes au débutant. Pourtant, il suffit de savoir compter de la gauche vers la droite et de haut en bas

. Pour commencer à utiliser Getkey, je vais vous proposer d'écrire un programme qui est devenu une vraie tarte à la crème : l'afficheur de Getkey. Le principe est simple : quand on appuie sur une touche, le code associé apparaît sur l'écran.
Autant vous mettre sur les rails de suite : utilisez une boucle

.
Si vous avez du mal, regardez ce code

:
Code : Autre - L'afficheur de Getkey1
2
3
4
5
6
7
8
9
10
11
12
| ClrText
-1->G
Locate 4,4,"LE GETKEY VAUT"
While 1
'boucle infinie, car 1 reste toujours un booléen "vrai"
Do
Getkey
LpWhile G=Ans
Ans->G
Locate 20,4," "
Locate 19,4,G
WhileEnd |
Comme c'est une boucle infinie, et qu'il n'y a ni
Stop ni
Break, la seule solution pour quitter est d'appuyer sur
[AC/ON]. Ce programme est un peu lourd par rapport à ce que certains auraient pu faire, mais il n'est pas trop moche, il est fonctionnel, et ne clignote pas (quand on fait trop de rafraichissement d'écran, c'est-à-dire affichage plus
ClrText en boucle).
FMEM (=>[OPTION][F6][F6][F3])
A vrai dire, FMEM n'est pas une fonction, mais un sous-menu, contenant des fonctions. Ces fonctions vous permettront d'interagir avec les emplacements mémoire qui sont au nombre de 20 sur Graph 85, chacun étant désigné par "f" plus leur numéro.
Les fonctions du sous-menu FMEM vous serviront principalement pour le copier-coller. Pour copier, faites STO (=>
[F1]) pour "stock" et pour coller, faites RCL (=>
[F2]) pour "recall", en choisissant à chaque fois l'emplacement mémoire qui vous convient.
Malheureusement, ce copier-coller n'est pas des plus fonctionnels : quand on édite un programme et qu'on choisit de faire un copier, cela copie la totalité du programme.
Avant de coller, assurez-vous que vous êtes bien en mode INS, afin de ne pas "écraser" le code de votre programme.
La Graph 85 dispose d'un bien meilleur copier-coller : on peut sélectionner du code. Ensuite, on peut soit supprimer la sélection, soit la copier, soit la couper. La Graph 100+ dispose aussi d'un copier-coller fonctionnel, mais un peu moins que celui de la 85 (pas de couper ni de suppression possible de la sélection).
On peut utiliser FMEM pour autre chose : vous pouvez stocker une expression littérale dans un un programme. Par exemple, vous pouvez demander à l'utilisateur de rentrer une formule littérale, qui sera enregistrée. Cette méthode peut être très utile si vous voulez faire un traceur de graphiques, par exemple. Cette utilisation ne fonctionne pas sur Graph 35+/65 (essayez, vous verrez

).
Pour stocker une expression toute faite dans un emplacement mémoire, tapez l'expression entre guillemets, et attribuez-la à l'emplacement qui vous convient (en tapant son nom : =>
[F3] sur Graph 85). Pour demander à l'utilisateur de taper sa formule, c'est encore plus simple : vous mettez le point d'interrogation puis l'attribution à un emplacement mémoire.
Voici un code récapitulatif (ne fonctionne que sur 85 !) :
Code : Autre - Exemple d'utilisation des emplacements mémoire1
2
3
4
5
6
7
8
| 0->A~B
"2A+3B"->fn1
fn1
'Ans vaut 0 (2×0+3×0=0)
10->A
A÷2->B
fn1
'Ans vaut 35 (2×10+3×5=35) |
Bref, évitez quand même d'utiliser FMEM comme ci-dessus, vu que ce n'est pas compatible avec Graph 35+/65 (même si je vais l'utiliser en TP

).
Stop (=>[SHIFT][VARS][F2][F4])
Cette fonction permet de quitter instantanément le programme. Voici un exemple un peu plus concret que les précédents :
Code : Autre - Exemple d'utilisation de Stop1
2
3
4
5
6
7
8
9
10
| Do
ClrText
"LE JEU EST EN PAUSE"
"1. CONTINUER"
"2. QUITTER"
"VOTRE CHOIX "?->A
Int Abs A->A
A=2=>Stop
LpWhile A!=1
'Suite du programme... |
N'hésitez pas à tester ce code. Personnellement, j'aime bien
Stop, car ça permet de se libérer de conditions inutiles, et ça simplifie le code

.