gef 243b programmation informatique appliquée expressions logiques §5.1
Post on 03-Apr-2015
115 Views
Preview:
TRANSCRIPT
GEF 243BProgrammation informatique
appliquée
Expressions logiques
§5.1
4/11/23 2JGA Beaulieu
Revue
• Quelle est la valeur de a, b et c si les valeurs initiales étaient a = 2, b = 4 and c = 8b *= c++;
a += --b;
• Si a est int et initialement a = 7 quelle est la valeur de b si b est float?b = (float) (a/12);
4/11/23 3JGA Beaulieu
Synopsis
• Logique• Opérateurs conditionnels
Opérateurs logiquesOpérateurs relationnels
• Expressions logiques• Expressions logiques compléments
4/11/23 4JGA Beaulieu
Logique
Les insultes sont efficaces seulement là où les émotions sont présentes. "Who Mourns for Adonais?" stardate 3468.1.
4/11/23 5JGA Beaulieu
Logique (logic)
• L’étude de la logique provient d’il y a bien longtemps en Grèce ancienne avec Aristote
• Beaucoup de concepts en mathématique moderne sont dues à l’élaboration des syllogismes (un mot bien bizarre) par Aristote
Touts les humains sont mortel
Les élofs sont humain
Vous allez tous mourir!
4/11/23 6JGA Beaulieu
Logique (logical)
• Dans la vie nous posons souvent des questions qui peuvent avoir plusieurs réponses: Quelle est cette couleur?Comment fiable est-ce que c’est?Pourquoi trouvez-vous cela plate?...
• Ces questions sont bonnes pour la consommation par les humains, mais un ordinateur ne comprend que deux choses : on-off0-1vrai-faux
4/11/23 7JGA Beaulieu
Logique (logical)
• Un morceau d’information est dit logique si il indique l’idée de vrai ou faux Une expression logique doit se réduire à une
valeur simple de vrai ou faux
• On se souvient que ANSI C99 a le type booltrue est 1 false est 0
• Vous devez avoir en inclusion stdbool.hCependant ceci a été fait pour vous dans le SpiderRobot
4/11/23 8JGA Beaulieu
Opérateurs logiques
• En C il y a trois opérateurs logiques.
• Écoutez && apprenez || ! c’est votre choix.! – Opérateur non (pas)&& – Opérateur logique et|| – Opérateur logique ou
• Les opérateurs sont listés en ordre de précédence.
4/11/23 9JGA Beaulieu
Logique – Table de vérité de l’opérateur non en C
x !x
false
zéro
true
1
true
non-zéro
false
0
4/11/23 10JGA Beaulieu
Logique – Table de vérité de l’opérateur et en C
x y x && y
false
(0)
false
(0)
false
(0)
false
(0)true (non-
zéro)
false
(0)
true (non-zéro)
false
(0)
false
(0)
true (non-zéro)
true (non-zéro)
true
(1)
4/11/23 11JGA Beaulieu
Logique – Table de vérité de l’opérateur ou en C
x y x || y
false
(0)
false
(0)
false
(0)
false
(0)true (non-zéro) true
(1)
true (non-zéro) false
(0)
true
(1)
true (non-zéro) true (non-zéro) true
(1)
4/11/23 12JGA Beaulieu
Opérateurs relationnels
• Les opérateurs logiques sont la “colle” qui garde les expressions logiques ensembles.
• Les expressions logiques sont crées à partir des relations entre les données
• Par exemple, vous pouvez relier deux entiers ensemble en demandant:Est-ce que les entiers sont égales?Est-ce que un entier est plus grand que l’autre?Est-ce que un entier est le même ou plus petit?
• Il y a six opérateurs relationnels en C
4/11/23 13JGA Beaulieu
Opérateurs relationnels
4/11/23 14JGA Beaulieu
Opérateurs relationnels
• Les opérateurs relationnels ont des compléments
expression originale expression simplifiée
!(x < y) x >= y
!(x > y) x <= y
!(x != y) x == y
!(x <= y) x > y
!(x >= y) x < y
!(x == y) x != y
4/11/23 15JGA Beaulieu
Opérateurs relationnels complément
• Les opérateurs logiques ont aussi leurs compléments : La règle de De MorganSi vous avez une expression du type !(…) et que vous
voulez enlever le non, vous appliquez le! à chaque sous expression et vous prenez le complément
(!x || !y) && z && (!t || u)
!( x && y || !z || t && !u )
4/11/23 16JGA Beaulieu
Quiz Time
• Quel est l’équivalent positif de:
!( x || (y >= z) && !t || v )
!( y && !(y != z) || (v > t))
top related