INPUT
DESCRIPTION.
L'instruction INPUT permet de saisir des données à l'aide du clavier. Si la valeur attendue, doit ou peut contenir des caractères de séparations tels que des virgules ou des espaces, on utilisera la combinaison d'instructions INPUT LINE.
Voir l'instruction INPUT # qui permet de lire de contenu d'un fichier.
SYNTAXE.
INPUT kvaleura , ... , kvaleurn
INPUT kvaleura$ , ... , kvaleurn$
INPUT "chaine de caractères" , kvaleur
INPUT "chaine de caractères" , kvaleur$
INPUT LINE kvaleura , ... , kvaleurn
INPUT LINE kvaleura$ , ... , kvaleurn$
INPUT LINE "chaine de caractères" , kvaleur
INPUT LINE "chaine de caractères" , kvaleur$
REMARQUES.
L'instruction INPUT stoppe momentanément l’exécution du programme est attends que l’utilisateur appuie sur la touche entrée (enter, return). Toutes les touches du clavier qui ont été enfoncées depuis la mise en pause par l'appel de l'instruction INPUT, à l'exception de la touche entrée, seront disposées comme valeur dans la ou les variables précisées à la suite de l'instruction INPUT.
Le type des variables doit être compatible avec les symboles saisis par l'utilisateur.
Un point d'interrogation (?) sera affiché pour indiquer que le programme attend une saisie depuis le clavier, si la variable n'est pas :
- précédée d'une chaine de caractères, même s'il s'agit d'une chaine vide "" ;
- séparée de la chaine de caractères par une virgule.
INPUT knom$ : REM - affiche un ?
INPUT "Votre nom " , knom$ : REM - affiche Votre nom ?
INPUT "Votre nom " knom$ : REM - affiche Votre nom
Une même instruction INPUT peut attendre plusieurs saisies. Dans ce cas, l'utilisateur peut :
- saisir les données une à une en tapant sur la touche entrée entre chaque saisie ;
- saisir plusieurs données en séparant chaque valeur par une virgule avant d'appuyer sur la touche entrée.
Par exemple pour répondre à INPUT "Votre nom, votre prenom puis un nombre " , knom$ , kprenom$ , kage , vous pouvez saisir, après le ? :
- NERD, Origine, 12 puis la touche entrée ou ;
- NERD, Origine puis touche entrée 12 puis touche entrée ou ;
- NERD puis touche entrée Origine, 12 puis touche entrée ou ;
- NERD puis touche entrée Origine puis touche entrée 12 puis touche entrée.
Seules les suites de variables non précédées d'une chaine de caractères peuvent être saisies en une seule fois.
Les chaines de caractères présentes dans une instruction INPUT peuvent être positionnées précisément dans la surface textuelle en utilisant l'instruction TAB() devant elles.
INPUT TAB( 3 , 5 ) "Votre nom " , knom$ , TAB( 12 , 17 ) "Votre prenom " , kprenom$
INPUT TAB( 18 , 9 ) "Entrez un nombre " , knombre
Les variables attendant des chaines des caractères, c'est-à-dire avec le suffixe $, seront affectées tel que la saisie, par contre si une valeur numérique est attendu et qu'une chaine de caractères est saisie par l'utilisateur, la valeur 0 sera affectée à la variable.
INPUT "Entrez des symboles " , ksymbole$
INPUT "Entrez un nombre " , knombre
PRINT ksymbole$ , knombre
retourne, par exemple :
Entrez des symboles ? azerty
Entrez un nombre ? azerty
azerty 0
Ce comportement permet de ne pas retourner une erreur qui interromprait le programme si une saisie n'est pas du type attendu. Pour s'assurer que l'utilisateur a bien saisi une valeur numérique, le programme devra demander une chaine de caractère est s'assurer qu'elle est bien convertible dans le type numérique souhaité avec la fonction VAL( ) ou mieux la fonction EVAL( ) qui acceptera des symbole mathématique .
REPEAT
INPUT "Entrez un nombre " , knombre$
knombre = EVAL( knombre$ )
UNTIL knombre <> -1
PRINT knombre$ , knombre
Si la chaine de caractères que l'utilisateur doit saisir doit, ou pourrait, comporter des symboles de séparation, tels qu'une virgule, il faudra utiliser la combinaison d'instruction INPUT LINE pour faire la demande de saisie.
INPUT LINE "Entrez NOM , prenom svp " , ksaisie$
Voir les instructions INKEY et INKEY$ qui retourne la valeur de la dernière touche enfoncée après une pause.
Voir les instructions GET et GET$ qui attende que l'utilisateur appuie sur une touche.
Voir le module dlglib.bbc qui propose des procédures et des fonctions pour la création de boites de dialogue.
RUBRIQUE.
Les types de variables pour plus de détails sur la création et l'utilisation des variables.
EXEMPLES.
INPUT "Entrez nom " , knom$
PRINT "Bonjour " ; knom$
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.