Table des matières indexe chapitre suivant

Chapitre 7 : Expressions

Tables des matières


1. Définition

Une expression est une combinaison d'opérandes et d'opérateurs. Son évaluation produit une valeur dont le type est déterminé par celui des opérandes et par les opérateurs selon les règles décrites dans les paragraphes suivants.


2. Diagrammes syntaxiques


Les littéraux sont définis dans Ch 2 Les identificateurs de variables sont définis dans Ch 5 Les identificateurs de constantes sont définis dans Ch 3 Les appels de fonctions sont définis dans Ch 13

Exemples


3. Priorités

L'évaluation des expressions se fait de gauche á droite en respectant les règles de priorité suivantes sur les opérateurs.

        not  (unaire)                     plus prioritaire
        *  /  div  mod  and                |
        -  +  (unaires)                    |
        -  +  or
        =  <>  <=  >=  <  >   in          moins prioritaire
Toute expression entre parenthèses est évaluée indépendamment des opérateurs qui l'entourent.

Exemple
L'expression booléenne

       p <= q and flag
   avec
       p,q : integer
       flag : Boolean
n'est pas correcte. En effet, les règles de priorités rendent l'expression précédente équivalente á
       p <= (q and flag)
ce qui est illicite car le type des deux opérandes de l'opérateur and doit être booléen. Il faut donc écrire
       (p <= q) and flag


4. Conversion de types dans les expressions.

Du tableau précédent, on déduit qu'il est permis de mélanger des opérandes de type integer et des opérandes de type real dans une expression; les entiers seront traités comme des réels car ils auront été convertis automatiquement en réels équivalents.
Il ne faut pas oublier, par contre, que la conversion inverse doit toujours être exprimée explicitement á l'aide d'une des fonctions trunc ou round.

Exemple
L'évaluation de l'expression

    4.3 * 2 
est de type real et il y a conversion de l'entier 2 en réel 2.0. Si on veut que le résultat de l'expression soit de type integer, il est nécessaire d'utiliser l'une des fonctions trunc ou round :


Table des matières indexe chapitre suivant
Free Web Hosting