Turbo Pascal – Les cas
- Turbo Pascal – Introduction au Turbo Pascal
- Turbo Pascal – Ecrire sur l’écran
- Turbo Pascal – Un peu de maths
- Turbo Pascal – Les commentaires
- Turbo Pascal – Les variables
- Turbo Pascal – Les constantes
- Turbo Pascal – Entrée de données
- Turbo Pascal – Structure conditionnelle
- Turbo Pascal – Les cas
- Turbo Pascal – Branchements
- Turbo Pascal – Les boucles
- Turbo Pascal – Procédures et fonctions
- Turbo Pascal – Les unités
- Turbo Pascal – Les tableaux
- Turbo Pascal – Les maths
- Turbo Pascal – Le traitement du texte
- Turbo Pascal – Affichage du texte
- Turbo Pascal – Le son
- Turbo Pascal – Graphismes
- Turbo Pascal – L’unité Graph et le texte
- Turbo Pascal – Les types personalisés
- Turbo Pascal – Les pointeurs
- Turbo Pascal – Les objets
- Turbo Pascal – Les ensembles
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
vaut0,1ou2, le cas correspondant est traité. - 7, 13 : correspond à une enumération. Si
Couvertsà la valeur de
7OU13, le cas est traité. - 3..12 : est un interval de valeurs. Si la valeur de
Couvertsest 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
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 caselse :
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 ofLes 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…’);