Aller au menu - Aller au contenu

Les conditions


Informations sur le tutoriel

Avatar
Auteur : Lanfeust 313
Visualisations : 64 993


Plus d'informations Plus d'informations

Historique des mises à jour

  • Le 20/08/2009 à 12:18:58
    Mise en ligne après correction
  • Le 20/08/2009 à 12:14:37
    Correction alerte #a829
Les conditions, c'est un chapitre incoutournable. C'est grâce à ça qu'on pouvoir complexifier un peu nos programmes. Alors ne passez pas à côté de ce chapitre ! ;)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

If ...

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 : Situation
Je 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
1
:If

Il faudrait quand même tester quelque chose non ? :lol:
Pour tester une valeur de variable, vous avez à votre disposition 6 outils que vous trouverez en faisant [2nd] + [MATH], que vous retrouvez ici :

SymboleSignification
= 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 : Pascal
1
2
3
4
:5->A
:If A>5
:If A=5
:If (A+1)<5


Ce code ne fait rien, et c'est normal ! :p
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 : Pascal
1
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,"


Image utilisateur

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 : Pascal
1
2
3
4
:6->A
:If A<5
:Disp "BONJOUR" // n'écrit pas cette ligne
:Disp "AU REVOIR" // mais celle-là, oui !


Image utilisateur

Else ...

Reprenons la situation que j'avais décrite en début de chapitre, et tentons de l'écrire d'une autre façon.
Citation : Situation
Je 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. :soleil:

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 : Pascal
1
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 : Pascal
1
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

Opérateurs ? Logiques ? Qu'est-ce ça peut bien être, ça ? :euh:
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 : Pascal
1
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).
ABS
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 : Pascal
1
2
:If A=5 and B>3
:Disp "BONJOUR"
Pour afficher Bonjour, A doit être égal à 5 ET B supérieur à 3.

Code : Pascal
1
:If A>10 and A<20
Si A est compris entre 10 et 20 (non compris).

or


ABS
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 : Pascal
1
:If A=4 or B=5
Si A est égal à 4 OU B est égal à 5.

xor


ABS
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
1
:If A=5 xor C=3

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 ? :lol: ).

not(


Cette fois-ci, on n'a qu'une condition.
AS
Faux Vrai
Vrai Faux

Le not inverse la condition testée : si elle est fausse, elle devient vraie; si elle vraie, elle devient fausse.
Code : Pascal
1
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
1
:If A=5 and B=5 and C=7


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
1
:If A=1 and B=1 or C=0

ABCS
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
1
:If A=1 and (B=1 or C=0)

ABCS
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à : :lol:
Code : Pascal
1
: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 : Pascal
1
:If (A=5 and C!=3) or (A!=5 and C=3)

Et maintenant la suite : Les boucles !
Chapitre précédent Sommaire Chapitre suivant

Informations sur le tutoriel

Retour en haut Retour en haut

Créé : Le 06/05/2006 à 10:10:28
Modifié : Le 22/08/2008 à 15:50:59
Avancement : 0%
Licence : Copie non autorisée

4 commentaires