Les expressions
25
Enfin, des parenthèses permettront d’outrepasser ces règles de priorité, en forçant le calcul
préalable de l’expression qu’elles contiennent. Notez que ces parenthèses peuvent également
être employées pour assurer une meilleure lisibilité d’une expression.
Voici quelques exemples dans lesquels l’expression de droite, où ont été introduites des
parenthèses superflues, montre dans quel ordre s’effectuent les calculs (les deux expressions
proposées conduisent donc aux mêmes résultats) :
a + b * c
a + ( b * c )
2 * n + p
(2 * n ) + c
- a + b
(- a) + b
- a / - b + c
( ( - a ) / ( - b ) ) + c
- a / - ( b + c )
( - a ) / ( - ( b + c ) )
Exercice 2.5 En supposant que les variables n, p et q sont de type entier et qu’elles
contiennent respectivement les valeurs 8, 13 et 29, déterminer les valeurs des expressions
suivantes :
n + p / q
n + q / p
(n + q) / p
n + p / n + p
(n + p) / (n + p)
4.1.3 Les erreurs possibles
Nous avons vu au paragraphe 2.2, page 17, que, comme une variable de type entier occupe
un emplacement de taille donnée, on ne peut représenter qu’une partie des nombres entiers
relatifs. Les limites exactes dépendent à la fois du langage et de l’environnement concerné.
Dans ces conditions, il est tout à fait possible qu’une opération portant sur deux valeurs
entières (correctement représentées) conduise à un résultat non représentable dans le type
entier, parce qu’en dehors des limites permises. On parle de « dépassement de capacité ».
Très souvent, cette erreur n’est pas détectée et l’on se contente d’ignorer les « bits
exécentaires » du résultat. On peut avoir une image de ce qui se produit en transposant cela
dans notre système décimal : supposez que l’on soit limité à des nombres à 4 chiffres. Dans
ce cas, le nombre 2250 est représentable ; 9950 l’est aussi. En revanche, leur somme (12200)
ne l’est plus. Si on ignore le « chiffre excédentaire », on obtient simplement 2200 !
De la même manière, il se peut qu’à un moment donné vous cherchiez à diviser un entier par
zéro. Cette fois, la plupart du temps, cette anomalie est effectivement détectée : un message
d’erreur est fourni à l’utilisateur, et l’exécution du programme est interrompue. On notera
bien que dans un « programme réel », ce comportement ne sera guère acceptable et il sera
préférable que des instructions appropriées viennent s’assurer qu’une telle division par zéro
n’a pas lieu.
Précédent

- 48/370

Suivant