16
GEF 243B Programmation informatique appliquée Expressions logiques

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

Embed Size (px)

Citation preview

Page 1: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

GEF 243BProgrammation informatique

appliquée

Expressions logiques

Page 2: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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

Page 3: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

Synopsis

• Logique• Opérateurs conditionnels

Opérateurs logiquesOpérateurs relationnels

• Expressions logiques• Expressions logiques compléments

Page 4: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

Logique

Les insultes sont efficaces seulement là où les émotions sont présentes. "Who Mourns for Adonais?" stardate 3468.1.

Page 5: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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!

Page 6: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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

Page 7: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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.h

Page 8: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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.

Page 9: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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

Page 10: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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)

Page 11: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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)

Page 12: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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

Page 13: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

Opérateurs relationnels

Page 14: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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

Page 15: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

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 )

Page 16: Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Expressions logiques

Quiz Time

• Quel est l’équivalent positif de:

!( x || (y >= z) && !t || v )

!( y && !(y != z) || (v > t))