TI-BASIC/Leçon 3 - Les conditions


IF :

C'est bon, vous êtes toujours là ? Allez, ce n'est que le début, accrochez-vous !
Donc ici on va parler des conditions. Ca sert à quoi ? Et bien ca sert à tester des variables : par exemple savoir si A est égal à 47, si H est inférieur à 45, ...
Avant de passer aux fonctions, je veux juste que tout le monde soit O.K. sur les symboles de base : pour accéder au menu de ces symboles, allez dans [2nd], [MATH] ("TEST"). J'espère que vous savez tous à quoi ils correspondent...
Bon, allez, je suis sympa, je vous fait un petit tableau pour résumer :

Symbole Signification
= Est égal à
=/= Est différent de
> Est supérieur à
< Est inférieur à
> Est supérieur ou égal à
< Est inférieur ou égal à

/!\ - ATTENTION : Sur les TI, le symbole "différent de" ne s'écrit pas avec un "égal", un "slash" et à nouveau un "égal" ; (regardez sur votre calculette : [2nd], [MATH] ("TEST"), [2]). Donc c'est comme pour [STO>], n'oubliez pas, je ne vais pas re-préciser cela à chaque fois que je l'emploie !...

Bon, maintenant qu'on est clair la-dessus, commencons avec le test le plus simple :
SI la variable truc vaut ca,
ALORS faire ca.
Si vous avez un minimum de niveau en anglais, vous devriez savoir que le mot "Si" se traduit par "If" ([PRGM], [1]), et que le mot "Alors" se traduit par "Then" ([PRGM], [2]). Bin, voilà, vous avez le principal pour faire ce test. Il vous manque juste un truc : Le "End" ([PRGM], [7]) à la fin du test (pour dire que c'est fini). Allez hop, je vous montre la structure :

:If [Condition]
:Then
:[Instruction(s) à exécuter UNIQUEMENT si la Condition est vérifiée]
:End

Voilà un petit exemple pour que vous compreniez :

:ClrHome
:Prompt A
:If A>5
:Then
:Disp A
:End

Explications :
1) On efface l'écran,
2) On demande la valeur de la variable A,
3) On vérifie si A est supérieur à 5, et si c'est le cas, on affiche la valeur de A avec la fonction Disp.
Comprenez, si A n'es pas supérieur à 5, la partie de code qui se situe entre le Then et le End ne sera pas exécutée.
Rien ne vaut l'expérience, donc essayez, et comprenez !

Maintenant on va corser un tout petit peu ce prgm : je vous demande de m'écrire un prgm qui fonctionne de la manière suivante :
On efface l'écran, on demande la valeur de la variable N, et on écrit "N EST SUPERIEUR A 10" si N>10, "N EST INFERIEUR A 10" si N<10, ou "N EST EGAL A 10" si N=10.
/!\ - Attention n'oubliez pas de "couper" vos phrases, je vous rappelle que la largeur de l'écran est de 16 caractères...
Allez au boulot !...

...

DONG DONG DONG ! Je ramasse les copies !
Voilà le code que vous auriez normalement dû écrire :

:ClrHome
:Prompt N
:If N>10
:Then
:Disp "N EST SUPERIEUR","A 10."
:End
:If N<10
:Then
:Disp "N EST INFERIEUR","A 10."
:End
:If N=10
:Then
:Disp "N EST EGAL A 10."
:End

Bon, ce prgm fonctionne très bien, mais c'est le moment de vous montrer comment on dit "sinon".

ELSE :

Personnellement, en TI-Basic, je ne me sers de ce "sinon" uniquement quand il n'y a que 2 conditions à tester.
Donc "Sinon" se traduit dans la langue de Shakespeare par "Else".
Pour utiliser Else, c'est tout con : il suffit de remplacer le If par un Else, et d'enlever la condition (bin oui, car ce Else signifie en gros "s'il n'y a aucune condition ci-dessus vérifiée, alors faire ca").
Exemple en reprenant le prgm d'au-dessus :

:ClrHome
:Prompt N
:If N=/=10
:Then
:Disp "N EST DIFFERENT","DE 10."
:Else
:Disp "N EST EGAL A 10."
:End

/!\ - Ne mettez pas de End avant un Else ! En effet, ce dernier fait partie du test If, donc pensez-y ! (De toute façon, une belle "ERR:SYNTAX" vous le rappellera si vous avez oublié, niark niark !...)
/!\ - N'oubliez pas non plus que le symbole "différent de" ne s'écrit pas comme ca sur la T.I. !

Comprenez le test de ce bout de code de la manière suivante : "Si N est différent de 10, alors afficher "N EST DIFFERENT DE 10.", SINON (dans tous les autres cas) afficher "N EST EGAL A 10.".
Bon ici on est d'accord les autres cas, il n'y en a pas beaucoup, voire qu'un seul ! C'est pour cela qu'il faut mieux préférer le Test IF/THEN/ELSE pour des tests à 2 conditions opposées.

LES OPERATEURS LOGIQUES :

On peut également tester plusieurs conditions à la fois, par exemple :
Si la variable truc vaut ca ET QUE la variable machin vaut ci,
Alors faire ca...
Ce "ET" s'appelle un opérateur logique, et il en existe 4 sur les TI-83+ : [2nd], [MATH] ("TEST"), [>] ("LOGIC") :

Opérateur Signification
and et
or ou
xor ou exclusif
not( non

Petites explications :
- La différence entre le "ou" et le "ou exclusif" est minime mais importante : prenons un exemple :

:ClrHome
:Prompt A
:Prompt B
:If A<5 xor B>10
:Then
:Disp "MORT AUX VACHES!"
:End

Ce prgm affichera la phrase (très recherchée, il faut dire) si la valeur de A est inférieur à 5 OU si la valeur de B est supérieur à 10 et c'est tout. Testez ce prgm, et mettez A=3 et B=15 par exemple. Que se passe-t-il ? La phrase n'apparaît pas, car A est inférieur à 5 et B est supérieur à 10 dans le même temps. Avec un "or", la phrase se serait affichée.
En gros, le "xor" c'est vraiment soit l'un soit l'autre, mais pas les 2 en même temps, et le "or" c'est soit l'un soit l'autre, ou les 2 en même temps.

- Le "not(" sert en fait à "inverser" une condition :

:ClrHome
:Prompt A
:If not(A<5)
:Then
:Disp "MORT AUX VACHES!"
:End

La phrase sera affiché si A n'est PAS inférieur à 5.

On peut bien sûr grâce aux parenthèses combiner ces tests ; en voici la preuve avec un prgm qui contient un super test-qui-sert-à-rien mais qui aura le mérite de vous faire comprendre :

:ClrHome
:Prompt A
:Prompt B
:Prompt C
:Prompt D
:If (A=5 or B>10) and (C=10 xor D<15)
:Then
:Disp "MORT AUX VACHES!"
:End

Chiant, hein ? Donc ma super phrase sera affichée si A est égal à 5 OU B est supérieur à 10, ET si C est égal à 10 OUexcl D est inférieur ou égal à 15. Essayez des combinaisons, par exemple avec A=5, B=2, C=10, et D=18, ca marchera, mais avec A=5, B=2, C=10, et D=7, ca marchera pas.
Si vous ne comprenez pas ce code, relisez-le lentement, et décomposez la combinaison de conditions. Vous DEVEZ la comprendre.

Pfiou ! Ca va ? Tant mieux, on va passer maintenant aux BOUCLES qui servent à... Bin rendez-vous à la Leçon 4 !...

Leçon précédente | Retour TI-Basic | Leçon suivante