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 :
Exécutez le programme plusieurs fois. Essayez à la fois ORANGE et CHAMOIS comme réponses.
Si vous répondez ORANGE ... alors ...
- La ligne 30 envoie l'ordinateur à la ligne 100.
- La ligne 100 rend votre écran orange.
- La ligne 110 termine le programme. (Si l'ordinateur arrive à la ligne 110, il n'atteint jamais la ligne 200.)
Par contre... Si vous répondez CHAMOIS... alors...
- La ligne 40 envoie l'ordinateur à la ligne 200.
- La ligne 200 transforme votre écran en chamois.
- La ligne 200 est la dernière ligne du programme, donc le programme se termine.
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 :
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 :
Exécutez le programme et il fonctionne exactement comme avant.
- Si C$ vaut "ORANGE", l'ordinateur exécute la commande suivant THEN, étant la commande CLS 8.
- Si C$ n'est pas égal à "ORANGE", l'ordinateur exécute la commande suivant ELSE, étant une autre commande IF/THEN.
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 :
- 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) :
- 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 :
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 :
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 :
Si vous répondez aux deux questions avec OUI, l'ordinateur prend cette décision :
JE VOUS EMBAUCHESi, 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 ENGAGERMaintenant, 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 :
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 EMBAUCHECOMMANDES IF/THEN/ELSE END AND OR |
CONCEPTS Test de logique |