Accueil de Gladir.com Notes légales de Gladir.com Flux RSS des nouvelles du site Gladir.com - Turbo Pascal pour Windows - Conditionnel Section du logiciel DOS «MonsterBook» Inventaire de la bibliothèque de Gladir.com Entrée administrateur

Les instructions de conditionnelles en langage Turbo Pascal pour Windows sont au nombres de deux :

  • IF THEN ... ELSE
  • CASE OF ... END

IF THEN ELSE

L'instruction «IF» permet le teste d'une condition et de choisir d'effectuer des instructions plutôt que d'autre dans le cas ou celle-ci serait vrai. Voici donc les syntaxes :

IF expression_vrai THEN instruction_exécuté_si_vrai;

ou

IF expression_vrai THEN instruction_exécuté_si_vrai ELSE instruction_exécuté_si_faux;

ou

IF expression_vrai1THEN
 instruction_exécuté_si_vrai1
ELSE
 instruction_exécuté_si_faux;

Vous y remarquerez donc après les syntaxes proposé que l'instruction «ELSE» n'est pas obligatoire.


Exemple

Cet exemple permet de tester une condition vrai :

  1. Program IfSamples;
  2.  
  3. Uses WinCrt;
  4.  
  5. BEGIN
  6.  If True Then WriteLn('La condition est vrai');
  7. END.

on obtiendra le résultat suivant :

La condition est vrai

Ces exemples, en Turbo Pascal pour Windows, permet de tester le mot réservé «IF» d'un peu toute les façons :

  1. Program IfSamples2;
  2.  
  3. Uses WinCrt;
  4.  
  5. BEGIN
  6.  If False Then WriteLn('FALSE');
  7.  If Not False Then WriteLn('NOT FALSE');
  8.  If True Then WriteLn('TRUE');
  9.  If Not True Then WriteLn('NOT TRUE');
  10.  If Boolean(0)Then WriteLn('0');
  11.  If Boolean(NOT 0)Then WriteLn('NOT 0');
  12.  If Not Boolean(0)Then WriteLn('NOT(0)');
  13.  If Boolean(1)Then WriteLn('1');
  14.  If Boolean(NOT 1)Then WriteLn('NOT 1');
  15.  If Not Boolean(1)Then WriteLn('NOT(1)');
  16.  If 100 > 300 Then WriteLn('100 > 300');
  17.  If Boolean(1-Byte(100 > 300))Then WriteLn('1-(100 > 300)');
  18. END.

on obtiendra le résultat suivant :

NOT FALSE
TRUE
NOT 0
NOT(0)
1
NOT 1
1-(100 > 300)
NOT FALSE
TRUE
NOT 0
NOT(0)
1
NOT 1
1-(100 > 300)

CASE

Lorsqu'on effectue une série de teste répétitive sur une même variable avec différentes valeurs de la manière suivante:

IF valeur = 1 THEN
 instruction1_exécuté_si_vrai1
ELSE IF valeur = 2 THEN
 instruction_exécuté_si_vrai2
ELSE IF valeur = 3 THEN
 instruction_exécuté_si_vrai3
ELSE
 instruction_exécuté_si_faux

On devrait plutôt tenté d'utiliser l'instruction «CASE» laquelle permet une meilleure lisibilité en plus de simplifié la compréhension pour un programmeur externe à votre code. Ainsi, l'instruction CASE permet d'effectuer de nombreuses comparaisons sur un unique résultat. Voici donc sa syntaxe:

CASE résultat OF
 valeur1:  instruction1_exécuté_si_vrai1;
 valeur2:  instruction_exécuté_si_vrai2;
 valeur3:  instruction_exécuté_si_vrai3;
 ELSE  instruction_exécuté_si_faux;
END;

L'instruction «ELSE» n'est pas obligatoire, il est tout de même préférable de l'inclure pour prévenir une situation anormale ou d'erreur. Il est également possible d'avoir des ensembles de valeurs appliquable comme cas. Voici un exemple:

CASE résultat OF
 5..9:  instruction1;
 11..14:   instruction2;
 10,15,16:   instruction3;
END;

Dans cette exemple les «instructions1» est exécuté si le résultat a une valeur entre 5 et 9. Ensuite, les «instructions2» est exécuté si le résultat a une valeur entre 11 et 14. Enfin, les «instructions3» est exécuté si le résultat à la valeur 10, 15 ou 16.


Exemple

Cet exemple permet d'évaluer la valeur de la variable «a» :

  1. Program CaseOfSamples;
  2.  
  3. Uses WinCrt;
  4.  
  5. Const a:Integer = 2;
  6.  
  7. BEGIN
  8.  Case a of
  9.   1,2,3:WriteLn('Entre 1 et 3');
  10.   4,5,6:WriteLn('Entre 4 et 6');
  11.   7:WriteLn('C''est 7');
  12.   Else WriteLn('Inférieur ou égale à 0 ou supérieur à 8');
  13.  End;
  14. END.

on obtiendra le résultat suivant :

Entre 1 et 3


Dernière mise à jour: Samedi, le 24 septembre 2011