Les questionnaires
Dans cette page, vous apprendrez à utiliser les fonctions INKEY$ et VAL pour configurer le test par vous-même.
Regarder le clavier (la fonction INKEY$)
En utilisant un mot nommé INKEY$, vous pouvez faire en sorte que l'ordinateur surveille, chronomètre ou teste constamment ce que vous tapez. Sa syntaxe est :
INKEY$ |
Renvoie la touche actuellement enfoncée ou, si aucune touche n'est enfoncée, ne renvoie rien ("").
Tapez et exécutez ce programme :
INKEY$ vérifie si vous appuyez sur une touche. Il le fait en une fraction de seconde. Au moins les 20 premières fois qu'il vérifie, vous n'avez rien appuyé sur ("").
La ligne 10 étiquette la touche sur laquelle vous appuyez comme A$. Ensuite, l'ordinateur prend une décision :
- Si A$ vaut rien (""), il affiche «VOUS N'APPUYEZ SUR RIEN» et retourne à la ligne 10 pour vérifier à nouveau le clavier.
- Si A$ est égal à quelque chose (tout sauf ""), l'ordinateur va à la ligne 50 et affiche la touche. (La notation <> signifie «différent de».)
Ajoutez cette ligne et exécutez le programme :
- 60 GOTO 10
Peu importe à quelle vitesse vous êtes, l'ordinateur est plus rapide ! Effacez la ligne 30 (DEL 30) pour voir sur quelles touches vous appuyez.
Battez l'ordinateur (un exemple de INKEY$)
Tapez ce programme :
Voici comment fonctionne le programme :
- Les lignes 10, 20 et 30 indiquent à l'ordinateur d'afficher deux nombres aléatoires et de vous demander leur somme.
- La ligne 40 met T à 0. T est une minuterie.
- La ligne 50 vous donne votre première chance de répondre à la question.
- La ligne 60 ajoute un à T, le temporisateur, T est maintenant égal à 1. La prochaine fois que l'ordinateur arrive à la ligne 60, il ajoute à nouveau un au temporisateur pour que T soit égal à 2. Chaque fois que l'ordinateur exécute la ligne 60, il ajoute un à T .
- Ligne 70 bips.
- La ligne 80 indique à l'ordinateur que vous avez 15 chances de répondre. Une fois que T est égal à 15, le temps est écoulé. L'ordinateur vous insulte avec les lignes 200, 210 et 220.
- La ligne 90 dit que si vous n'avez pas encore répondu, l'ordinateur doit revenir en arrière et vous donner une autre chance.
- L'ordinateur n'accède à la ligne 100 que si vous répondez. La ligne 100 le renvoie pour un autre problème.
Comment pouvez-vous faire en sorte que l'ordinateur vous accorde trois fois plus de temps pour répondre à chaque question ? Réponse : En modifiant cette ligne :
- 80 IF T=45 THEN 200
Vérification de vos réponses (La fonction VAL)
Comment pouvez-vous demander à l'ordinateur de vérifier si votre réponse est correcte ? Cela fonctionnerait-il ?
Si vous exécutez ce programme (et répondez à temps), vous obtenez ce message d'erreur :
?TM ERROR IN 100 |
C'est parce que vous ne pouvez pas rendre une chaîne de caractères (A$) égale à un nombre (X + Y). D'une manière ou d'une autre, vous devez changer A$ en un nombre. BASIC a une fonction pour cela appelée VAL. Sa syntaxe est :
VAL(string) |
Renvoie la valeur numérique de la chaîne de caractères string.
Changez la ligne 100 en tapant :
VAL(A$) convertit A$ en sa valeur numérique. Si A$ est égal à la chaîne de caractères "5". VAL(A$) est égal au nombre 5. Si VAL(A$) est égal à la chaîne de caractères "C", VAL(A$) est égal au nombre 0. ("C" n'a pas de valeur numérique.)
Pour rendre le programme plus difficile, modifiez ces lignes :
Ajoutez ensuite ces lignes :
Un test de dactylographie informatique (un exemple de INKEY$)
Voici un programme chronométrant la vitesse à laquelle vous tapez :
- 10 CLS
- 20 INPUT "APPUYEZ SUR <ENTER> LORSQUE VOUS ETES PRET A SAISIR CETTE PHRASE"; E$
- 30 PRINT "C'EST MAINTENANT LE TEMPS POUR TOUS LES HOMMES BONS"
- 40 T=1
- 50 A$=INKEY$
- 60 IF A$=""THEN 100
- 70 PRINT A$;
- 80 B$=B$+A$
- 90 IF LEN(B$)=32 THEN 120
- 100 T=T+1
- 110 GOTO 50
- 120 S=T/74
- 130 M=S/60
- 140 R=8/M
- 150 PRINT
- 160 PRINT "VOUS TAPEZ A -- " R " -- MOTS/MINUTES"
La ligne 40 met T, la minuterie, à 1.
La ligne 50 vous donne votre première chance de taper une touche (A$). Si vous n'êtes pas assez rapide, la ligne 60 envoie le programme à la ligne 100 et en ajoute un à la minuterie.
La ligne 70 affiche la touche que vous avez tapée.
La ligne 80 forme une chaîne de caractères nommée B$. Chaque fois que vous tapez une touche (A$), le programme l'ajoute à B$. Par exemple, si la première touche que vous saisissez est "C", alors :
- A$="C"
et
- B$=B$+A$
- B$=""+"C"
- B$="C"
Si la touche suivante que vous tapez est "'", alors :
- A$="'"
et
- B$=B$+A$
- B$="C"+"'"
- B$="C'"
Si la troisième clé que vous avez tapée est "E", alors :
- A$="E"
et
- B$="C'"+"E"
- B$="C'E"
Lorsque la longueur de B$ est de 32 (la longueur de C'EST MAINTENANT LE TEMPS POUR TOUS LES HOMMES BONS), le programme suppose que vous avez fini de taper la phrase et va à la ligne 120 pour calculer vos mots par minute.
Les lignes 120, 130 et 140 calculent votre vitesse de frappe. Ils divisent T par 74 (pour obtenir les secondes) et S par 60 (pour obtenir les minutes). Ils divisent ensuite les huit mots par M pour obtenir les mots par minute.
COMMANDES INKEY$ VAL |
CONCEPTS Lecture du clavier Conversion de valeurs |