« Langage Pascal/Instruction conditionnelle » : différence entre les versions

Contenu supprimé Contenu ajouté
Page créée avec « {{ébauche informatique}} {{Chapitre | titre = Instruction conditionnelle | idfaculté = informatique | leçon = ../ | numero = 4 | précédent = [[.... »
(Aucune différence)

Version du 15 octobre 2009 à 14:28

Logo de la faculté
Cette page est une ébauche concernant l’informatique. Avant de recréer une ressource du même type, essayez d'abord de compléter celle-ci ; si c'est impossible, remplacez son contenu par le vôtre. Si vous êtes l'auteur(e) de cette page et que vous souhaitez la continuer, retirez ce bandeau.
Début de la boite de navigation du chapitre
Instruction conditionnelle
Icône de la faculté
Chapitre no {{{numéro}}}
Leçon : Langage Pascal
Chap. préc. :Lire et écrire avec read et write
Chap. suiv. :Instruction itérative
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Langage Pascal : Instruction conditionnelle
Langage Pascal/Instruction conditionnelle
 », n'a pu être restituée correctement ci-dessus.

Instruction conditionnelle

Une instruction conditionnelle permet d'exécuter des instructions seulement dans une certaine condition.

var 
    age : integer;

begin
    writeln('Quel est ton âge?');
    readln(age);
    
    if a < 18 then
    begin
        writeln('Tu es mineur.')
    end
end.

Ainsi, dans l'exemple ci-dessus, le programme indiquera à l'utilisateur qu'il est mineur seulement s'il son âge est strictement inférieur à 18.

On peut également préciser ce que le programme doit faire dans le cas contraire. Les deux exemples suivants sont donc presque équivalents.

var 
    age : integer;

begin
    writeln('Quel est ton âge?');
    readln(age);
    
    if a < 18 then
    begin
        writeln('Tu es mineur.')
    end;
    
    if a >= 18 then
    begin
        writeln('Tu es majeur.')
    end
end.

var 
    age : integer;

begin
    writeln('Quel est ton âge?');
    readln(age);
    
    if a < 18 then
    begin
        writeln('Tu es mineur.')
    end
    else
    begin
        writeln('Tu es majeur.')
    end
end.

Dans les deux cas, le programme indiquera si l'utilisateur est mineur ou majeur. Cependant, le premier exécutera deux fois le test, mais pas le second exemple. Ce dernier est donc à préférer.

Une dernière forme est possible, permettant des if en cascade.

var 
    age : integer;

begin
    writeln('Quel est ton âge?');
    readln(age);
    
    if a <= 10 then
    begin
        writeln('Mais tu es tout petit! Oo')
    end
    else if a < 18 then
    begin
        writeln('Tu es encore mineur.')
    end
    else if a >= 60 then
    begin
        writeln('Wouaw, tu vieillis dis donc...');
    end 
end.

Les if en cascade permettent du cas par cas:

  • Ceux qui ont 10 ans ou moins recevront le message Mais tu es tout petit! Oo.
  • Parmi ceux qui ont plus de 10 ans, ceux qui ont également moins de 18 ans recevront Tu es encore mineur..
  • Ceux qui ont 60 ans ou plus, verront apparaitre le message Wouaw, tu vieillis dis donc....
  • Et enfin, les derniers, ceux qui ont 18 ans ou plus et moins de 60 ans, ne verront aucun message apparaitre.

case of

Imaginons un cas dans lequel il nous faudrait utilisé une longue série de if en cascade, celle-ci peut devenir rapidement difficile à lire. Pour cela, il existe une autre structure : le case of.

Prenons un exemple qui attend un chiffre et l'écrit en toute lettre :

var 
    a : integer;

begin
    writeln('Quel est ton âge?');
    readln(age);
    
    if a = 1 then
    begin
        writeln('un')
    end
    else if a = 2 then
    begin
        writeln('deux')
    end
    else if a = 3 then
    begin
        writeln('trois')
    end
    else if a = 4 then
    begin
        writeln('quatre')
    end
    else if a = 5 then
    begin
        writeln('cinq')
    end
    else if a = 6 then
    begin
        writeln('six')
    end
    else if a = 7 then
    begin
        writeln('sept')
    end
    else if a = 8 then
    begin
        writeln('huit')
    end
    else if a = 9 then
    begin
        writeln('neuf')
    end
    else
    begin
        writeln('Je veux un chiffre');
    end
end.

Ça peut vite devenir lourd à lire et à écrire. Voyons ce que donne le même résultat en utilisant la structure case of :

var 
    a : integer;

begin
    writeln('Quel est ton âge?');
    readln(age);
    
    case a of
    1 : writeln('un');
    2 : writeln('deux');
    3 : writeln('trois');
    4 : writeln('quatre');
    5 : writeln('cinq');
    6 : writeln('six');
    7 : writeln('sept');
    8 : writeln('huit');
    9 : writeln('neuf');
    else writeln('je veux un chiffre!!!')
    end
end.

Et voila comment le case of peut fournir un code beaucoup plus compréhensif et compacte que les if en cascade.

Liste des opérateurs de l'instruction conditionnelle en Pascal

=  : égal à

<  : strictement inférieur à

<= : inférieur ou égal à

>  : strictement supérieur à

>= : supérieur ou égal à

<> : différent de