57

Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Algorithmes onditionnelsLi en e 1 MASS - Introdu tion à Java et à l'algorithmiqueSébastien Verelverel�i3s.uni e.frwww.i3s.uni e.fr/∼verelÉquipe S oBi - Université de Ni e Sophia-Antipolis26 janvier 2008

Page 2: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelVotre travail ?Combien d'étagères sont onsa rées à la programmation enJAVA à la BU ? 14 ?Choisir un livre qui vous semble en rapport ave etenseignement en java, en algorithmique ?Trouver au moins un site web en rapport ave l'enseignementenvoyez moi vos propositions par ourriel que je mette sur lesiteInstaller Pro essing sur votre ordinateur si vous en avez unPréparer le TP ! Sébastien Verel Algorithmes onditionnels

Page 3: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelObje tifs de la séan e 21 E rire un algorithme ave des a�e tations2 E rire un algorithme qui é hange la valeur de deux variables3 Savoir utilisés les entrées de la souris ave Pro essing4 E rire un algorithme ave des tests simples5 E rire un algorithme ave un test multiple6 E rire des programmes java ave des tests simples ou multiplesQuestion prin ipale du jour :Comment é rire des algorithmes qui prennent en ompte dessituations di�érentes ?Sébastien Verel Algorithmes onditionnels

Page 4: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelPlan1 Variables et a�e tations2 Logique booléenne3 S héma onditionneltests simplesTests multiples

Sébastien Verel Algorithmes onditionnels

Page 5: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelUtilité des variablesLors d'un al ul, pendant le traitement de données,quasiment toujours né essaire de sto ker ertaines valeursprovisoirementDes exemples ?Crible d'Erastothène : nombres rayés ou nonEu lide : nombres a et b du pg d..., et , ... Sébastien Verel Algorithmes onditionnels

Page 6: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelUtilité des variablesPour sto ker ette information, on emploie des variables12

A

remarque : L'étiquette est traduite en ma hine par une adressebinaire (0010010001000101)Sébastien Verel Algorithmes onditionnels

Page 7: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelType des variablesCes variables peuvent être de types di�érents :nombre entier : intnombre réel (appro hé) : �oat, double ara tères : har haîne de ara tères : Stringbooléen (dont la valeur est VRAI ou FAUX) : boolean...Type : onsidéré omme un ensemble regroupant des valeurs auquels'applique ertaines méthodes spé i�ques.Sébastien Verel Algorithmes onditionnels

Page 8: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelExpressionExpressionEnsemble de valeurs, reliées par des opérateurs binaires, équivalentà une seule valeur.Toute expression a un type.

Sébastien Verel Algorithmes onditionnels

Page 9: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelCal ul de typesDe quel type sont les expressions suivantes ?5 int16.3 �oat16.0 �oat-3 intSébastien Verel Algorithmes onditionnels

Page 10: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelCal ul de typesDe quel type sont les expressions suivantes ?5 + 12 int16 / 3 int15 − 5.3 �oat5.4 % 2 �oatSébastien Verel Algorithmes onditionnels

Page 11: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelDé laration de variable en javatype nomDeLaVariable ;Exemples :int x ;float a, b; har premierLettre ;int sumTotal ;Toute variable utilisée doit être dé laréeConvention d'é riture en java :première lettre d'une variable est en minus ule et les "mots"suivants ommen ent par une majus ule.Sébastien Verel Algorithmes onditionnels

Page 12: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelArithmétique des nombres �ottantsCombien d'entiers peut-on oder sur 4 o tets ?232 positifs ou 231 signésDans un ordinateur, tout est de taille �nie etles �ottants sont odés sur 4 o te ts.Quelle est en la onséquen e ?Pré ision des �ottants

Sébastien Verel Algorithmes onditionnels

Page 13: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelA�e tationAttribuer à une variable une valeur.notation en pseudo- ode : var ← exprA

12 12

A

en java : var = exprSébastien Verel Algorithmes onditionnels

Page 14: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelExemples en pseudo- ode1. A← 31. A← 32. B ← A

1. A← 32. B ← 53. A← B4. B ← A1. A← 32. B ← 53. C ← A3. A← B4. B ← C( e dernier est à onnaitre !)Sébastien Verel Algorithmes onditionnels

Page 15: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelExemples en javaint a = 5 ;int b = a + 3;int a = 5 ;int b = a + 3;a = a + 1; Sébastien Verel Algorithmes onditionnels

Page 16: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelDessin en Pro essingIl existe 2 méthodes (fon tions) par défaut en Pro essing :setup : exé utée une seule foisdraw : exé utée tous les rafai hissements d'é ran (1/50s)dé�ne par la méthode frameRateExemples : Toujours et Point

Sébastien Verel Algorithmes onditionnels

Page 17: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelSouris en Pro essingIl est fa ile de onnaitre la position du pointeur de la souris ave Pro essing2 variables de type int ontiennent la position relativement auxdimensions de l'é ran :mouseX : abs issemouseY : ordonnéeExemple : Mouse Sébastien Verel Algorithmes onditionnels

Page 18: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelGeorge BooleMathémati ien et logi ien anglais (1815 - 1864)butTraduire des idées et des on epts en équations,leur appliquer des lois (des transformations) ettraduire inversement l'équation en termes de on epts et d'idées.Il rée une algèbre binaire :qui n'a epte que deux valeurs numériques 0 et 1 (faux, vrai),dé�nie dans un ensemble E muni de deux lois de ompositionsinterne (et ,ou)satisfaisant un ertain nombre de propriétés (asso iativité,distributivité).−→ algèbre de Boole Sébastien Verel Algorithmes onditionnels

Page 19: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelNotationsIl existe plusieurs types de notations :Vrai ←→ V ←→ 1Faux ←→ F ←→ 0NON ←→ ⌉ET ←→ ∧OU ←→ ∨ (attention in lusif !)IMPLICATION ←→ ⇒EQUIVALENT ←→ ⇔XOR ←→ ⊕ (ou ex lusif : fromage ou dessert)Sébastien Verel Algorithmes onditionnels

Page 20: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelDé�nitionsLittéralvariable dont la valeur de vérité est soit VRAI soit FAUX.PropositionEnon é a qui l'on asso ie une valeur de vérité (VRAI ou FAUX)Tautologieest une formule qui est toujours VRAI quelque soit les valeurs devérité des littéraux Sébastien Verel Algorithmes onditionnels

Page 21: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelExemplesa OU b(a OU b) XOR a ET aa OU VRAIb OU (NON b)NON( b OU a )(a ET NON b) OU (b ET NON a)

Sébastien Verel Algorithmes onditionnels

Page 22: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelTables de véritéET Vrai FauxVraiFauxOU Vrai FauxVraiFaux

XOR Vrai FauxVraiFaux⇒ Vrai FauxVraiFaux

Sébastien Verel Algorithmes onditionnels

Page 23: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelTables de véritéET Vrai FauxVrai Vrai FauxFaux Faux FauxOU Vrai FauxVrai Vrai VraiFaux Vrai Faux

XOR Vrai FauxVrai Faux VraiFaux Vrai Faux⇒ Vrai FauxVrai Vrai FauxFaux Vrai Vrai

Sébastien Verel Algorithmes onditionnels

Page 24: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelZoom sur l'impli ationp q ⇒Vrai Vrai VraiVrai Faux FauxFaux Vrai VraiFaux Faux VraiA = "je plonge dans la pis ine"B = "je suis mouillé""SI je plonge dans la pis ineALORS je suis mouillé"est un théorème VRAI.A⇒ BLorsque A est VRAI, la onditionest réalisée, don B est VRAI.A peut aussi être FAUX et Brestant VRAI.Peut-on en déduire que lethéorème devient FAUX dans e as ?Sébastien Verel Algorithmes onditionnels

Page 25: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelZoom sur l'impli ationL'impli ation est vraie sil'hypothèse est fausse.p q ⇒Vrai Vrai VraiVrai Faux FauxFaux Vrai VraiFaux 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�Sébastien Verel Algorithmes onditionnels

Page 26: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelTables de véritéUn onne teur logique booléen est dé�ni par une table de vérité etré iproquement.Il existe 16 onne teurs logiques binaires (pourquoi ?).Vrai FauxVrai ? ?Faux ? ?D'où 2× 2× 2× 2 = 16 onne teurs logiques binaires.Sébastien Verel Algorithmes onditionnels

Page 27: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelLogiquement équivalentLogiquement équivalentF est logiquement équivalent à G si et seulement si F ⇔ G est unetautologie.Logiquement équivalentF est logiquement équivalent à G si et seulement si F et G ont lamême table de vérité.

Sébastien Verel Algorithmes onditionnels

Page 28: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelExemplea b a ET NON b b ET NON a (a∧⌉b) ∨ (b∧⌉a)Vrai VraiFaux VraiVrai FauxFaux Faux

Sébastien Verel Algorithmes onditionnels

Page 29: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelExemplea b a ET NON b b ET NON (a∧⌉b) ∨ (b∧⌉a)Vrai Vrai Faux Faux FauxFaux Vrai Faux Vrai VraiVrai Faux Vrai Faux VraiFaux Faux Faux Faux Faux( (a ET NON b) OU (b ET NON a) )logiquement équivalent à(a XOR b)Sébastien Verel Algorithmes onditionnels

Page 30: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelPropriétés algébriquesAsso iativité :p ∨ (q ∨ r)⇔ (p ∨ q) ∨ rp ∧ (q ∧ r)⇔ (p ∧ q) ∧ rCommmutativité :p ∨ q ⇔ q ∨ pp ∧ q ⇔ q ∧ pDistributivité :p ∨ (q ∧ r)⇔ (p ∨ q) ∧ (p ∨ r)p ∧ (q ∨ r)⇔ (p ∧ q) ∨ (p ∧ r)Loi de De Morgan :⌉(p ∨ q)⇔⌉q∧⌉p⌉(p ∧ q)⇔⌉q∨⌉pContraposée : (p ⇒ q)⇔ (⌉q ⇒⌉p)(p ⇒ q)⇔ (⌉p ∨ q)Preuve par l'absurde : ⌉⌉p ⇒ pSébastien Verel Algorithmes onditionnels

Page 31: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnelUne appli ation en biologieC (x) est VRAIE lorsque x est une elluleV (x) est VRAIE lorsque x est un virusI (x , y) est VRAIE lorsque x est infe té par y .R(x , y) est VRAIE lorsque x a re onnu yToutes les ellules infe tées par un virus ne le re onnaissent pas∀x∃y , (C (x) ∧ V (y) ∧ I (x , y)) ⇒⌉R(x , y)Il n'existe pas de virus qui peuvent infe ter toutes les ellules6 ∃y , V (y)⇒ (∀x C (x) ∧ I (x , y))

−→ te hnique de �model he king� : véri� ation de la formulelogique par par ours astu ieux des états possiblesSébastien Verel Algorithmes onditionnels

Page 32: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesQuand utiliser un test ?"SI j'ai tes lés ALORS je vais pouvoir rentrer tout seul hez toi.""SI la voie rapide est bou hé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 al uler ab SINON la division est impossible."testExé ution d'un mor eaux d'algorithme selon la situationSébastien Verel Algorithmes onditionnels

Page 33: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests simplessi booléen alorsmor eaux d'algo 1�n si si booléen alorsmor eaux d'algo 1sinonmor eaux d'algo 2�n sibooléen est une expression dont la valeur est soit Vrai soit FauxCette expression peut être :une variable booléenneune onditionune suite �nie de booléens relier par des onne teurs logiquesbinaires Sébastien Verel Algorithmes onditionnels

Page 34: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests simplesen Javaif (boolean) {mor eaux de prog 1} if (boolean) {mor eaux de prog 1} else {mor eaux de prog 2}'Boolean' est une expression qui peut être :true : dans e as le mor eau de programme 1 s'exé utefalse : dans e as le mor eau de programme 2 s'exé uteSébastien Verel Algorithmes onditionnels

Page 35: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesBlo en javaif (a < 0) {println("un");println("nombre");println("négatif");}if (a < 0)println("negatif");elseprintln("positif");Les a olades servent à réerun blo d'instru tions (=suite d'instru tions)Lorsqu'il y a une seuleinstru tion, on peut omettreles a olades.Remarque : dé alage et alignement des instru tions d'un mêmeblo (indentation) pour éviter les erreurs lassiques d'a oladesSébastien Verel Algorithmes onditionnels

Page 36: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesConditions t < 100Une ondition est omposée de trois éléments :une expression ayant une valeur dans un ensemble ordonnéun opérateur de omparaison sur et ensembleune expression ayant une valeur dans le même ensembleLes opérateurs de omparaison sont : =, 6=, <, >, ≤, ≥, et .Les ensembles ordonnées peuvent être par exemple les nombresentiers, les nombres réels, les mots,...Attention ! 60 < t < 100 n'est pas une ondition.Sébastien Verel Algorithmes onditionnels

Page 37: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesOpérateur binaire logique en javaLes opérateurs de omparaison :pseudo- ode java= ==6= ! =< <> >≤ <=≥ >=Les onne teurs logiques :pseudo- ode javaAND &&OR ||NOT !Sébastien Verel Algorithmes onditionnels

Page 38: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests simplesExempleAlgorithme valeurAbsolue(x : réel) : réeldébutsi x < 0 alorsé rire(−x)sinoné rire(x)�n si�nSébastien Verel Algorithmes onditionnels

Page 39: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests simplesExempleAlgorithme omparaison(a, b : entier) : riendébutsi a < b alorsé rire(�a est stri tement plus petit que b�)sinoné rire(�b est plus petit que a�)�n si�nSébastien Verel Algorithmes onditionnels

Page 40: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests simplesExemple javaint a = 5;int b = 12;if (a < b) {print("a est stri tement plus petit que b") ;} else {print("b est plus petit que a") ;} a est stri tement plus petit que bSébastien Verel Algorithmes onditionnels

Page 41: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesUne équivalen eAlgorithme test1(x : réel) :booléendébutsi x ≥ 10 alorsé rire(Vrai)sinoné rire(Faux)�n si�nAlgorithme test2(x : réel) :booléendébuté rire(x ≥ 10)�nLes deux algorithmes test1 et test2 sont stri tement équivalents.Puisqu'ils produisent les mêmes résultats pour les mêmes données,pourtant l'un est plus ourt à é rire que l'autre.Sébastien Verel Algorithmes onditionnels

Page 42: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests multiples Test multiples imbriquéssi booléen1 alorspartie asinonsi booléen2 alorspartie bsinonpartie �n si�n silorsque booléen1 est vrai, lapartie a s'exé ute (quelquesoit la valeur de booléen2)lorsque booléen1 est faux etque booléen2 est vrai, lapartie b s'exé utelorsque booléen1 est faux etque booléen2 est faux, lapartie s'exé uteSébastien Verel Algorithmes onditionnels

Page 43: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests multiplesAttention : e n'est pas équivalent à la su ession de 2 tests simplessi booléen1 alorspartie a�n sisi booléen2 alorspartie bsinonpartie �n silorsque booléen1 est vrai, lapartie a s'exé utePar ontre la partie bs'exé ute seulement lorsquebooléen2 est vrai (quelquesoit la valeur de booléen1)

Sébastien Verel Algorithmes onditionnels

Page 44: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests multiples / imbriquésExempleAlgorithme degreDeCorpulen e(T : réel, m : réel) :débuti ← m/T2si i < 20 alorsé rire( "poids inférieur à la normale")sinonsi i < 25 alorsé rire( "poids normal")sinonsi i < 30 alorsé rire( "sur harge pondérale")sinonsi i < 40 alorsé rire( "adiposité")sinoné rire( "obésité"")�n si�n si�n si�n si�n Sébastien Verel Algorithmes onditionnels

Page 45: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests multiplesExempleAlgorithme test(x : réel) :débutsi 0 ≤ x alorsé rire( "le nombre est positif")si i ≤ 10 alorsé rire( "le nombre est ompris entre 0 et 10.")sinonsi i ≤ 15 alorsé rire( "le nombre est ompris entre 10 et 15.")sinonsi i ≤ 20 alorsé rire( "le nombre est ompris entre 15 et 20.")sinoné rire( "le nombre est stri tement supérieur à 20.")�n si�n si�n sisinoné rire( "le nombre est stri tement négatif")�n si�n Sébastien Verel Algorithmes onditionnels

Page 46: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesConne teurs logiquesExempleAlgorithme ordonner ?(a,b, : réel) : booléendébutsi a ≤ b ET b ≤ alorsé rire(Vrai)sinoné rire(Faux)�n si�nSébastien Verel Algorithmes onditionnels

Page 47: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesConne teurs logiquesExemple en javaint a, b, ;a = 10;b = 3; = 5;if ((a <= b) && (b <= )) thenprintln(true);elseprintln(false);Sébastien Verel Algorithmes onditionnels

Page 48: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesEquivalen eExemple en javaint a, b, ;a = 10;b = 3; = 5;println((a <= b) && (b <= ));

Sébastien Verel Algorithmes onditionnels

Page 49: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTests multiplesExer i eE rire en java le programme suivant :débutrep : entierrep ← 2si rep = 1 alorsé rire("Vous avez séle tionné le premier hoix")si rep = 2 alorsé rire("Vous avez séle tionné le deuxième hoix")sinonsi rep = 3 alorsé rire("Vous avez séle tionné le troisième hoix")sinoné rire("Votre hoix est in onnu")�n si�n si�n si�n Sébastien Verel Algorithmes onditionnels

Page 50: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTradu tion en javaint x = 2 ;if (x == 1) {println("Vous avez séle tionné le premier hoix");elseif (x == 2)println("Vous avez séle tionné le deuxième hoix");elseif (x == 3)println("Vous avez séle tionné le troisième hoix");elseprintln("Votre hoix est in onnu.");Sébastien Verel Algorithmes onditionnels

Page 51: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesEquivalen e ave swit hint x = 2 ;swit h (x) { ase 1 : println("Vous avez séle tionné le premier hoix");break; ase 2 : println("Vous avez séle tionné le deuxième hoix");break; ase 3 : println("Vous avez séle tionné le troisième hoix");break;default :println("Votre hoix est in onnu.");} Sébastien Verel Algorithmes onditionnels

Page 52: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesEquivalen e ave swit hinstru tion porte sur une variable de type byte, short, har ouint.Lorsque la variable a la valeur indiquée après ase :exé ution à partir des " :"jusqu'à l'instru tion "break" qui permet la reprise d'exé utionaprès le blo voir aussi :http://java.sun. om/do s/books/tutorial/java/nutsandbolts/swit h.htmlSébastien Verel Algorithmes onditionnels

Page 53: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesArbres de dé isionS hema qui représente un algorithme ave des tests imbriquésBase des systèmes experts : appli ations médi ales, onseils,�ltrage, ...Ces arbres s'établissent à l'aide d'algorithmes d'apprentissage

Sébastien Verel Algorithmes onditionnels

Page 54: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesExer i ea - Rappeler les deux lois De Morgan.b - Démontrer que es deux lois sont logiquement équivalentes àl'aide de tables de vérités.

Sébastien Verel Algorithmes onditionnels

Page 55: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesExer i eDans un pays lointain, deux tribus existent. La tribu des purs quidisent toujours la vérité et la tribu des pires qui mentent toujours.Un jours en voyageant dans e pays un peu étrange, j'ai ren ontréAlain et Bob. Alain m'a dé laré 2 hoses :"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é.Sébastien Verel Algorithmes onditionnels

Page 56: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesObje tifs de la séan e 21 E rire un algorithme ave des a�e tations2 E rire un algorithme qui é hange la valeur de deux variables3 Savoir utilisés les entrées de la souris ave Pro essing4 E rire un algorithme ave des tests simples5 E rire un algorithme ave un test multiple6 E rire des programmes java ave des tests simples ou multiplesQuestion prin ipale du jour :Comment é rire des algorithmes selon des situations di�érentes ?Sébastien Verel Algorithmes onditionnels

Page 57: Algorithmes conditionnels - Licence 1 MASS - Introduction ...verel/TEACHING/08-09/introJava/cm... · à la p rogrammation en JA V A à la BU ? 14 ? Choisir un livre qui vous semble

Variables et a�e tationsLogique booléenneS héma onditionnel tests simplesTests multiplesTravail pour la semaine pro haineFabriquer es petits programmes d'exempleExplorer les exemples de Pro essingPréparer le TP02 !

Sébastien Verel Algorithmes onditionnels