Accueil > Turbo Pascal > Turbo Pascal – Les cas

Turbo Pascal – Les cas

This entry is part 9 of 24 in the series Turbo Pascal - Tutoriel

L’utilisation des cas est parfois plus adaptée à certaines situations que la classique structure
conditionnelle avec if…then.

Plutôt qu’un long discours, observez :


program Lescas;

var Couverts : Integer;

begin
writeln(’Bienvenue au restaurant  »case of »’);
writeln(’Combien de couverts désirez-vous ?’);
read(Couverts);

case Couverts of { Début du Case Of }
0 : { Premier cas : SI Couverts = 0 }
writeln(’Vous connaissez la sortie…’);

1 : { Deuxième cas : SI Couverts = 1 }
writeln(’Une table pour une personne, une !’);

2 : { Troisième cas : SI Couverts = 2 }
writeln(’Haha! Un dîner en tête à tête ?’);

7, 13 : { Quatrième cas : SI Couverts = 7 OU Couverts = 13 }
write(’Désolé, ici on est superstiteux ‘);
writeln(’et on ne sert pas ce nombre de couverts’);

3..12 : { Cinquième cas : SI Couverts => 3 ET Couverts =< 6 }
writeln('C''est un repas en famille ?');

else { Sixième cas : Tous les autres cas }
writeln('Très drôle');

end; { Fin de la séléction de cas }
end.


Procédons par ordre :

  • 0 :, 1 :, 2 : représentent des cas unitaires : si la variable Couverts
    vaut 0, 1 ou 2, le cas correspondant est traité.

  • 7, 13 : correspond à une enumération. Si Couverts à la valeur de
    7 OU 13, le cas est traité.

  • 3..12 : est un interval de valeurs. Si la valeur de Couverts est comprise
    dans celui ci, le cas est traité.

  • else est executé si aucun des cas spécifiés ne sont traités.


Si vous avez déjà lu le QBasic (du même auteur :-) ), vous constaterez
quelques similitudes dans les deux exemples traitants des cas…

Mais vous remarquerez aussi que la ligne CASE IS > 12 n’a pas d’équivalent en Pascal.

Pour pouvoir solutionner ce problème, il faut utiliser un if…then dans le cas
else :

program Lescas;

var Couverts : Integer;

begin
writeln(’Bienvenue au restaurant  »case of »’);
writeln(’Combien de couverts désirez-vous ?’);
read(Couverts);

case Couverts of { Début du Case Of }
0 : { Premier cas : SI Couverts = 0 }
writeln(’Vous connaissez la sortie…’);

1 : { Deuxième cas : SI Couverts = 1 }
writeln(’Une table pour une personne, une !’);

2 : { Troisième cas : SI Couverts = 2 }
writeln(’Haha! Un dîner en tête à tête ?’);

7, 13 : { Quatrième cas : SI Couverts = 7 OU Couverts = 13 }
write(’Désolé, ici on est superstiteux ‘);
writeln(’et on ne sert pas ce nombre de couverts’);

3..12 : { Cinquième cas : SI Couverts => 3 ET Couverts =< 6 }
writeln('C''est un repas en famille ?');

else { Sixième cas : Tous les autres cas }
if Couverts > 12 then
writeln(’Mais vous êtes une armée !’)
else
writeln(’Très drôle’);
end; { Fin de la séléction de cas }
end.


Bien entendu, on peut aussi utiliser un bloc d’instructions begin…end avec case of

Les instructions peuvent égualement s’écrirent sur la même ligne.

Les deux écritures suivantes du cas 0 sont donc équivalentes :

0 :
begin
writeln(’Vous connaissez la sortie…’);
end;

ou :

0 : writeln(’Vous connaissez la sortie…’);

Series Navigation«Turbo Pascal – Structure conditionnelleTurbo Pascal – Branchements»
Categories: Turbo Pascal Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks