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)
|