RECUPERATION DES ENTREES FAITES AU CLAVIER
Il est pratique de pouvoir recevoir des données durant l'exécution d'un programme. Les instructions read et readln vous permettent de lire des caractères provenant du clavier en les plaçant directement dans les variables que vous spécifierez.

Le programme qui suit lit deux nombres au clavier, les stocke dans les variables spécifiées, et les imprime ensuite à l'écran.


    program READDEMO (input, output);
    var     nombre1, nombre2 : integer;
    begin
        writeln('Veuillez introduire au clavier deux nombres separes par un espace');
        read( nombre1 );
        read( nombre2 );
        writeln;
        writeln('Nombre vaut ', nombre1 , '   Nombre2 vaut ', nombre2 )
    end.

L'exécution du programme provoquera l'affichage du message

    Veuillez introduire au clavier deux nombres separes par un espace
Le programme attendra ensuite que vous introduisiez deux nombres. Si vous le faites et appuyez ensuite sur la touche <RETURN>, en faisant, par exemple :

    237  64<enfoncement de la touche <return>>
le programme prendra ces deux nombres, stockera la valeur 237 dans la variable nombre1 et la valeur 64 dans la variable nombre2, et continuera son exécution. Il affichera finalement

    Nombre vaut 237   Nombre2 vaut 64


Les différences entre READ et READLN
La instruction readln passe toutes les autres valeurs qui seraient sur la même ligne, alors que read ne le fait pas. Si l'on remplaçait dans le programme précédent l'instruction read par readln et qu'on utilisait les mêmes entrées, le programme stockerait la valeur 237 à nombre1, ignorerait tout le reste de la ligne, et attendrait que l'utilisateur introduise une autre valeur qu'il stockerait dans la variable nombre2.

La touche <return> est interprêtée comme si c'était un espace par read, et ignorée par readln.


TEST INDIVIDUEL SUR READ
En supposant que les déclarations suivantes ont été réalisées

    var  C1, C2, C3, C4, C5, C6 : char;
et que l'utilisateur introduise au clavier

    ABCDE
Que stockeront les instructions suivantes dans les différentes variables ?

    read( C1 );                           C1 = __
    read( C2 ); read( C3 );               C2 = __  C3 = __
    read( C4, C5, C6 );                   C4 = __  C5 = __  C6 = __


cliquez ici pour voir les bonnes réponses
TEST SUR READLN
En supposant que les déclarations suivantes ont été réalisées

    var  C1, C2, C3, C4, C5, C6 : char;
et que l'utilisateur introduise au clavier

    ABCDE
A CHAQUE LIGNE. Que stockeront les instructions suivantes dans les différentes variables ?

    readln( C1 );                             C1 = __
    readln( C2 ); readln( C3 );               C2 = __  C3 = __
    readln( C4, C5, C6 );                     C4 = __  C5 = __  C6 = __
    readln;                                   _________________________

Cliquez ici pour voir les bonnes réponses

Copyright B Brown/P Henry/CIT, 1988-1995. Tous droits réservés.
Copyright UCL/INGI, 1995. Tous droits réservés.
URL: http://candix1.fsa.ucl.ac.be/langages/Pascal/tutoriel/pas011.htm