13 Fév 2008
Cours no 03 de PASCAL5. Les variables en Pascal
Les variables représentent des emplacements en mémoire dont le contenu peut changer pendant l'exécution du programme. Toute variable utilisée doit être déclarée explicitement pour connaitre son type. Les deux types utilisés pour les nombres sont REAL et INTEGER.
Exemple : VAR
x : Real;
i : Integer ;
IL est possible de déclarer plusieurs identificateurs avec le même type :
VAR
A, B, C, Xl, R : Real;
I, J, K, S1 : Integer ;
Delta, Epsilon: Real ;
Règles d'une déclaration :
1. V AR est un mot réservé de Pascal, il apparaît une seule fois dans le programme pour faire toutes les déclarations de variables. .
2. INTEGER et REAL sont des identificateurs prédéfinis.
3. Un même identificateur de variable ne peut apparaître qu'une seule fois, il ne peut figurer une déclaration de constante.
4. Quand la variable est déclarée, sa valeur est indéfinie.
5. Les identificateurs de variables doivent être choisis judicieusement.
6. Les variables arithmétiques peuvent être utilisées dans les expressions arithmétiques tout comme les constantes.
6. L'instruction d’affectation de Pascal
Lors de la déclaration d'une variable, l'emplacement mémoire qui lui est alloué ne contient pas de valeur définie. Ainsi la déclaration: Var I : Integer ;
réserve pour la variable I un emplacement mémoire suffisant pour contenir toute valeur entière valide en Pascal mais ne lui donne pas de valeur.
Pour donner une valeur à une variable, on utilise l'instruction d'affectation dont la syntaxe est :
Variable := expression;
Exemple : I := l ;
Delta := B * B – 4 * A * C ;
Surface := PI * R * R ;
Le signe ' :=' est utilisé en Pascal pour désigner 1'affectation.
Remarques : 1. Le symbole d'affectation ':=' signifie que le résultat de l'expression qui se trouve à droite est affecté à la variable qui se trouve à gauche.
2. Le résultat de l'expression doit être d'un type compatible avec celui de la variable qui reçoit ce résultat. Après l'affectation, la variable perd la valeur qu'elle contenait avant l'affectation.
3. La variable située à gauche de ':=' peut elle même apparaître dans l'expression à droite.
Exemple : - F := F+I ;
S := S+X ;
I := I+ 1 ;
4. Pour permuter les valeurs affectées à deux variables, il est nécessaire d’utiliser une variable temporaire: T := V1 ;
V1 := V2 ;
V2 := T ;
Cependant, il est possible d'affecter une valeur (ou expression) entière à une variable réelle: il y a une conversion automatique de la représentation entière à la représentation réelle proprement dite.
Exemple : Var
A : Real;
I : Integer ;
Begin
A :=I+3;
End.
7. Lecture de données à partir du clavier
Il n'est pas toujours possible d'assigner (d'affecter) des valeurs aux variables dans le programme. En effet, pour modifier la valeur assignée on est obligé de modifier l'instruction contenant cette affectation. Pascal permet d'éviter cet inconvénient avec la lecture de données externes.
Dans ce cas, les données nécessaires à l'exécution du programme ne figurent pas dans le texte du programme mais elles sont introduites, par l'utilisateur, à la demande de l'ordinateur, pendant l'exécution du programme. Ceci est possible grâce aux instructions READ et READLN dont le format est: READ (liste de Variable) ;
READLN (liste de variables) ;
Exemple: READ(A, B, C);
READLN(A, B, C);
READ(A) ; READ(B) ; READ( C) ;
Remarques:
- Les données doivent être séparées par des espaces lors de leur entrée,
- Différence entre READ et READLN :
Des instructions READ consécutives lisent sur la même ligne tant qu'il y a des données à lire. Ainsi : READ (A) ; READ (B, C) ; ó READ(A, B, C) ;
Une instruction READLN lit sur la ligne, mais passe à la ligne suivante dès que la lecture de ses variables est faite.
Exemple:
Program Lecture;
Var
A, B, C : INTEGER ;
Begin
Read (A) ;
Read (B) ;
Read (C);
Writeln (A, B, C) ;
End.
Entrée au clavier
Affichage sur l’écran
1 2 3
4
1 2 A $
5
1 2
3 4 5
1 2 3 4 5
6 7 8
-Il est illégal de fournir des données numérique sous forme d'expressions (1/2, 3*4, ...)
- Evidemment les données fournies doivent être compatibles en type aux variables qui apparaissent des READ ou READLN.
8. Edition du contenu d'une variable à l'aide de Write ou Writeln
L'instruction WRITE ou WRITELN peut être utilisée pour éditer le contenu d'une variable (ou de plusieurs variables), Le format utilisé est alors : WRITE (liste de variables) ; ou WRITELN (liste de variables) ;
Exemple : WRITELN (A, B, C) ;
Mais afin de permettre une lecture aisée des résultats Sans avoir à relire le programme pour pouvoir établir la correspondance entre les variables et les résultats affichés sur l'écran, il est préférable d'insérer un message avant chaque variable. On alors le format :
Write ('message1’,variable1, 'message2', variable2,… ) ;
Exemple: Writeln(' A=',A,'B=', B, 'C=',C);
L'instruction Write ou Writeln permet d'effectuer une édition formatée, c'est à dire en précisant le nombre de places sur lesquelles la valeur de la variable sera affichée. S'il n'y a pas de précision concernant le format, l'édition des résultats numériques se fera toujours sur un nombre de caractères constant.
8.1. Edition formatée des entiers
La syntaxe est la suivante: Write (V :N) ;
V : identificateur (nom) de la variable à éditer,
N : nombre entier qui précise le nombre de caractères qui seront utilisés pour afficher V.
Si N est trop grand par rapport à la variable, l'édition de V est cadrée à droite, les caractères inutilisé sont remplis de blancs.
Exemple: V:= 15;
WRITELN(V :6) ;
Si par contre, N est trop petit, V est affichée avec tous ses chiffres, il n 'y a pas de troncature.
8.2. Edition formatée des réels
Les réels sont normalement affichés en forme virgule flottante: Pour les afficher sous forme de partie entière et partie fractionnaire en précisant le nombre de chiffres à utiliser, on utilise le format suivant :
WRITE (V : N1 :N2) ;
N1 : le nombre total de caractères à utiliser pour afficher V,
N2 : le nombre de caractères utilisés pour afficher la partie fractionnaire.
Exemple : PI:= 3.14159;
Write (PI :10 :5) ;
Write (PI :8 :3) ;
Le signe du nombre et le point décimal comptent dans total de N1 caractères.
Il est possible de préciser le nombre de caractères sur lesquels l'écriture d'une chaîne de caractères se fait (pour laisser des espaces blancs à gauche), on utilise le format suivant :
Write ('message' :N) ;
Exemple: Write ('TP Informatique' :40) ;