Section courante

A propos

Section administrative du site

Décisions, décisions,...

Voici une décision facile pour l'ordinateur : si vous tapez ORANGE ... alors rendez l'écran orange ou si vous tapez CHAMOIS alors rendez l'écran chamois. Assez facile ? Ensuite, demandez à l'ordinateur de le faire.

Tapez ce programme :

  1. 10 PRINT"VOULEZ-VOUS L'ECRAN ORANGE OU CHAMOIS ?"
  2. 20 INPUT C$
  3. 30 IF C$="ORANGE"THEN 100
  4. 40 IF C$="CHAMOIS"THEN 200
  5. 100 CLS 8
  6. 110 END
  7. 200 CLS 5

Exécutez le programme plusieurs fois. Essayez à la fois ORANGE et CHAMOIS comme réponses.

Si vous répondez ORANGE ... alors ...

Par contre... Si vous répondez CHAMOIS... alors...

Que se passe-t-il si vous répondez par autre chose que ORANGE ou CHAMOIS ? Exécutez à nouveau le programme. Cette fois, répondez VERT.

Cela rend l'écran orange. Est-ce que vous savez pourquoi ?

Si la condition est fausse, l'ordinateur ignore la partie THEN de la ligne et passe à la ligne de programme suivante.

La commande que vous avez utilisée pour que l'ordinateur prenne une décision est la commande IF/THEN. Voici la syntaxe de IF/THEN, mais ne vous attendez pas à tout comprendre avant d'avoir atteint la fin de cette page :

IF condition THEN commands ELSE commands

Teste la condition. Si c'est vrai, BASIC exécute les commands suivant THEN. Si c'est faux, BASIC exécute les commands suivant ELSE ou, si ELSE est omis, ne fait rien.

Vous avez également utilisé la commande END. Sa syntaxe est :

END

Termine l'exécution du programme.

Ajout d'un autre niveau (l'option ELSE et les commandes imbriquées IF/THEN)

Jetez un autre coup d'oeil au programme ci-dessous :

  1. 10 PRINT"VOULEZ-VOUS L'ECRAN ORANGE OU CHAMOIS ?"
  2. 20 INPUT C$
  3. 30 IF C$="ORANGE"THEN 100
  4. 40 IF C$="CHAMOIS"THEN 200
  5. 100 CLS 8
  6. 110 END
  7. 200 CLS 5

En utilisant ELSE, vous pouvez reformuler la décision de cette manière :

Si vous tapez ORANGE alors rendez l'écran orange ou bien si vous tapez CHAMOIS alors rendez l'écran chamois.

Vous pouvez dire tout cela à l'ordinateur en une seule ligne. Effacez les lignes 30-200 (DEL 30-200) et tapez comme nouvelle ligne 30 :

  1. 30 IF C$="ORANGE"THEN CLS 8 ELSE IF C$="CHAMOIS"THEN CLS 5

Exécutez le programme et il fonctionne exactement comme avant.

Notez que la ligne 30 imbrique une commande IF/THEN dans une autre. Vous pouvez imbriquer autant de commandes IF/THEN que vous le souhaitez, à condition que la ligne de programme ne contienne pas plus de 249 caractères (la longueur de ligne maximale). Vous pouvez également tester si quelque chose n'est pas égal à (<>), supérieur à (>), inférieur à (<), supérieur ou égal à (>=) ou inférieur ou égal à (<=) en utilisant l'un des les symboles entre parenthèses au lieu de = dans un test. Par exemple :

  1. 30 IF A>B THEN 100

irait à 100 si A était supérieur à B.

Et encore plus de niveaux (clauses supplémentaires ELSE)

Supposons qu'en plus de ce que l'ordinateur a fait auparavant, vous vouliez dire à l'ordinateur du moniteur quoi d'autre il doit faire si C$ n'est pas égal à ORANGE.

En d'autres termes, vous voulez ajouter une autre clause ELSE à votre décision : si vous tapez ORANGE alors rendez l'écran orange ou bien (ELSE) si vous tapez CHAMOIS alors rendez l'écran chamois ou bien (ELSE) :

  1. PRINT"VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS"

Pour ajouter cette nouvelle clause ELSE, insérez ELSE, suivi de la commande PRINT, à la fin de la ligne 30 :

  1. 30 IF C$="ORANGE" THEN CLS 8 ELSE IF C$="CHAMOIS"THEN CLS 5 ELSE PRINT"VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS"

Exécutez le programme, mais cette fois, répondez à la question de l'ordinateur avec autre chose que orange ou chamois. Cette réponse provoque l'affichage par l'ordinateur du message «VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS».

Vous pouvez ajouter autant de clauses ELSE que vous le souhaitez, tant que la ligne entière ne contient pas plus de 249 caractères.

Et emballer encore plus dans une décision (les deux-points (:))

Pour ajouter encore plus de puissance à la commande IF/THEN, vous pouvez demander à l'ordinateur d'exécuter n'importe quel nombre de commandes après chaque clause THEN ou ELSE. Par exemple, supposons que vous vouliez que l'ordinateur fasse ceci :

Si vous tapez ORANGE alors rendez l'écran orange et allez à la ligne 10 ou bien si vous tapez CHAMOIS alors faites l'écran chamois et allez à la ligne 10 ou bien affichez un message et allez à la ligne 20.

Vous pouvez dire tout cela sur une seule ligne en utilisant des deux-points pour séparer chaque commande. Remplacez la ligne 30 par la suivante :

  1. 30 IF C$="ORANGE"THEN CLS 8:GOTO 10 ELSE IF C$="BUFF"THEN CLS 5:GOTO 10 ELSE PRINT"VOUS DEVEZ TAPEZ ORANGE OU CHAMOIS":GOTO 20     

Vous pouvez ajouter autant de commandes que vous le souhaitez à une clause THEN ou ELSE, tant que la ligne ne contient pas plus de 249 caractères.

Une décision plus subtile (les conditions AND ou OR)

En utilisant deux mots supplémentaires, AND ou OR, vous pouvez demander à l'ordinateur de prendre une décision plus simple. Par exemple, vous souhaitez écrire un programme testant pour voir si un candidat répond aux exigences de ce poste :

Un diplôme en programmation
ET
Expérience en programmation

Effacez la mémoire (NEW). Puis tapez et exécutez ce programme :

  1. 10 PRINT "AS-TU--"
  2. 20 INPUT "UN DIPLOME EN PROGRAMMATION"; D$
  3. 30 INPUT "EXPERIENCE EN PROGRAMMATION"; E$
  4. 40 IF D$="OUI" AND E$="OUI"THEN PRINT"JE VOUS EMBAUCHE" ELSE PRINT"DESOLE, NOUS NE POUVONS PAS VOUS ENGAGER"
  5. 50 GOTO 10

Si vous répondez aux deux questions avec OUI, l'ordinateur prend cette décision :

JE VOUS EMBAUCHE

Si, au contraire, vous répondez à la première question par OUI, mais répondez à la deuxième question par NON, l'ordinateur est forcé de prendre cette décision :

DESOLE, NOUS NE POUVONS PAS VOUS ENGAGER

Maintenant, supposons que les exigences changent de sorte que AND devienne OR. Le travail nécessite :

Un diplôme en programmation
OU
Expérience en programmation

Changez la ligne 40 pour que AND devienne OR :

  1. 40 IF D$="OUI" OR E$="OUI"THEN PRINT"JE VOUS EMBAUCHE" ELSE PRINT"DESOLE, NOUS NE POUVONS PAS VOUS ENGAGER"

Exécutez le programme. Répondez à la première question par "OUI" et à la deuxième question par "NON" - comme vous l'avez dit auparavant - et voyez la différence qu'un seul mot peut faire :

JE VOUS EMBAUCHE

COMMANDES

IF/THEN/ELSE
END
AND
OR
CONCEPTS

Test de logique


Dernière mise à jour : Samedi, le 11 mars 2023