Langage Pascal/Lire et écrire avec read et write

Une page de Wikiversité.
Aller à : navigation, rechercher
Début de la boite de navigation du chapitre
Lire et écrire avec read et write
Icône de la faculté
Chapitre no 3
Leçon : Langage Pascal
Chap. préc. : Variables et affectation
Chap. suiv. : Les tableaux
fin de la boite de navigation du chapitre
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.

Lire et écrire avec (read et write)[modifier | modifier le wikicode]

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. En mode console, 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).

Différence entre write et writeln[modifier | modifier le wikicode]

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.

Différence entre read et readln[modifier | modifier le wikicode]

Lorsque l'utilisateur entre des valeurs sur une même ligne de l'entrée standard, read lit la 1re 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.

Alors qu'avec readln seul la 2e 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 saisie.