Tutorial 04

Les opérateurs logiques

 

Nouvelles commandes :

> "=" = Compare deux variables et donne 1 si elles contiennent la même valeur (égal) [2nd] [TEST] [1]
> "<>" = Compare deux variables et donne 1 si elles ne sont pas égalles (différent) [2nd] [TEST] [2]
> ">" = Compare deux variables et donne 1 si la première est plus grande que la deuxième (supérieur à) [2nd] [TEST] [3]
> ">" = Compare deux variables et donne 1 si la première est plus grande ou égale à la deuxième (supérieur ou égal à) [2nd] [TEST] [4]
> "<" = Compare deux variables et donne 1 si la première est plus petite que la deuxième (inférieur à) [2nd] [TEST] [5]
> "<" = Compare deux variables et donne 1 si la première est plus petite ou égale à la deuxième (inférieur ou égal à) [2nd] [TEST] [6]
> and = Compare deux variables et donne 1 si elles contiennent toutes deux la valeur 1 [2nd] [TEST] [>] [1]
> or = Compare deux variables et donne 1 si l'une, l'autre ou les deux contiennent la valeur 1 [2nd] [TEST] [>] [2]
> xor = Compare deux variables et donne 1 si l'une ou l'autre mais pas les deux contient la valeur 1 [2nd] [TEST] [>] [3]
> not( = Donne l'inverse de la variable (1 si elle contient 0 et 0 si elle contient 1) [2nd] [TEST] [>] [4]

Introduction :

Ça commence à être plus difficile! Mais ce tutorial nous aidera pour le prochain : donc soyez attentif.

"TEST" :

Parce qu'un bon exemple vaut mieux qu'un long discours, voici un programme permettant de tester les fonctions de l'onglet "TEST" du menu [2nd] [TEST] :
Voici le programme :
:ClrHome Efface l'écran texte : Demande des valeurs
:Prompt A,B
Demande à l'utilisateur d'enter un chiffre qui sera stoqué dans A puis un autre pour B
:ClrHome Efface l'écran texte : On va avoir besoins de tout l'écran
:Disp "A=B :"
Texte introdusant le résultat obtenu avec A=B
:Disp "A<>B :"
Idem avec A<>B
:Disp "A>B :"
Idem avec A>B
:Disp "A>B :"
Idem avec A>B
:Disp "A<B :"
Idem avec A<B
:Disp "A<B :"
Idem avec A<B
:Output(1,7,A=B
Affiche le résultat de A=B juste à côté du texte qui vient d'être affiché (Ne pas mettre de "")
:Output(2,7,A<>B
Idem avec le résultat de A<>B
:Output(3,7,A>B
Idem avec le résultat de A>B
:Output(4,7,A>B
Idem avec le résultat de A>B
:Output(5,7,A<B
Idem avec le résultat de A<B
:Output(6,7,A<B
Idem avec le résultat de A<B
Une fois les resultats affichés, appuyez sur [ENTER] pour sésire de nouvelles valeurs.
Essayez plusieures valeurs et voyez les résultats : ce sont les fonctions mathématiques : c'est très simple...
Si vous ne voyez pas comment fonctionne une fonction, voyez, ci-dessus, "Nouvelles commandes".

"LOGIC" :

De même que pour l'onglet TEST, nous allons faire un programme pour mieux comprendre les nouvelles fonctions de l'onglet "LOGIC" du menu [2nd] [TEST] :
Voici le programme :
:ClrHome Début idem que le dernier programme : Souvenez-vous...
:Prompt A,B

:ClrHome
:Disp "A and B :"
Texte introdusant le résultat obtenu avec A and B
:Disp "A or B :"
Idem avec A or B. Deux espaces avant les deux points
:Disp "A xor B :"
Idem avec A xor B
:Disp "not(A) :"
Idem avec A xor B. Deux espaces avant les deux points
:Output(1,11,A and B
Affiche le résultat de A and B juste à côté du texte (Ne pas mettre de "")
:Output(2,11,A or B
idem avec le résultat de A or B
:Output(3,11,A xor B
idem avec le résultat de A xor B
:Output(4,11,not(A)
idem avec le résultat de not(A)
Une fois les resultats affichés, appuyez sur [ENTER] pour sésire de nouvelles valeurs.
Essayez plusieures valeurs et voyez les résultats : c'est un peu plus dur que les fonctions mathématiques car vous n'avez certainement jamais vu ça en classe mais c'est très utile dans des programmes.
Attention : introduisez seulement des 0 ou des 1 : sinon, tout chiffre différent de 0 sera compris comme un 1 par la TI : essayez... Dans vos futurs programmes, il faudra prendre en compte cette possibilité d'erreur.
Si vous ne voyez pas comment fonctionne une fonction, voyez, ci-dessus, "Nouvelles commandes".

Tables de vérité :

Voici tous les resultats possibles que vous pouvez obtenir avec le programme que nous avons créé sous forme de tableaux, plus compréhenssibles.

  and or xor
A=0 B=0 0 0 0
A=0 B=1 0 1 1
A=1 B=0 0 1 1
A=1 B=1 1 1 0
  not(
A=0 1
A=1 0

Inverser l'état d'une variable :

Nous venons de voir l'opérateur xor. Nous allons voir qu'il possède la propriété d'inverser l'état d'une variable. Il suffit de faire comme ceci : variable xor 1->variable. C'est tout simple!
Inversion de l'état de V :
:ClrHome
:0->X
Initialisation de X
:Disp X
Affiche X (0)
:X xor 1->X Inversion de l'état de X
:Disp X
Affiche X (1)
:X xor 1->X Inversion de l'état de X
:Disp X
Affiche X (0)
:X xor 1->X Inversion de l'état de X
:Disp X
Affiche X (1)
Pour comprendre, regardez la table de vérité de la fonction xor. Vous voyez, à la deuxième ligne, que si A=0 et B=1 alors le résultat sera 1. En reprenant ce résultat pour la variable A nous procédons comme à la quatrième ligne : si A=1 et B=1 alors le résultat est égal à 0.
Maintenant, à quoi cela peut-il servir? À plein de choses! Comme, par exemple, dans un jeu à deux joueurs qui jouent l'un après l'autre : si X a pour valeur 0 alors c'est au tour du joueur un sinon (si X=1) c'est au joueur 2. etc... Il était donc bon de s'attader sur la particularité de cette fonction (car, je supose que vous n'allez pas faire beaucoup de programmes pour travailler?).

Conclusion :

Maintenant, nous allons voir les conditions et branchements, qui utilisent les notions que nous venons de voir. Donc assimilez bien et exécutez autant de fois qu'il vous le faut les programmes que nous venons de faire.

Retour : Sommaire
Aide : Liste des commandes
Précédent : Tutorial 03 : Communiquer avec l'utilisateur
Suivant : Tutorial 05 : Conditions et branchements