Previous Page Next Page

9.1 Introduction

Dans ce chapitre nous introduisons, à partir de l'exemple de la détermination du maximum de deux nombres réels, les structures alternatives. Essayons donc d'implémenter l'algorithme qui réalise la fonction mathématique:

Max: ( A, B ) ¾® Y = Max( A, B ).

La fonction Turbo-Pascal suivante retourne le maximum de deux nombres réels:

01 FUNCTION Max ( X, Y: Real ): Real;
02 BEGIN
03 IF X>Y THEN BEGIN
04 Max := X;
05 END ELSE BEGIN
06 Max := Y;
07 END;
08 END; {-- Max}

Ici, il est indispensable d'exécuter une instruction suivant qu'une certaine condition est remplie ou non. Par suite, il faut une instruction alternative [angl. conditional statement; all. Verzweigung] permettant de faire le choix entre une, deux ou plusieurs actions suivant qu'une certaine condition est remplie ou non. Une telle structure algorithmique est encore appelée sélection.

Ainsi, les lignes 3 à 7 sont écrites dans un nouveau schéma d'instruction appelé instruction IF. L'instruction

IF X>Y THEN BEGIN
Max := X;
END ELSE BEGIN
Max := Y;
END;

exprime les instructions qui sont exécutées suivant que la condition X>Y est remplie. Elle est interprétée de la manière suivante:

"Si la condition X>Y est vraie, alors exécuter l'instruction qui suit le mot réservé THEN, sinon exécuter l'instruction qui suit le mot réservé ELSE."

Dans cette interprétation, l'exécution des instructions Max := X et Max := Y est mutuellement exclusive ce qui signifie que seule une des deux instructions sera exécutée. On peut remplacer les lignes 3 à 5 de la fonction précédente par la séquence:

Max := Y;
IF X>Y THEN BEGIN
Max := X;
END;

Cette variante de l'instruction IF est interprétée de la manière suivante:

"Si la condition X>Y est vraie, alors exécuter l'instruction qui suit le mot réservé THEN, sinon poursuivre en séquence, c'est-à-dire passer à la ligne suivante."

Il est évident que cette deuxième variante de la sélection n'est qu'un cas particulier de la première. En effet, les deux formes suivantes sont équivalentes:

IF < condition > THEN BEGIN
< instruction >;
END;

IF < condition > THEN BEGIN
< instruction >;
END ELSE BEGIN; { rien }

Remarque:

Nous avons muni les différentes structure Turbo-Pascal d’un formatage uniforme afin de faciliter la lisibilité et la compréhension du code. En Pascal, les corps des boucles FOR et WHILE, de même que les corps des instructions IF...THEN...ELSE, ont été parenthésés par un BEGIN et un END, même s’il n’y a qu’une seule instruction simple. Dans chaque boucle IF, nous avons indenté chaque instruction et nous l’avons terminée par un point-virgule. Cette convention montre clairement les limites de la boucle; elle élimine la nécessité de décider s’il faut inclure un BEGIN et un END ainsi que les erreurs qui résultent de l’adjonction d’une instruction à une boucle non parenthésée.

Cette convention peut choquer certains enseignants ou programmeurs qui voient un point-virgule comme un séparateur d’instructions plutôt qu’une marque de fin d’instruction. Pour nous, plus facilement on peut lire et modifier les programmes écrits avec cette convention, mieux c’est.

Une généralisation supplémentaire de l'instruction IF est l'instruction de sélection multiple ou instruction CASE encore appelée analyse par cas. Cette dernière se trouve implémentée dans beaucoup de langages de programmation évolués. Elle est fréquemment utilisée en programmation s'il faut faire le choix entre plus de deux alternatives. Sa formulation est simplifiée par l'instruction CASE.

Après la déclaration d'une variable booléenne Boole

VAR Boole: Boolean;

on peut remplacer les lignes 3 à 7 de la fonction Max par la séquence suivante:

Boole := ( X>Y );
CASE Boole OF
True: Max := X;
False: Max := Y;
ELSE
Writeln ( 'Egalité!' )
END; {-- CASE}

La séquence précédente est interprétée de la manière suivante:

"Si Boole prend la valeur True, alors exécuter l'instruction Max := X. Si Boole prend la valeur False, alors exécuter l'instruction Max := Y, sinon exécuter l'instruction qui suit le mot réservé ELSE."

Comme dans l'instruction IF, l'exécution de chaque branche est mutuellement exclusive.

TERMES TECHNIQUES

analyse par cas

instruction alternative

instruction CASE

instruction de sélection multiple

instruction IF

sélection

Previous Page Next Page


© Aflo Informatique , 2003-2004