IDENTIFICATEURS, VARIABLES, TYPES PREDEFINIS
ET CONSTANTES

Identificateurs

Définition

Les noms du programme et des variables sont appelés des identificateurs. Le programmeur est libre de les choisir, mais il doit cependant respecter certaines règles de syntaxe:

  • L'identificateur doit être une combinaison de lettres et de chiffres
  • Le premier caractère doit être une lettre
  • Les caractères spéciaux, les espaces et les lettres accentuées sont interdites

Voici quelques exemples:

CORRECT INCORRECT
Alice

BlackBird

RS232

Likely

Au_Debut

Au-Delà

7eme

SYS$READ

Pas à pas

Révision

Limitations et particularités

  • A la différence du C, le langage ne fait pas la différence entre les majuscules et les minuscules (Nom, NOM et nom peuvent référencer la même valeur).
  • Le nombre de signes significatifs dépend de l'implémentation
  • Certains caractères spéciaux sont admis, tels que le "Underline"

Les mots réservés

Ces mots sont réservés au langage. Ils ont une signification bien déterminée. Leur rôle est de structurer le programme. On les appelle aussi des mots clés. Il est impossible des les employer à d'autres fins.

Exemples de mots réservés: BEGIN, END, PROGRAM, AND

Les identificateurs ou types prédéfinis

Un certain nombre d'identificateurs sont prédéfinis dans le langage Pascal et peuvent être utilisés sans déclaration préalable. Ils ont une signification bien déterminés et définissent un ensemble de facilités permettant l'accès à des utilitaires tels que les fonctions mathématiques, ou la saisie et l'affichage de valeur. Il est toutefois possible de les redéfinir pour les utiliser à d'autres fins, mais c'est fortement déconseillé.

Exemples d'identificateurs prédéfinis: Write, ReadLn, Sin, Odd, INTEGER, STRING

La liste des types prédéfinis du Pascal sont décrits plus bas...

Variables

Définition

Une variable représente une information pouvant être manipulée et modifiée par le programme.

Le type

La nature de l'information représentée par une variable est définie par un type. Les types les plus utilisés sont:

  • Les nombres entiers (INTEGER)
  • Les nombres réels (REAL)
  • les caractères (CHAR)
  • Les chaînes de caractères (STRING)

Déclaration

La déclaration des variables s'effectue dans la "section déclarative" d'un programme. Cette section est introduite par le mot réservé VAR.

ENTETE PROGRAM Addition;
SECTION
DECLARATIVE
VAR {Section de déclaration des variables}
  Somme     : INTEGER;
  Nombre1,
  Nombre2  : INTEGER;
BLOC
D'INSTRUCTIONS
BEGIN
  
  {Les variables déclarées sont maintenant
   utilisables dans le programme}
  
  Write ('Premier nombre ? : ');
  ReadLn (Nombre1); {Lecture 1er nombre}
  
  Write ('Deuxième nombre ? : ');
  ReadLn (Nombre2); {Lecture 2ème nombre}
  
  Somme := Nombre1 + Nombre2;
  WriteLn ('La somme vaut: ', Somme);
  
END.

Les types prédéfinis

Voici les différents types prédéfinis du Pascal:

Simple Structuré
Standard Utilisateur Standard
Entier (INTEGER)

Booléen (BOOLEAN)

Caractère (CHAR)

Réel (REAL)

Chaîne (STRING)

Enumération *

Intervalle *

Tableaux (ARRAY) *

Enregistrements (RECORD) *

Ensembles (SET) *

Dynamiques (POINTER) *

Fichiers (FILE) *

* Ce type sera expliqué plus tard... patience

Entier - INTEGER

Ce type représente l'ensemble des nombres entiers dans l'intervalle

-2n-1 ... (2n-1 - 1)

où n est le nombre de bits alloués pour une variable de ce type.

Notation: 12 -1522 +31

ENTIERS
SHORTINT -128 ... +127 8 bits
INTEGER -32768 ... +32767 16 bits
LONGINT -2'147'483'648 ... +2'147'483'647 32 bits
BYTE 0 ... 255 8 bits
WORD 0 ... 65535 16 bits

Caractère - CHAR

Ce type représente l'ensemble des caractères définis par le standard ASCII (Lettres, chiffres, signes, etc...). Chaque caractère est codé sur 7 bits, il y a donc 128 (0.127) caractères différents que l'on peut représenter.La table ASCII sur 8 bits n'est pas normalisée.

Notation: 'a', 'A', '*', '4'

Réel - REAL

Ce type représente les nombres réels.

Notation: 1.0 1.6 -5.12 2.45E7

REELS
REAL 2.9E-39 ... 1.7E38 6 bits
SINGLE 1.5E-45 ... 3.4E38 4 bits
DOUBLE 5.0E-324 ... 1.7E308 8 bits
EXTENDED 3.4E-4932 ... 1.1E4932 10 bits
COMP -9.2E18 ... 9.2E18 8 bits

Booléen - BOOLEAN

Ce type définit une information pouvant prendre une des deux valeurs prédéfinies TRUE (vrai) ou FALSE (faux). Une variable de ce type ne peut être imprimée.

Notation: TRUE FALS

BOOLEENS
BOOLEAN BYTE 8 bits
WORDBOOL WORD 16 bits
LONGBOOL LONGINT 32 bits
BYTEBOOL BYTE 8 bits

Chaînes de caractères - STRING

Une chaîne de caractères est définie par une suite de caractères ASCII imprimables comprise entre deux apostrophes ('). La taille d'une STRING est de 255 caractères par défaut (maximum). Pour définir une autre longueur, l'indiquer entre crochets. A la différence du C, lorsqu'une chaîne de 10 caractères de long est définie (STRING[10]), elle peut effectivement contenir 10 caractères.

S'il on veut utiliser le caractère apostrophe dans une chaîne de caractères, il faut le doubler pour que le compilateur ne le prenne pas pour la fin de la chaîne (voir Chaine2 dans l'exemple ci-dessous).

Exemples:

VAR
  Chaine1 : STRING;       {Chaîne de 255 caractères}
  Chaine2 : STRING[255];  {Chaîne de 255 caractères}
  Chaine3 : STRING[10];   {Chaîne de 10 caractères}
  Chaine4 : STRING[1];    {Chaîne d'un caractère}
BEGIN
  Chaine1 := 'Ceci est une chaîne de caractères';
  Chaine2 := 'Aujourd''hui, il pleut'; {Apostrophe doublé !}
  Chaine3 := #10 + #13;        {Saisie de caractères ASCII}
  Chaine4 := 'A';
END.

Les constantes

Il existe deux type de constantes:

  • Les constantes simples dont la valeur ne peut être pas être modifiée par le programme
  • Les constantes typées dont la valeur peut être modifiée par le programme.

Ces deux types de constantes peuvent représenter une valeur numérique, une chaîne de caractères. Les constantes typées sont comparables à des variables déjà initialisées.

Déclaration

La déclaration des constantes s'effectue dans la section déclarative, et elle est précédée du mot réservé CONST.

Exemple:

ENTETE PROGRAM Bidon;
SECTION
DECLARATIVE
CONST {Déclaration des constants}
  max_x = 10;
  pi = 3.14;
  chaine = 'toto';
  chaine_modif : STRING = 'Bonjour';
 
VAR {Déclaration des variables}
  {Déclare un tableau de 10 éléments}
  Tableau : ARRAY[1..max_x] OF STRING;
BLOC
D'INSTRUCTIONS
BEGIN
  WriteLn ('Pi = ', pi);
  WriteLn ('Chaîne = ', chaine_modif);
  chaine_modif := 'Bonsoir';
  WriteLn ('Chaine = ', chaine_modif);
END.