L'essentiel du langage C

Définir les opérateurs logiques

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez passer en revue les opérations de type logique avec ET et OU. Vous allez également les analyser avec les priorités associées.
08:07

Transcription

Nous allons aborder les opérateurs logiques qui font partie des nombreux opérateurs que nous allons tous décrire. Donc, les opérateurs logiques se décomposent en 3 grandes familles. Vous avez le OU, le ET et le NON logique. Comment les représente-t-on ? Pour le OU, en fait, il s'agit d'une double barre. Vous la trouvez en fait en faisant Alt Gr et la touche 6 Il se peut que sur votre clavier, la représentation soit une ligne discontinue. Mais vous verrez qu'elle sera bien continue dans votre compilateur. Pensez cependant à bien appuyer deux fois sur la touche pour avoir deux barres. Qu'est-ce que cela signifie ? Que je vais comparer deux conditions. Attention, ici, on va parler de conditions et non pas de chiffres, je ne vais pas comparer. Sinon j'utilise les opérateurs de comparaison et non pas des opérateurs logiques. Donc, des conditions. Si la condition1 est remplie ou la condition2 est remplie, dans ce cas-là, j'effectue mon action. Si aucune des deux n'est vraie, dans ce cas-là, je n'effectue rien. En tout cas, il en faut au moins une sur les deux. Pour le ET, c'est pareil sur le fonctionnement. Il s'agit de deux conditions. Alors là, cette fois-ci, comment elles fonctionnent ? C'est très simple. Il faut que les deux conditions soient réunies pour valider le fait qu'elles soient vraies. Et après, vous avez le NON logique où cette fois-ci, vous mettez "!" et votre condition derrière. Et là, en fait, c'est... Si c'est faux, j'accepte le fait de continuer. Alors, les priorités sur les conditions. Vous avez le OU logique qui est de niveau 6, le ET logique, de niveau 4, et le NON logique, de niveau 12 ; et vous pouvez évidemment combiner les expressions. Alors, ça devient quand même des fois un petit peu ardu mais là, j'ai fait exprès de prendre un exemple un petit peu complexe. Si j'écris : (condition1) || (condition2) && (condition3) ! (condition 4), ça veut dire que dans l'ordre de priorité, je vais d'abord vérifier que ma (condition4) est fausse. Donc, elle ne doit pas exister puisque c'est un NON. Donc ici, elle doit retourner un 0 Si cette condition-là est remplie vu que je suis au niveau 6 de priorité pour le OU, je regarde ici, est-ce que ma (condition1) OU ma (condition2) est remplie ? Si l'une des deux est vraie, ok, je retourne 1 puis enfin, le ET logique où cette fois-ci si une des deux conditions qui était ici est un 1 et que celle-ci est un 1 et que celle-ci, finalement, est un 1, là, dans ce cas-là, tout est vrai et je vais vous voir passer à la suite de mon programme. Vous voyez, ça peut devenir un petit peu compliqué donc, c'est pour ça qu'il ne faut pas en abuser. Donc, nous allons voir un exemple tout de suite sur un programme. Donc nous voici dans le code source qui est associé aux opérateurs logiques. Donc, nous sommes toujours dans le template habituel et dans la déclaration globale des variables. J'ai gardé les mêmes notations. Et j'ai gardé exactement les mêmes variables que dans nos programmes précédents. Maintenant, ici je fais le rappel que j'ai déjà fait la fois précédente. à savoir que lorsqu'on reçoit un 0, on peut dire que la condition est fausse, et un 1, la condition est vraie. Regardons un peu les calculs que je demande d'effectuer auprès de mon programme. Donc, à savoir, est-ce que le nombre_char1 est égal au nombre_char2 ? Visiblement, non. Est-ce qu'il est différent ? Oui. Mais il y a un ET logique entre les deux. Que va être le résultat ? Maintenant, on fait la même chose avec un OU. Que va être le résultat ? Et maintenant, on va essayer de mouliner encore plus en mélangeant du ET et du OU On va bien regarder le résultat que ça va donner et après, j'inverse en fait. Je regarde si le nombre_char1 et le nombre_char2 sont différents. Oui, mais après, j'inverse tout. Voyons un peu ce que ça donne. Donc, passons à la compilation, et regardons la fenêtre de compilation en parallèle de notre programme. Je suis ici et ce qui est intéressant commence à partir de là. Nous prenons notre fenêtre et regardons. Donc, j'effectue cette première opération. Elle est fausse ou elle est vraie. On regarde. Alors, nombre_char, non. nombre_char1 est différent de nombre_char2. Donc là, cette condition est fausse. Par contre, celle-ci est vraie. Mais puisque c'est un ET logique, dès que j'en ai une des deux qui est fausse, le résultat est faux. Donc, le résultat renvoyé ici par result_char est un 0, donc faux. On regarde l'opération suivante. Ici, nous avons nombre_char1 et nombre_char2, Est-ce qu'ils sont égaux? Toujours pas, ça n'a pas changé Mais j'ai mis un OU. Cette fois-ci, il suffit qu'il y en ait un des deux qui soit vrai pour que le résultat soit vrai. En effet, ici le résultat est vrai, celui-là est faux. Mais donc, il est vrai. Et donc, je retrouve bien ici ma ligne nombre_char avec vrai parce que j'ai bien un 1. Continuons. Cette fois-ci, ça se corse. On va essayer d'y mettre du ET et du OU Donc, (nombre_char1nombre_char2) && (nombre_char1 !=nombre_char2) || (nombre_char1 !=nombre_char2) et à la fin, ça nous fait quelque chose qui est vrai parce qu'il nous donne 1 Ah bon ? Et pourquoi ? Si on regarde, est-ce que nombre_char1 qui vaut 10 est plus grand que nombre_char2 ? Non, c'est faux. Et je fais un ET Donc, si ça avait été là, déjà là, j'aurai 0 Seulement, j'ai mon OU qui est derrière et mon OU est plus prioritaire que mon ET dans mes priorités de logiques. Moralité : Je me retrouve avec un result_char qui se retrouve vrai. Alors, maintenant, on va faire l'inverse. On regarde ici. Est-ce que ça c'est vrai ? Bah oui, nombre_char1 est bien différent de nombre_char2 10 est différent de 20 On est d'accord ? Mais on inverse. Donc, j'ai du 1 mais après j'inverse. Donc, j'ai 0 O, donc vraiment faux. Eh oui, l'erreur est vraiment fausse, ou faussement vraie. C'est comme vous voulez. Donc voilà. J'espère que vous avez compris un peu toute la subtilité des opérateurs logiques par ce commentaire de notre programme qui est ici et avec la fenêtre de commande qui nous a donné la confirmation de la petite théorie que je vous avais exposée juste avant.

L'essentiel du langage C

Comprenez les concepts de base du langage C. Développez de simples applications en mode console, afin de comprendre les rouages d’un des langages les plus utilisés au monde.

7h51 (98 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !