Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
A quoi servent les conditions ?
Tout simplement
à tester les valeurs des variables, pour ensuite effectuer différentes actions en fonction de leur statut.
Un exemple de la vie courante pour expliquer tout ça.
Citation : SituationJe sors de chez moi.
Quelle température fait-il ?
SI il fait moins de 20°C, je prends mon manteau.
SI il fait plus de 20°C, je prends mes lunettes.
Le mot important ici est le SI, c'est l'instruction de base pour les conditions. Sur votre Ti, l'instruction s'appelle
If. Vous la trouverez dans
[PRGM], CLT, ligne 1.
Code : Pascal
Il faudrait quand même tester quelque chose non ?
Pour tester une valeur de variable, vous avez à votre disposition 6 outils que vous trouverez en faisant
[2nd] + [MATH], que vous retrouvez ici :
| Symbole | Signification |
|---|
| = |
est égal à |
| != |
est différent de |
| > |
est supérieur |
| > |
est supérieur ou égal à |
| < |
est inférieur à |
| < |
est inférieur ou égal à |
Par exemple,
Code : Pascal1
2
3
4 | :5->A
:If A>5
:If A=5
:If (A+1)<5
|
Ce code ne fait rien, et c'est normal !
Il faut déterminer les actions que devra exécuter le programme en fonction du résultat du test.
Pour cela, on utilise deux autres commandes :
Then et
End, que vous trouverez dans
[PRGM], Clt, ligne 2 & 7.
Voici la syntaxe:
Code : Pascal1
2
3
4 | :If [Condition]
:Then
://[Exécution des lignes comprises entre Then et End]
:End
|
Un petit programme pour résumer tout ça !
Code : Pascal 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | :ClrHome
:Disp "TEMPERATURE ?"
:Input ": ",T
:If T<20
:Then
:Disp "PENSE A TON"
:Disp "MANTEAU"
:End
:If T>20
:Then
:Disp "PENSE A TES"
:Disp "LUNETTES"
:End
:Output(1,1,"
|
Ce n'est pas plus compliqué que ça !
(Remarquez qu'il y a quand même une petite erreur. Essayez d'entrer 20 pour voir. Le cas n'est pas pris en compte.)
Si jamais vous voulez effectuer uniquement une seule action après le
If, vous pouvez ignorer le
Then et le
End. Le programme ne prendra alors en compte que la ligne suivante.
Code : Pascal1
2
3
4 | :6->A
:If A<5
:Disp "BONJOUR" // n'écrit pas cette ligne
:Disp "AU REVOIR" // mais celle-là, oui !
|
Reprenons la situation que j'avais décrite en début de chapitre, et tentons de l'écrire d'une autre façon.
Citation : SituationJe sors de chez moi.
Quel température fait-il ?
SI il fait moins de 20°C, je prends mon manteau.
SINON je prends mes lunettes.
Cette fois-ci, on a utilisé le mot SINON. Si la condition introduite par le Si est fausse, c'est qu'il fait plus de 20°C, donc on prend ses lunettes.
SINON permet d'exécuter une partie de code
si la condition testée n'est pas réalisée.
(En anglais, Sinon se traduit par
Else.)
Vous le trouverez dans
[PRGM], Clt, ligne 3.
Utilisez-le de cette manière :
Code : Pascal1
2
3
4
5
6 | :If [Condition]
:Then
://[Code exécuté si la condition est VRAIE]
:Else
://[Code exécuté si la condition est FAUSSE]
:End
|
On peut maintenant réécrire le code de tout à l'heure d'une autre manière.
Code : Pascal 1
2
3
4
5
6
7
8
9
10
11
12 | :ClrHome
:Disp "TEMPERATURE ?"
:Input ": ",T
:If T<20
:Then
:Disp "PENSE A TON"
:Disp "MANTEAU"
:Else
:Disp "PENSE A TES"
:Disp "LUNETTES"
:End
:Output(1,1,"
|
Même si le code est différent, l'effet sera le même. Mais vous avez maintenant un code un peu plus léger et plus simple à comprendre.
Code : Pascal1
2
3
4
5 | :6->A
:If A<5
:Disp "BONJOUR"
:Else
:Disp "AU REVOIR"
|
Ce code ne marche pas ! Vous devez utilisez un Then et un End quand vous introduisez un Else dans vos tests.
Opérateurs ? Logiques ? Qu'est-ce ça peut bien être, ça ?

C'est ce qui permet de
tester plusieurs conditions à la fois !
Par exemple,
Citation : Situation- Je sors s'il fait beau ET s'il fait plus de 20°C.
- Je ne sors pas s'il fait moins de 20°C OU s'il pleut.
On a utilisé un mot (une conjonction de coordination) pour pouvoir réunir 2 conditions. Et c'est exactement la même chose en Ti-Basic, les opérateurs logiques sont disponibles en faisant
[2nd] puis [MATH] puis [>] (Logic).
Ils sont au nombre de 4.
Regardons d'abord la syntaxe.
Code : Pascal1
2
3
4 | :If [Condition 1] [Opérateur logique] [Condition 2]
:Then
:
:End
|
and
Imaginons 2 conditions A et B avec deux états possibles (Vrai et Faux), relié par un opérateur
AND qui influent sur le test réalisé S (qui peut être Vrai ou Faux).
| A | B | S |
|---|
| Faux |
Faux |
Faux |
| Faux |
Vrai |
Faux |
| Vrai |
Faux |
Faux |
| Vrai |
Vrai |
Vrai |
Le test est donc réalisé seulement
si les deux conditions sont réalisées (
ET).
Code : Pascal1
2 | :If A=5 and B>3
:Disp "BONJOUR"
|
Pour afficher Bonjour, A doit être égal à 5
ET B supérieur à 3.
Code : PascalSi A est compris entre 10 et 20 (non compris).
or
| A | B | S |
|---|
| Faux |
Faux |
Faux |
| Faux |
Vrai |
Vrai |
| Vrai |
Faux |
Vrai |
| Vrai |
Vrai |
Vrai |
Le test est réalisé seulement
si une des deux conditions est réalisée (
OU).
Code : PascalSi A est égal à 4
OU B est égal à 5.
xor
| A | B | S |
|---|
| Faux |
Faux |
Faux |
| Faux |
Vrai |
Vrai |
| Vrai |
Faux |
Vrai |
| Vrai |
Vrai |
Faux |
Le test est réalisé seulement
si une des deux conditions est réalisé (
"OU" exclusif).
Code : Pascal
Si A est égal à 5, et si C est différent de 3,
ou si A est différent de 5, et C est égal à 3 (compliqué non ?

).
not(
Cette fois-ci, on n'a qu'une condition.
Le
not inverse la condition testée : si elle est fausse, elle devient vraie; si elle vraie, elle devient fausse.
Code : Pascal1
2 | :If not(C=6) // Si C n'est pas égal à 6.
:If C != 6 // peut aussi s'écrire comme ça.
|
(N'écrivez pas "!" puis "=", mais bien le symbole "différent de" dans Logic)
Encore plus de conditions
Nous avons déja lié deux conditions ensemble. Mais vous pouvez en utiliser plusieurs dans un même test, en utilisant plusieurs opérateurs logiques. Par exemple :
Code : Pascal
Mais faites très attention aux comportements de vos tests s'ils comportent des opérateurs logiques différents, et n'hésitez pas à utilisez des parenthèses pour donner la priorité à certaines conditions. Regardez ce test et sa table de vérité.
Code : Pascal
| A | B | C | S |
|---|
| Faux |
Faux |
Faux |
Vrai |
| Faux |
Faux |
Vrai |
Faux |
| Faux |
Vrai |
Faux |
Vrai |
| Faux |
Vrai |
Vrai |
Faux |
| Vrai |
Faux |
Faux |
Vrai |
| Vrai |
Faux |
Vrai |
Faux |
| Vrai |
Vrai |
Faux |
Vrai |
| Vrai |
Vrai |
Vrai |
Vrai |
Rajoutons des parenthèses.
Code : Pascal
| A | B | C | S |
|---|
| Faux |
Faux |
Faux |
Faux |
| Faux |
Faux |
Vrai |
Faux |
| Faux |
Vrai |
Faux |
Faux |
| Faux |
Vrai |
Vrai |
Faux |
| Vrai |
Faux |
Faux |
Vrai |
| Vrai |
Faux |
Vrai |
Faux |
| Vrai |
Vrai |
Faux |
Vrai |
| Vrai |
Vrai |
Vrai |
Vrai |
Comme quoi, il est assez difficile de prévoir le comportement d'un test. C'est parfois pratiquement impossible. Essayez par exemple de savoir comment va se comporter un test de cette forme-là :
Code : Pascal1 | :If [c1] xor [c2] xor [c3] xor [c4]
|
Je vous propose un petit exercice.
Ecrivez le test
:If A=5 xor C=3 seulement avec des
AND et des
OR.
Secret (cliquez pour afficher)Code : Pascal1 | :If (A=5 and C!=3) or (A!=5 and C=3)
|