Langage Pascal/Lire et écrire avec read et write

Une page de Wikiversité.


Lire et écrire avec read et write
Computer-aj aj ashton 01.svg
Chapitre 3
Leçon : Langage Pascal
Chap. préc. : Variables et affectation
Chap. suiv. : Les tableaux
Icon falscher Titel.svg

En raison de limitations techniques, la typographie souhaitable du titre, « Langage Pascal : Lire et écrire avec read et write
Langage Pascal/Lire et écrire avec read et write
 », n'a pu être restituée correctement ci-dessus.

[modifier] Lire et écrire avec read et write

Tout programme qui se respecte doit pouvoir interagir avec l'utilisateur. Il doit donc pouvoir lire ce que lui donne l'utilisateur, et lui écrire des messages. Tout ceci est possible avec les procédures "read" et "write".

var
    a, b : integer;
 
Begin
    read(a);
    read(b);
    write(a + b)
End.

Ce code attend donc qu'on lui donne 2 entiers via l'entré standard (habituellement le clavier) et écrit le résultat de l'addition sur la sortie standard (habituellement l'écran).

[modifier] Différence entre write et writeln

Si on remplace write par writeln, le programme ajoute un saut de ligne après l'affichage de la chaine de caractère. Si on désire simplement sauter une ligne, il est possible d'appeler writeln sans paramètre.

Begin
    writeln('1ere ligne');
    writeln;
    write('2eme ligne')
End.

Dans cet exemple, le programme va afficher 1ere ligne puis sauter une ligne avec un seul appel à writeln. Ensuite, un nouveau saut de ligne est effectué, avant d'afficher 2eme ligne sans ajouter un dernier saut de ligne.

[modifier] Différence entre read et readln

Lorsque l'utilisateur entre des valeurs sur une même ligne de l'entrée standard, read lit la 1ère valeur et l'affecte à la variable qui lui a été envoyé en paramètre. Readln fait quelque chose en plus, il supprime ce qui suit.

Reprenons le code précédent :

var
    a, b : integer;
 
Begin
    writeln('Je veux deux entiers.');
    read(a);
    read(b);
    write(a + b)
End.

Le programme demande qu'on lui donne deux entiers grâce à deux read. Dans ce cas, les deux possibilité suivantes donne un résultat identique.

Read01.png

Read02.png

Alors qu'avec readln seul la 2ème possibilité aurait été possible, car après avoir lu ce qu'il a besoin (juste le premier entier) il supprime le reste de ce qui a été fournit par l'utilisateur. Il imposerai ainsi une deuxième saisi.