109

Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Embed Size (px)

Citation preview

Page 1: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Algorithmes conditionnelsLicence 1 MASS - Introduction à Java et à l'algorithmique

Olivier [email protected]

<deptinfo.unice.fr/�dalle/>NB: Ce cours a été mis au point par mon collègue Sébastien

Vérel, actuellement en congé de recherche.

Équipe Mascotte, commune I3S - CNRS/UNS & INRIASophia Antipolis

Page 2: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Objectifs de la séance 2

1 Ecrire un algorithme avec des a�ectations

2 Ecrire un algorithme qui échange la valeur de deux variables

3 Savoir utiliser les entrées de la souris avec Processing

4 Ecrire un algorithme avec des tests simples

5 Ecrire un algorithme avec un test multiple

6 Ecrire des programmes java avec des tests simples ou multiples

Question principale du jour :

Comment écrire des algorithmes qui prennent en compte dessituations di�érentes ?

Olivier Dalle Algorithmes conditionnels

Page 3: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Objectifs de la séance 2

1 Ecrire un algorithme avec des a�ectations

2 Ecrire un algorithme qui échange la valeur de deux variables

3 Savoir utiliser les entrées de la souris avec Processing

4 Ecrire un algorithme avec des tests simples

5 Ecrire un algorithme avec un test multiple

6 Ecrire des programmes java avec des tests simples ou multiples

Question principale du jour :

Comment écrire des algorithmes qui prennent en compte dessituations di�érentes ?

Olivier Dalle Algorithmes conditionnels

Page 4: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Plan

1 Variables et a�ectations

2 Logique booléenne

3 Schéma conditionneltests simplesTests multiples

Olivier Dalle Algorithmes conditionnels

Page 5: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Utilité des variables

Lors d'un calcul, pendant le traitement de données,quasiment toujours nécessaire de stocker certaines valeursprovisoirement

Des exemples ?

Crible d'Erastothène : nombres rayés ou non

Euclide : nombres a et b du pgcd

..., etc, ...

Olivier Dalle Algorithmes conditionnels

Page 6: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Utilité des variables

Lors d'un calcul, pendant le traitement de données,quasiment toujours nécessaire de stocker certaines valeursprovisoirement

Des exemples ?

Crible d'Erastothène : nombres rayés ou non

Euclide : nombres a et b du pgcd

..., etc, ...

Olivier Dalle Algorithmes conditionnels

Page 7: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Utilité des variables

Pour stocker cette information, on emploie des variables

12

A

remarque : L'étiquette est traduite en machine par une adressebinaire (0010010001000101)

Olivier Dalle Algorithmes conditionnels

Page 8: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Type des variables

Ces variables peuvent être de types di�érents :

nombre entier : int

nombre réel (approché) : �oat, double

caractères : char

chaîne de caractères : String

booléen (dont la valeur est VRAI ou FAUX) : boolean

...

Type : considéré comme un ensemble regroupant des valeurs auquels'applique certaines méthodes spéci�ques.

Olivier Dalle Algorithmes conditionnels

Page 9: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Type des variables

Ces variables peuvent être de types di�érents :

nombre entier : int

nombre réel (approché) : �oat, double

caractères : char

chaîne de caractères : String

booléen (dont la valeur est VRAI ou FAUX) : boolean

...

Type : considéré comme un ensemble regroupant des valeurs auquels'applique certaines méthodes spéci�ques.

Olivier Dalle Algorithmes conditionnels

Page 10: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Expression

Expression

Ensemble de valeurs, reliées par des opérateurs binaires, équivalentà une seule valeur.

Toute expression a un type.

Olivier Dalle Algorithmes conditionnels

Page 11: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5

int

16.3

�oat

16.0

�oat

-3

int

Olivier Dalle Algorithmes conditionnels

Page 12: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5

int

16.3

�oat

16.0

�oat

-3

int

Olivier Dalle Algorithmes conditionnels

Page 13: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5

int

16.3

�oat

16.0

�oat

-3

int

Olivier Dalle Algorithmes conditionnels

Page 14: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5

int

16.3

�oat

16.0

�oat

-3

int

Olivier Dalle Algorithmes conditionnels

Page 15: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5

int

16.3

�oat

16.0

�oat

-3

int

Olivier Dalle Algorithmes conditionnels

Page 16: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5 + 12

int

16 / 3

int

15 − 5.3

�oat

5.4 % 2

�oat

Olivier Dalle Algorithmes conditionnels

Page 17: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5 + 12

int

16 / 3

int

15 − 5.3

�oat

5.4 % 2

�oat

Olivier Dalle Algorithmes conditionnels

Page 18: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5 + 12

int

16 / 3

int

15 − 5.3

�oat

5.4 % 2

�oat

Olivier Dalle Algorithmes conditionnels

Page 19: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5 + 12

int

16 / 3

int

15 − 5.3

�oat

5.4 % 2

�oat

Olivier Dalle Algorithmes conditionnels

Page 20: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Calcul de types

De quel type sont les expressions suivantes ?

5 + 12

int

16 / 3

int

15 − 5.3

�oat

5.4 % 2

�oat

Olivier Dalle Algorithmes conditionnels

Page 21: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Déclaration de variable en java

type nomDeLaVariable ;

Exemples :

int x ;

float a, b;

char premierLettre ;

int sumTotal ;

Toute variable utilisée doit être déclarée

Convention d'écriture en java :première lettre d'une variable est en minuscule et les "mots"suivants commencent par une majuscule.

Olivier Dalle Algorithmes conditionnels

Page 22: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Arithmétique des nombres �ottants

Combien d'entiers peut-on coder sur 4 octets ?

232 positifs ou 231 signés

Dans un ordinateur, tout est de taille �nie etles �ottants sont codés sur 4 octects.

Quelle est en la conséquence ?

Précision des �ottants

Olivier Dalle Algorithmes conditionnels

Page 23: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Arithmétique des nombres �ottants

Combien d'entiers peut-on coder sur 4 octets ?

232 positifs ou 231 signés

Dans un ordinateur, tout est de taille �nie etles �ottants sont codés sur 4 octects.

Quelle est en la conséquence ?

Précision des �ottants

Olivier Dalle Algorithmes conditionnels

Page 24: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Arithmétique des nombres �ottants

Combien d'entiers peut-on coder sur 4 octets ?

232 positifs ou 231 signés

Dans un ordinateur, tout est de taille �nie etles �ottants sont codés sur 4 octects.

Quelle est en la conséquence ?

Précision des �ottants

Olivier Dalle Algorithmes conditionnels

Page 25: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Arithmétique des nombres �ottants

Combien d'entiers peut-on coder sur 4 octets ?

232 positifs ou 231 signés

Dans un ordinateur, tout est de taille �nie etles �ottants sont codés sur 4 octects.

Quelle est en la conséquence ?

Précision des �ottants

Olivier Dalle Algorithmes conditionnels

Page 26: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

A�ectation

Attribuer à une variable une valeur.

notation en pseudo-code :

var ← expr

A

12 12

A

en java :

var = expr

Olivier Dalle Algorithmes conditionnels

Page 27: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

A�ectation

Attribuer à une variable une valeur.

notation en pseudo-code :

var ← expr

A

12 12

A

en java :

var = expr

Olivier Dalle Algorithmes conditionnels

Page 28: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

A�ectation

Attribuer à une variable une valeur.

notation en pseudo-code :

var ← expr

A

12 12

A

en java :

var = expr

Olivier Dalle Algorithmes conditionnels

Page 29: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en pseudo-code

1. A← 3

1. A← 32. B ← A

1. A← 32. B ← 53. A← B

4. B ← A

1. A← 32. B ← 53. C ← A

3. A← B

4. B ← C

(ce dernier est à connaitre !)

Olivier Dalle Algorithmes conditionnels

Page 30: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en pseudo-code

1. A← 3

1. A← 32. B ← A

1. A← 32. B ← 53. A← B

4. B ← A

1. A← 32. B ← 53. C ← A

3. A← B

4. B ← C

(ce dernier est à connaitre !)

Olivier Dalle Algorithmes conditionnels

Page 31: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en pseudo-code

1. A← 3

1. A← 32. B ← A

1. A← 32. B ← 53. A← B

4. B ← A

1. A← 32. B ← 53. C ← A

3. A← B

4. B ← C

(ce dernier est à connaitre !)

Olivier Dalle Algorithmes conditionnels

Page 32: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en pseudo-code

1. A← 3

1. A← 32. B ← A

1. A← 32. B ← 53. A← B

4. B ← A

1. A← 32. B ← 53. C ← A

3. A← B

4. B ← C

(ce dernier est à connaitre !)

Olivier Dalle Algorithmes conditionnels

Page 33: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en pseudo-code

1. A← 3

1. A← 32. B ← A

1. A← 32. B ← 53. A← B

4. B ← A

1. A← 32. B ← 53. C ← A

3. A← B

4. B ← C

(ce dernier est à connaitre !)

Olivier Dalle Algorithmes conditionnels

Page 34: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en java

int a = 5 ;

int b = a + 3;

int a = 5 ;

int b = a + 3;

a = a + 1;

Olivier Dalle Algorithmes conditionnels

Page 35: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples en java

int a = 5 ;

int b = a + 3;

int a = 5 ;

int b = a + 3;

a = a + 1;

Olivier Dalle Algorithmes conditionnels

Page 36: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Dessin en Processing

Il existe 2 méthodes (fonctions) par défaut en Processing :

setup : exécutée une seule fois

draw : exécutée tous les rafaichissements d'écran (1/50s)dé�ne par la méthode frameRate

Exemples : Toujours et Point

Olivier Dalle Algorithmes conditionnels

Page 37: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Souris en Processing

Il est facile de connaitre la position du pointeur de la souris avecProcessing

2 variables de type int contiennent la position relativement auxdimensions de l'écran :

mouseX : abscisse

mouseY : ordonnée

Exemple : Mouse

Olivier Dalle Algorithmes conditionnels

Page 38: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

George Boole

Mathématicien et logicien anglais (1815 - 1864)

but

Traduire des idées et des concepts en équations,leur appliquer des lois (des transformations) ettraduire inversement l'équation en termes de concepts et d'idées.

Il crée une algèbre binaire :

qui n'accepte que deux valeurs numériques 0 et 1 (faux, vrai),

dé�nie dans un ensemble E muni de deux lois de compositionsinterne (et ,ou)

satisfaisant un certain nombre de propriétés (associativité,distributivité).

−→ algèbre de Boole

Olivier Dalle Algorithmes conditionnels

Page 39: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Notations

Il existe plusieurs types de notations :

Vrai ←→ V ←→ 1

Faux ←→ F ←→ 0

NON ←→ eET ←→ ∧OU ←→ ∨ (attention inclusif !)

IMPLICATION ←→ ⇒EQUIVALENT ←→ ⇔

XOR ←→ ⊕ (ou exclusif : fromage ou dessert)

Olivier Dalle Algorithmes conditionnels

Page 40: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Notations

Il existe plusieurs types de notations :

Vrai ←→ V ←→ 1

Faux ←→ F ←→ 0

NON ←→ eET ←→ ∧OU ←→ ∨ (attention inclusif !)

IMPLICATION ←→ ⇒EQUIVALENT ←→ ⇔

XOR ←→ ⊕ (ou exclusif : fromage ou dessert)

Olivier Dalle Algorithmes conditionnels

Page 41: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Dé�nitions

Littéral

variable dont la valeur de vérité est soit VRAI soit FAUX.

Proposition

Enoncé auquel on associe une valeur de vérité (VRAI ou FAUX)

Tautologie

est une formule qui est toujours VRAI quelque soit les valeurs devérité des littéraux

Olivier Dalle Algorithmes conditionnels

Page 42: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Dé�nitions

Littéral

variable dont la valeur de vérité est soit VRAI soit FAUX.

Proposition

Enoncé auquel on associe une valeur de vérité (VRAI ou FAUX)

Tautologie

est une formule qui est toujours VRAI quelque soit les valeurs devérité des littéraux

Olivier Dalle Algorithmes conditionnels

Page 43: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Dé�nitions

Littéral

variable dont la valeur de vérité est soit VRAI soit FAUX.

Proposition

Enoncé auquel on associe une valeur de vérité (VRAI ou FAUX)

Tautologie

est une formule qui est toujours VRAI quelque soit les valeurs devérité des littéraux

Olivier Dalle Algorithmes conditionnels

Page 44: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemples

a OU b

(a OU b) XOR c

a ET a

a OU VRAI

b OU (NON b)

NON( b OU a )

(a ET NON b) OU (b ET NON a)

Olivier Dalle Algorithmes conditionnels

Page 45: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

ET Vrai Faux

Vrai

Faux

OU Vrai Faux

Vrai

Faux

XOR Vrai Faux

Vrai

Faux

⇒ Vrai Faux

Vrai

Faux

Olivier Dalle Algorithmes conditionnels

Page 46: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

ET Vrai Faux

Vrai Vrai Faux

Faux Faux Faux

OU Vrai Faux

Vrai Vrai Vrai

Faux Vrai Faux

XOR Vrai Faux

Vrai Faux Vrai

Faux Vrai Faux

⇒ Vrai Faux

Vrai Vrai Faux

Faux Vrai Vrai

Olivier Dalle Algorithmes conditionnels

Page 47: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

ET Vrai Faux

Vrai Vrai Faux

Faux Faux Faux

OU Vrai Faux

Vrai Vrai Vrai

Faux Vrai Faux

XOR Vrai Faux

Vrai Faux Vrai

Faux Vrai Faux

⇒ Vrai Faux

Vrai Vrai Faux

Faux Vrai Vrai

Olivier Dalle Algorithmes conditionnels

Page 48: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

ET Vrai Faux

Vrai Vrai Faux

Faux Faux Faux

OU Vrai Faux

Vrai Vrai Vrai

Faux Vrai Faux

XOR Vrai Faux

Vrai Faux Vrai

Faux Vrai Faux

⇒ Vrai Faux

Vrai Vrai Faux

Faux Vrai Vrai

Olivier Dalle Algorithmes conditionnels

Page 49: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

ET Vrai Faux

Vrai Vrai Faux

Faux Faux Faux

OU Vrai Faux

Vrai Vrai Vrai

Faux Vrai Faux

XOR Vrai Faux

Vrai Faux Vrai

Faux Vrai Faux

⇒ Vrai Faux

Vrai Vrai Faux

Faux Vrai Vrai

Olivier Dalle Algorithmes conditionnels

Page 50: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Zoom sur l'implication

p q ⇒Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

A = "je plonge dans la piscine"B = "je suis mouillé"

"SI je plonge dans la piscineALORS je suis mouillé"est un théorème VRAI.

A⇒ B

Lorsque A est VRAI, la conditionest réalisée, donc B est VRAI.

A peut aussi être FAUX et Brestant VRAI.

Peut-on en déduire que lethéorème devient FAUX dans cecas ?

Olivier Dalle Algorithmes conditionnels

Page 51: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Zoom sur l'implication

p q ⇒Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

A = "je plonge dans la piscine"B = "je suis mouillé"

"SI je plonge dans la piscineALORS je suis mouillé"est un théorème VRAI.

A⇒ B

Lorsque A est VRAI, la conditionest réalisée, donc B est VRAI.

A peut aussi être FAUX et Brestant VRAI.

Peut-on en déduire que lethéorème devient FAUX dans cecas ?

Olivier Dalle Algorithmes conditionnels

Page 52: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Zoom sur l'implication

p q ⇒Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

A = "je plonge dans la piscine"B = "je suis mouillé"

"SI je plonge dans la piscineALORS je suis mouillé"est un théorème VRAI.

A⇒ B

Lorsque A est VRAI, la conditionest réalisée, donc B est VRAI.

A peut aussi être FAUX et Brestant VRAI.

Peut-on en déduire que lethéorème devient FAUX dans cecas ?

Olivier Dalle Algorithmes conditionnels

Page 53: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Zoom sur l'implication

p q ⇒Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

A = "je plonge dans la piscine"B = "je suis mouillé"

"SI je plonge dans la piscineALORS je suis mouillé"est un théorème VRAI.

A⇒ B

Lorsque A est VRAI, la conditionest réalisée, donc B est VRAI.

A peut aussi être FAUX et Brestant VRAI.

Peut-on en déduire que lethéorème devient FAUX dans cecas ?

Olivier Dalle Algorithmes conditionnels

Page 54: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Zoom sur l'implication

L'implication est vraie sil'hypothèse est fausse.

p q ⇒Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

Lorqu'un théorème p ⇒ q estvrai,mais que l'on a pas l'hypothèse,alors on ne peut rien en déduiresur q.

Pierre Weis et Xavier Leroy

�on ne peut rien déduire d'unthéorème dont l'hypothèse n'estpas véri�ée��un théorème reste vrai mêmequand il ne s'applique pas�

Olivier Dalle Algorithmes conditionnels

Page 55: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Zoom sur l'implication

L'implication est vraie sil'hypothèse est fausse.

p q ⇒Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

Lorqu'un théorème p ⇒ q estvrai,mais que l'on a pas l'hypothèse,alors on ne peut rien en déduiresur q.

Pierre Weis et Xavier Leroy

�on ne peut rien déduire d'unthéorème dont l'hypothèse n'estpas véri�ée��un théorème reste vrai mêmequand il ne s'applique pas�

Olivier Dalle Algorithmes conditionnels

Page 56: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

Un connecteur logique booléen est dé�ni par une table de vérité etréciproquement.

Il existe 16 connecteurs logiques binaires (pourquoi ?).

Vrai Faux

Vrai ? ?

Faux ? ?

D'où 2× 2× 2× 2 = 16 connecteurs logiques binaires.

Olivier Dalle Algorithmes conditionnels

Page 57: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

Un connecteur logique booléen est dé�ni par une table de vérité etréciproquement.

Il existe 16 connecteurs logiques binaires (pourquoi ?).

Vrai Faux

Vrai ? ?

Faux ? ?

D'où 2× 2× 2× 2 = 16 connecteurs logiques binaires.

Olivier Dalle Algorithmes conditionnels

Page 58: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Tables de vérité

Un connecteur logique booléen est dé�ni par une table de vérité etréciproquement.

Il existe 16 connecteurs logiques binaires (pourquoi ?).

Vrai Faux

Vrai ? ?

Faux ? ?

D'où 2× 2× 2× 2 = 16 connecteurs logiques binaires.

Olivier Dalle Algorithmes conditionnels

Page 59: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Logiquement équivalent

Logiquement équivalent

F est logiquement équivalent à G si et seulement si F ⇔ G est unetautologie.

Logiquement équivalent

F est logiquement équivalent à G si et seulement si F et G ont lamême table de vérité.

Olivier Dalle Algorithmes conditionnels

Page 60: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemple

a b a ET NON b b ET NON a (a∧eb) ∨ (b∧ea)Vrai Vrai

Faux Vrai

Vrai Faux

Faux Faux

Olivier Dalle Algorithmes conditionnels

Page 61: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemple

a b a ET NON b b ET NON (a∧eb) ∨ (b∧ea)Vrai Vrai Faux Faux Faux

Faux Vrai Faux Vrai Vrai

Vrai Faux Vrai Faux Vrai

Faux Faux Faux Faux Faux

( (a ET NON b) OU (b ET NON a) )logiquement équivalent à(a XOR b)

Olivier Dalle Algorithmes conditionnels

Page 62: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemple

a b a ET NON b b ET NON (a∧eb) ∨ (b∧ea)Vrai Vrai Faux Faux Faux

Faux Vrai Faux Vrai Vrai

Vrai Faux Vrai Faux Vrai

Faux Faux Faux Faux Faux

( (a ET NON b) OU (b ET NON a) )logiquement équivalent à

(a XOR b)

Olivier Dalle Algorithmes conditionnels

Page 63: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Exemple

a b a ET NON b b ET NON (a∧eb) ∨ (b∧ea)Vrai Vrai Faux Faux Faux

Faux Vrai Faux Vrai Vrai

Vrai Faux Vrai Faux Vrai

Faux Faux Faux Faux Faux

( (a ET NON b) OU (b ET NON a) )logiquement équivalent à(a XOR b)

Olivier Dalle Algorithmes conditionnels

Page 64: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Propriétés algébriques

Associativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ r

p ∧ (q ∧ r)⇔ (p ∧ q) ∧ r

Commmutativité :p ∨ q ⇔ q ∨ p

p ∧ q ⇔ q ∧ p

Distributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)Loi de De Morgan :e(p ∨ q)⇔eq∧epe(p ∧ q)⇔eq∨epContraposée : (p ⇒ q)⇔ (eq ⇒ep)(p ⇒ q)⇔ (ep ∨ q)Preuve par l'absurde : eep ⇒ p

Olivier Dalle Algorithmes conditionnels

Page 65: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Propriétés algébriques

Associativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ r

p ∧ (q ∧ r)⇔ (p ∧ q) ∧ r

Commmutativité :p ∨ q ⇔ q ∨ p

p ∧ q ⇔ q ∧ p

Distributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)Loi de De Morgan :e(p ∨ q)⇔eq∧epe(p ∧ q)⇔eq∨epContraposée : (p ⇒ q)⇔ (eq ⇒ep)(p ⇒ q)⇔ (ep ∨ q)Preuve par l'absurde : eep ⇒ p

Olivier Dalle Algorithmes conditionnels

Page 66: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Propriétés algébriques

Associativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ r

p ∧ (q ∧ r)⇔ (p ∧ q) ∧ r

Commmutativité :p ∨ q ⇔ q ∨ p

p ∧ q ⇔ q ∧ p

Distributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)

Loi de De Morgan :e(p ∨ q)⇔eq∧epe(p ∧ q)⇔eq∨epContraposée : (p ⇒ q)⇔ (eq ⇒ep)(p ⇒ q)⇔ (ep ∨ q)Preuve par l'absurde : eep ⇒ p

Olivier Dalle Algorithmes conditionnels

Page 67: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Propriétés algébriques

Associativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ r

p ∧ (q ∧ r)⇔ (p ∧ q) ∧ r

Commmutativité :p ∨ q ⇔ q ∨ p

p ∧ q ⇔ q ∧ p

Distributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)Loi de De Morgan :e(p ∨ q)⇔eq∧epe(p ∧ q)⇔eq∨ep

Contraposée : (p ⇒ q)⇔ (eq ⇒ep)(p ⇒ q)⇔ (ep ∨ q)Preuve par l'absurde : eep ⇒ p

Olivier Dalle Algorithmes conditionnels

Page 68: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Propriétés algébriques

Associativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ r

p ∧ (q ∧ r)⇔ (p ∧ q) ∧ r

Commmutativité :p ∨ q ⇔ q ∨ p

p ∧ q ⇔ q ∧ p

Distributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)Loi de De Morgan :e(p ∨ q)⇔eq∧epe(p ∧ q)⇔eq∨epContraposée : (p ⇒ q)⇔ (eq ⇒ep)(p ⇒ q)⇔ (ep ∨ q)

Preuve par l'absurde : eep ⇒ p

Olivier Dalle Algorithmes conditionnels

Page 69: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Propriétés algébriques

Associativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ r

p ∧ (q ∧ r)⇔ (p ∧ q) ∧ r

Commmutativité :p ∨ q ⇔ q ∨ p

p ∧ q ⇔ q ∧ p

Distributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)Loi de De Morgan :e(p ∨ q)⇔eq∧epe(p ∧ q)⇔eq∨epContraposée : (p ⇒ q)⇔ (eq ⇒ep)(p ⇒ q)⇔ (ep ∨ q)Preuve par l'absurde : eep ⇒ p

Olivier Dalle Algorithmes conditionnels

Page 70: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Une application en biologie

C (x) est VRAIE lorsque x est une celluleV (x) est VRAIE lorsque x est un virus

I (x , y) est VRAIE lorsque x est infecté par y .R(x , y) est VRAIE lorsque x a reconnu y

Toutes les cellules infectées par un virus ne le reconnaissent pas

∀x∃y , (C (x) ∧ V (y) ∧ I (x , y))⇒eR(x , y)

Il n'existe pas de virus qui peuvent infecter toutes les cellules

6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ technique de �model checking� : véri�cation de la formulelogique par parcours astucieux des états possibles

Olivier Dalle Algorithmes conditionnels

Page 71: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Une application en biologie

C (x) est VRAIE lorsque x est une celluleV (x) est VRAIE lorsque x est un virus

I (x , y) est VRAIE lorsque x est infecté par y .R(x , y) est VRAIE lorsque x a reconnu y

Toutes les cellules infectées par un virus ne le reconnaissent pas

∀x∃y , (C (x) ∧ V (y) ∧ I (x , y))⇒eR(x , y)

Il n'existe pas de virus qui peuvent infecter toutes les cellules

6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ technique de �model checking� : véri�cation de la formulelogique par parcours astucieux des états possibles

Olivier Dalle Algorithmes conditionnels

Page 72: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Une application en biologie

C (x) est VRAIE lorsque x est une celluleV (x) est VRAIE lorsque x est un virus

I (x , y) est VRAIE lorsque x est infecté par y .R(x , y) est VRAIE lorsque x a reconnu y

Toutes les cellules infectées par un virus ne le reconnaissent pas

∀x∃y , (C (x) ∧ V (y) ∧ I (x , y))⇒eR(x , y)

Il n'existe pas de virus qui peuvent infecter toutes les cellules

6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ technique de �model checking� : véri�cation de la formulelogique par parcours astucieux des états possibles

Olivier Dalle Algorithmes conditionnels

Page 73: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Une application en biologie

C (x) est VRAIE lorsque x est une celluleV (x) est VRAIE lorsque x est un virus

I (x , y) est VRAIE lorsque x est infecté par y .R(x , y) est VRAIE lorsque x a reconnu y

Toutes les cellules infectées par un virus ne le reconnaissent pas

∀x∃y , (C (x) ∧ V (y) ∧ I (x , y))⇒eR(x , y)

Il n'existe pas de virus qui peuvent infecter toutes les cellules

6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ technique de �model checking� : véri�cation de la formulelogique par parcours astucieux des états possibles

Olivier Dalle Algorithmes conditionnels

Page 74: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Une application en biologie

C (x) est VRAIE lorsque x est une celluleV (x) est VRAIE lorsque x est un virus

I (x , y) est VRAIE lorsque x est infecté par y .R(x , y) est VRAIE lorsque x a reconnu y

Toutes les cellules infectées par un virus ne le reconnaissent pas

∀x∃y , (C (x) ∧ V (y) ∧ I (x , y))⇒eR(x , y)

Il n'existe pas de virus qui peuvent infecter toutes les cellules

6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ technique de �model checking� : véri�cation de la formulelogique par parcours astucieux des états possibles

Olivier Dalle Algorithmes conditionnels

Page 75: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

Une application en biologie

C (x) est VRAIE lorsque x est une celluleV (x) est VRAIE lorsque x est un virus

I (x , y) est VRAIE lorsque x est infecté par y .R(x , y) est VRAIE lorsque x a reconnu y

Toutes les cellules infectées par un virus ne le reconnaissent pas

∀x∃y , (C (x) ∧ V (y) ∧ I (x , y))⇒eR(x , y)

Il n'existe pas de virus qui peuvent infecter toutes les cellules

6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ technique de �model checking� : véri�cation de la formulelogique par parcours astucieux des états possibles

Olivier Dalle Algorithmes conditionnels

Page 76: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Quand utiliser un test ?

"SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

"SI la voie rapide est bouchée ALORS je prends la prom."

"SI il y a de la neige ALORS je ne viens pas SINON je passe teprendre."

"SI b 6= 0 ALORS calculer a

bSINON la division est impossible."

test

Exécution d'un morceaux d'algorithme selon la situation

Olivier Dalle Algorithmes conditionnels

Page 77: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Quand utiliser un test ?

"SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

"SI la voie rapide est bouchée ALORS je prends la prom."

"SI il y a de la neige ALORS je ne viens pas SINON je passe teprendre."

"SI b 6= 0 ALORS calculer a

bSINON la division est impossible."

test

Exécution d'un morceaux d'algorithme selon la situation

Olivier Dalle Algorithmes conditionnels

Page 78: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Quand utiliser un test ?

"SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

"SI la voie rapide est bouchée ALORS je prends la prom."

"SI il y a de la neige ALORS je ne viens pas SINON je passe teprendre."

"SI b 6= 0 ALORS calculer a

bSINON la division est impossible."

test

Exécution d'un morceaux d'algorithme selon la situation

Olivier Dalle Algorithmes conditionnels

Page 79: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Quand utiliser un test ?

"SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

"SI la voie rapide est bouchée ALORS je prends la prom."

"SI il y a de la neige ALORS je ne viens pas SINON je passe teprendre."

"SI b 6= 0 ALORS calculer a

bSINON la division est impossible."

test

Exécution d'un morceaux d'algorithme selon la situation

Olivier Dalle Algorithmes conditionnels

Page 80: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Quand utiliser un test ?

"SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

"SI la voie rapide est bouchée ALORS je prends la prom."

"SI il y a de la neige ALORS je ne viens pas SINON je passe teprendre."

"SI b 6= 0 ALORS calculer a

bSINON la division est impossible."

test

Exécution d'un morceaux d'algorithme selon la situation

Olivier Dalle Algorithmes conditionnels

Page 81: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests simples

si booléen alors

morceaux d'algo 1

�n si

si booléen alors

morceaux d'algo 1

sinon

morceaux d'algo 2

�n si

booléen est une expression dont la valeur est soit Vrai soit Faux

Cette expression peut être :

une variable booléenne

une condition

une suite �nie de booléens relier par des connecteurs logiquesbinaires

Olivier Dalle Algorithmes conditionnels

Page 82: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests simplesen Java

if (boolean) {

morceaux de prog 1

}

if (boolean) {

morceaux de prog 1

} else {

morceaux de prog 2

}

'Boolean' est une expression qui peut être :

true : dans ce cas le morceau de programme 1 s'exécute

false : dans ce cas le morceau de programme 2 s'exécute

Olivier Dalle Algorithmes conditionnels

Page 83: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Bloc en java

if (a < 0) {

println("un");

println("nombre");

println("négatif");

}

if (a < 0)

println("negatif");

else

println("positif");

Les accolades servent à créerun bloc d'instructions (=suite d'instructions)

Lorsqu'il y a une seuleinstruction, on peut omettreles accolades.

Remarque : décalage et alignement des instructions d'un mêmebloc (indentation) pour éviter les erreurs classiques d'accolades

Olivier Dalle Algorithmes conditionnels

Page 84: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Conditions

t < 100

Une condition est composée de trois éléments :

une expression ayant une valeur dans un ensemble ordonné

un opérateur de comparaison sur cet ensemble

une expression ayant une valeur dans le même ensemble

Les opérateurs de comparaison sont : =, 6=, <, >, ≤, ≥, etc.

Les ensembles ordonnées peuvent être par exemple les nombresentiers, les nombres réels, les mots,...

Attention ! 60 < t < 100 n'est pas une condition.

Olivier Dalle Algorithmes conditionnels

Page 85: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Conditions

t < 100

Une condition est composée de trois éléments :

une expression ayant une valeur dans un ensemble ordonné

un opérateur de comparaison sur cet ensemble

une expression ayant une valeur dans le même ensemble

Les opérateurs de comparaison sont : =, 6=, <, >, ≤, ≥, etc.

Les ensembles ordonnées peuvent être par exemple les nombresentiers, les nombres réels, les mots,...

Attention ! 60 < t < 100 n'est pas une condition.

Olivier Dalle Algorithmes conditionnels

Page 86: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Conditions

t < 100

Une condition est composée de trois éléments :

une expression ayant une valeur dans un ensemble ordonné

un opérateur de comparaison sur cet ensemble

une expression ayant une valeur dans le même ensemble

Les opérateurs de comparaison sont : =, 6=, <, >, ≤, ≥, etc.

Les ensembles ordonnées peuvent être par exemple les nombresentiers, les nombres réels, les mots,...

Attention ! 60 < t < 100 n'est pas une condition.

Olivier Dalle Algorithmes conditionnels

Page 87: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Conditions

t < 100

Une condition est composée de trois éléments :

une expression ayant une valeur dans un ensemble ordonné

un opérateur de comparaison sur cet ensemble

une expression ayant une valeur dans le même ensemble

Les opérateurs de comparaison sont : =, 6=, <, >, ≤, ≥, etc.

Les ensembles ordonnées peuvent être par exemple les nombresentiers, les nombres réels, les mots,...

Attention ! 60 < t < 100 n'est pas une condition.

Olivier Dalle Algorithmes conditionnels

Page 88: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Opérateur binaire logique en java

Les opérateurs de comparaison :

pseudo-code java

= ==6= ! =< <> >≤ <=≥ >=

Les connecteurs logiques :

pseudo-code java

AND &&OR ||NOT !

Olivier Dalle Algorithmes conditionnels

Page 89: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests simplesExemple

Algorithme valeurAbsolue(x : réel) : réeldébut

si x < 0 alors

écrire(−x)sinon

écrire(x)�n si

�n

Olivier Dalle Algorithmes conditionnels

Page 90: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests simplesExemple

Algorithme comparaison(a, b : entier) : riendébut

si a < b alors

écrire(�a est strictement plus petit que b�)sinon

écrire(�b est plus petit que a�)�n si

�n

Olivier Dalle Algorithmes conditionnels

Page 91: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests simplesExemple java

int a = 5;

int b = 12;

if (a < b) {

print("a est strictement plus petit que b") ;

} else {

print("b est plus petit que a") ;

}

a est strictement plus petit que b

Olivier Dalle Algorithmes conditionnels

Page 92: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Une équivalence

Algorithme test1(x : réel) :booléen

début

si x ≥ 10 alors

écrire(Vrai)sinon

écrire(Faux)�n si

�n

Algorithme test2(x : réel) :booléen

début

écrire(x ≥ 10)�n

Les deux algorithmes test1 et test2 sont strictement équivalents.Puisqu'ils produisent les mêmes résultats pour les mêmes données,pourtant l'un est plus court à écrire que l'autre.

Olivier Dalle Algorithmes conditionnels

Page 93: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests multiples

Test multiples imbriqués

si booléen1 alors

partie a

sinon

si booléen2 alors

partie b

sinon

partie c

�n si

�n si

lorsque booléen1 est vrai, lapartie a s'exécute (quelquesoit la valeur de booléen2)

lorsque booléen1 est faux etque booléen2 est vrai, lapartie b s'exécute

lorsque booléen1 est faux etque booléen2 est faux, lapartie c s'exécute

Olivier Dalle Algorithmes conditionnels

Page 94: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests multiples

Attention : ce n'est pas équivalent à la succession de 2 tests simples

si booléen1 alors

partie a

�n si

si booléen2 alors

partie b

sinon

partie c

�n si

lorsque booléen1 est vrai, lapartie a s'exécute

Par contre la partie b

s'exécute seulement lorsquebooléen2 est vrai (quelquesoit la valeur de booléen1)

Olivier Dalle Algorithmes conditionnels

Page 95: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests multiples

Attention : ce n'est pas équivalent à la succession de 2 tests simples

si booléen1 alors

partie a

�n si

si booléen2 alors

partie b

sinon

partie c

�n si

lorsque booléen1 est vrai, lapartie a s'exécute

Par contre la partie b

s'exécute seulement lorsquebooléen2 est vrai (quelquesoit la valeur de booléen1)

Olivier Dalle Algorithmes conditionnels

Page 96: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests multiples / imbriquésExemple

Algorithme degreDeCorpulence(T : réel, m : réel) :début

i ← m/T2

si i < 20 alorsécrire( "poids inférieur à la normale")

sinonsi i < 25 alors

écrire( "poids normal")sinon

si i < 30 alorsécrire( "surcharge pondérale")

sinonsi i < 40 alors

écrire( "adiposité")sinon

écrire( "obésité"")�n si

�n si�n si

�n si�n

Olivier Dalle Algorithmes conditionnels

Page 97: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests multiplesExemple

Algorithme test(x : réel) :début

si 0 ≤ x alorsécrire( "le nombre est positif")si i ≤ 10 alors

écrire( "le nombre est compris entre 0 et 10.")sinon

si i ≤ 15 alorsécrire( "le nombre est compris entre 10 et 15.")

sinonsi i ≤ 20 alors

écrire( "le nombre est compris entre 15 et 20.")sinon

écrire( "le nombre est strictement supérieur à 20.")�n si

�n si�n si

sinonécrire( "le nombre est strictement négatif")

�n si�n

Olivier Dalle Algorithmes conditionnels

Page 98: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Connecteurs logiquesExemple

Algorithme ordonner ?(a,b,c : réel) : booléendébut

si a ≤ b ET b ≤ c alors

écrire(Vrai)sinon

écrire(Faux)�n si

�n

Olivier Dalle Algorithmes conditionnels

Page 99: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Connecteurs logiquesExemple en java

int a, b, c;

a = 10;

b = 3;

c = 5;

if ((a <= b) && (b <= c)) then

println(true);

else

println(false);

Olivier Dalle Algorithmes conditionnels

Page 100: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

EquivalenceExemple en java

int a, b, c;

a = 10;

b = 3;

c = 5;

println((a <= b) && (b <= c));

Olivier Dalle Algorithmes conditionnels

Page 101: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Tests multiplesExercice

Ecrire en java le programme suivant :début

rep : entierrep ← 2si rep = 1 alors

écrire("Vous avez sélectionné le premier choix")si rep = 2 alors

écrire("Vous avez sélectionné le deuxième choix")sinon

si rep = 3 alorsécrire("Vous avez sélectionné le troisième choix")

sinonécrire("Votre choix est inconnu")

�n si�n si

�n si�n

Olivier Dalle Algorithmes conditionnels

Page 102: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Traduction en java

int x = 2 ;

if (x == 1) {

println("Vous avez sélectionné le premier choix");

else

if (x == 2)

println("Vous avez sélectionné le deuxième choix");

else

if (x == 3)

println("Vous avez sélectionné le troisième choix");

else

println("Votre choix est inconnu.");

Olivier Dalle Algorithmes conditionnels

Page 103: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Equivalence avec switch

int x = 2 ;

switch (x) {

case 1 : println("Vous avez sélectionné le premier choix");

break;

case 2 : println("Vous avez sélectionné le deuxième choix");

break;

case 3 : println("Vous avez sélectionné le troisième choix");

break;

default :

println("Votre choix est inconnu.");

}

Olivier Dalle Algorithmes conditionnels

Page 104: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Equivalence avec switch

instruction porte sur une variable de type byte, short, char ouint.

Lorsque la variable a la valeur indiquée après case :

exécution à partir des " :"

jusqu'à l'instruction "break" qui permet la reprise d'exécution

après le bloc

voir aussi : http://java.sun.com/docs/books/tutorial/java/nutsandbolts/switch.html

Olivier Dalle Algorithmes conditionnels

Page 105: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Arbres de décision

Schema qui représente un algorithme avec des tests imbriqués

Base des systèmes experts : applications médicales, conseils,�ltrage, ...

Ces arbres s'établissent à l'aide d'algorithmes d'apprentissage

Olivier Dalle Algorithmes conditionnels

Page 106: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Exercice

a - Rappeler les deux lois De Morgan.

b - Démontrer que ces deux lois sont logiquement équivalentes àl'aide de tables de vérités.

Olivier Dalle Algorithmes conditionnels

Page 107: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Exercice

Dans un pays lointain, deux tribus existent. La tribu des purs quidisent toujours la vérité et la tribu des pires qui mentent toujours.Un jour en voyageant dans ce pays un peu étrange, j'ai rencontréAlain et Bob. Alain m'a déclaré 2 choses :

"l'un de nous deux est au moins un pire"

"l'un de nous deux au plus est un pire"

Je les ai salué en partant et je me demande toujours de quelle tribupouvait bien appartenir Alain et Bob ?Questions :

a - Répondre à la question en résonnant de manière informelle.

b - Con�rmer votre résultat à l'aide d'une table de vérité.

Olivier Dalle Algorithmes conditionnels

Page 108: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Objectifs de la séance 2

1 Ecrire un algorithme avec des a�ectations

2 Ecrire un algorithme qui échange la valeur de deux variables

3 Savoir utilisés les entrées de la souris avec Processing

4 Ecrire un algorithme avec des tests simples

5 Ecrire un algorithme avec un test multiple

6 Ecrire des programmes java avec des tests simples ou multiples

Question principale du jour :

Comment écrire des algorithmes selon des situations di�érentes ?

Olivier Dalle Algorithmes conditionnels

Page 109: Algorithmes conditionnels - Licence 1 MASS - … · Vriablesa et a ectations Logique booléenne Schéma conditionnel Objectifs de la séance 2 1 Ecrire un algorithme avec des a ectations

Variables et a�ectationsLogique booléenne

Schéma conditionnel

tests simplesTests multiples

Travail pour la semaine prochaine

Fabriquer ces petits programmes d'exemple

Explorer les exemples de Processing

Préparer le TP02 !

Olivier Dalle Algorithmes conditionnels