Chapitre 8 — Interaction avec l'Utilisateur
Les exemples précédents, comme notre programme de cercle, ont une faille évidente.
Pour les faire « tourner », les utilisateurs doivent modifier le code
manuellement et mettre des valeurs nouvelles dans les variables initiales. On ne sait pas pourquoi,
mais la plupart des utilisateurs d'ordinateurs, même ceux qui croient qu'ils en connaissent beaucoup
sur les ordinateurs, pâlissent en imaginant qu'ils doivent programmer véritablement et préfèreraient
payer pour que quelqu'un le fasse à leur place. C'est bien étrange, mais ça m'a permis d'avoir
du travail pendant longtemps. Ce dont nous avons besoin, c'est une façon de permettre à l'utilisateur
d'entrer la valeur, par exemple, du rayon de notre cercle. De cette façon, les petits chéris
n'auront pas besoin de se salir les mains avec du
CODE. Ceux qui ont créé le
BASIC y ont déjà pensé.
Essayez ceci :
INPUT A$
PRINT "Vous avez tapé : ";A$
END
Lorsque le programme est lancé, l'écran reste fixe, avec un point d'interrogation, jusqu'à
ce que vous tapiez quelque chose et que vous pressiez la touche
Entrée .
Après cela, l'exécution continue normalement. Formidable ! Nous pouvons maintenant modifier
notre programme de cercle pour le rendre interactif :
REM Aire d'un cercle
INPUT Rayon
Aire=PI*Rayon^2
PRINT "L'aire de votre cercle est ";Aire
END
J'ai mis à jour la ligne 3 pour inclure les choses dont nous avons déjà parlé. Ce serait bien,
pourtant, que le programme dise à l'utilisateur ce qu'il attend. Après tout, encore moins que d'écrire
du code, les utilisateurs n'aiment pas lire les manuels. (La plupart des programmeurs non plus, d'ailleurs.)
INPUT
est une autre commande, comme
PRINT,
avec de nombreuses variantes. Pour commencer, vous pouvez mettre une chaîne de texte pour dire
à l'utilisateur ce que le programme attend :
INPUT "Quel est le rayon"; Rayon
Si vous ne mettez pas le point-virgule ( ; )
« BB4W »
n'affichera pas le point d'interrogation, aussi n'avez-vous pas besoin
de rédiger votre phrase comme une question :
INPUT "Veuillez donner le rayon : " Rayon
Et puis, il est possible de demander plus d'une variable à la fois, à condition de les séparer
par des virgules :
INPUT "Longueur et largeur (mètres) " Lon,Lar
PRINT "Surface du rectangle : ";Lon*Lar;" m²"
END
Vous pouvez donner les valeurs séparées par des virgules ou par
Entrée . Le
BASIC
continuera à attendre vos réponses jusqu'à ce qu'il ait assez de données pour les assigner
aux variables spécifiées. Il est aussi possible de partager la demande de données :
INPUT "Longueur : " Lon " largeur : " Lar
Enfin, bien qu'il y ait davantage d'explications dans
l'Aide en ligne,
vous pouvez poser vos questions n'importe où sur l'écran en utilisant
TAB :
INPUT TAB(5,5);"Quel est votre nom "; N$
PRINT TAB(5,6);"Bonjour, ";N$
END
INPUT LINE
Il existe une variante de
INPUT
qu'il vaut la peine de mentionner à ce point. En incluant le mot-clé
LINE,
nous pouvons faire accepter au
BASIC
tout ce que l'utilisateur tapera au clavier, pour le stocker dans une variable chaîne. D'habitude,
INPUT
enlève les espaces du début et s'arrête à la première virgule après le texte initial. En se servant de
INPUT LINE,
on peut passer outre ce comportement. Illustrons-le ainsi :
REM INPUT comparé à INPUT LINE
INPUT "Votre adresse complète : " Adr$
PRINT "Adresse avec INPUT : ";Adr$
INPUT LINE "Votre adresse complète : " Adr$
PRINT "Adresse avec INPUT LINE : ";Adr$
END
Ici, c'est tout à fait bonnet blanc et blanc bonnet : une variante n'est pas meilleure
qu'une autre ; cela dépend de ce que vous voulez.
Un truc : Pour entrer des nombres
|
En utilisant
INPUT et
INPUT LINE,
l'utilisateur doit faire preuve d'intelligence dans son choix pour l'entrée. Si vous attendez un nombre
et qu'une chaîne est entrée à la place, le
BASIC renverra zéro.
Une bonne façon d'éviter les embûches est d'utiliser une chaîne pour enregistrer l'entrée,
et de la convertir ensuite en nombre à l'aide de
VAL.
En n'oubliant pas ceci,
INPUT
sera une bonne façon d'écrire des programmes interactifs.
|
Exercices
08.1
Le volume d'un cylindre est
PI*Rayon^2*Hauteur.
Écrivez un programme qui demande le rayon et la hauteur pour en tirer le volume.
08.2
Faites un « prompt » (c'est-à-dire une demande) avec
INPUT
pour entrer votre nom complet.
Affichez le nombre de caractères dans le nom (y compris les espaces).
Fin du Chapitre 8
|