Algorithmes conditionnels



Documents pareils
Recherche dans un tableau

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Algorithmique et Programmation, IMA

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.


1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Conventions d écriture et outils de mise au point

Programmer en JAVA. par Tama

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Plan du cours. Historique du langage Nouveautés de Java 7

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Programmation C++ (débutant)/instructions for, while et do...while

Langage Java. Classe de première SI

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Généralités sur le Langage Java et éléments syntaxiques.

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Introduction à l algorithmique et à la programmation M1102 CM n 3

Chapitre 2 Devine mon nombre!

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Java Licence Professionnelle CISII,

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Chapitre 10. Les interfaces Comparable et Comparator 1

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

INF 321 : mémento de la syntaxe de Java

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Cours d Informatique

TP 1. Prise en main du langage Python

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

I. Introduction aux fonctions : les fonctions standards

Cours d Algorithmique et de Langage C v 3.0

Corrigé des exercices sur les références

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Introduction au langage C

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Représentation d un entier en base b

Notions fondamentales du langage C# Version 1.0

OCL - Object Constraint Language

Programmation C. Apprendre à développer des programmes simples dans le langage C

UE Programmation Impérative Licence 2ème Année

Licence Sciences et Technologies Examen janvier 2010

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

SUPPORT DE COURS. Langage C

Une introduction à Java

Algorithme. Table des matières

Utilisation d objets : String et ArrayList

Programmation Classique en langage C

UE C avancé cours 1: introduction et révisions

1 Recherche en table par balayage

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

2 Comment fonctionne un ordinateur, dans les grandes lignes

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Java Licence Professionnelle CISII,

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Solutions du chapitre 4

Cours 1 : Qu est-ce que la programmation?

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Premiers Pas en Programmation Objet : les Classes et les Objets

Les arbres binaires de recherche

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

as Architecture des Systèmes d Information

Programmation Orientée Objet Java

Informatique Générale

TP3 : Manipulation et implantation de systèmes de fichiers 1

Logiciel de Base. I. Représentation des nombres

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Corrigé des TD 1 à 5

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Les chaînes de caractères

Programmation en Java IUT GEII (MC-II1) 1

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Algèbre binaire et Circuits logiques ( )

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Tp 1 correction. Structures de données (IF2)

COMPARAISONDESLANGAGESC, C++, JAVA ET

Cours d algorithmique pour la classe de 2nde

Programmation Web. Madalina Croitoru IUT Montpellier

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

INITIATION A LA PROGRAMMATION

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Sélection du contrôleur

UML et les Bases de Données

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Initiation à la programmation en Python

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Transcription:

Licence 1 MASS - Introduction à Java et à l'algorithmique dalle@unice.fr <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 & INRIA Sophia Antipolis

Objectifs de la séance 2 1 Ecrire un algorithme avec des aectations 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

Objectifs de la séance 2 1 Ecrire un algorithme avec des aectations 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 des situations diérentes?

Plan 1 Variables et aectations 2 3 tests simples Tests multiples

Utilité des variables Lors d'un calcul, pendant le traitement de données, quasiment toujours nécessaire de stocker certaines valeurs provisoirement Des exemples?

Utilité des variables Lors d'un calcul, pendant le traitement de données, quasiment toujours nécessaire de stocker certaines valeurs provisoirement Des exemples? Crible d'erastothène : nombres rayés ou non Euclide : nombres a et b du pgcd..., etc,...

Utilité des variables Pour stocker cette information, on emploie des variables A 12 remarque : L'étiquette est traduite en machine par une adresse binaire (0010010001000101)

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 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 auquel s'applique certaines méthodes spéciques.

Expression Expression Ensemble de valeurs, reliées par des opérateurs binaires, équivalent à une seule valeur. Toute expression a un type.

Calcul de types De quel type sont les expressions suivantes? 5

Calcul de types De quel type sont les expressions suivantes? 5 int 16.3

Calcul de types De quel type sont les expressions suivantes? 5 int 16.3 oat 16.0

Calcul de types De quel type sont les expressions suivantes? 5 int 16.3 oat 16.0 oat -3

Calcul de types De quel type sont les expressions suivantes? 5 int 16.3 oat 16.0 oat -3 int

Calcul de types De quel type sont les expressions suivantes? 5 + 12

Calcul de types De quel type sont les expressions suivantes? 5 + 12 int 16 / 3

Calcul de types De quel type sont les expressions suivantes? 5 + 12 int 16 / 3 int 15 5.3

Calcul de types De quel type sont les expressions suivantes? 5 + 12 int 16 / 3 int 15 5.3 oat 5.4 % 2

Calcul de types De quel type sont les expressions suivantes? 5 + 12 int 16 / 3 int 15 5.3 oat 5.4 % 2 oat

Déclaration de variable en java Exemples : int x ; float a, b; char premierlettre ; int sumtotal ; type nomdelavariable ; 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.

Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets?

Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets? 2 32 positifs ou 2 31 signés

Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets? 2 32 positifs ou 2 31 signés Dans un ordinateur, tout est de taille nie et les ottants sont codés sur 4 octects. Quelle est en la conséquence?

Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets? 2 32 positifs ou 2 31 signés Dans un ordinateur, tout est de taille nie et les ottants sont codés sur 4 octects. Quelle est en la conséquence? Précision des ottants

Aectation Attribuer à une variable une valeur.

Aectation Attribuer à une variable une valeur. notation en pseudo-code : var expr A A 12 12

Aectation Attribuer à une variable une valeur. notation en pseudo-code : var expr A A 12 12 en java : var = expr

Exemples en pseudo-code 1. A 3

Exemples en pseudo-code 1. A 3 1. A 3 2. B A

Exemples en pseudo-code 1. A 3 1. A 3 2. B 5 3. A B 4. B A 1. A 3 2. B A

Exemples en pseudo-code 1. A 3 1. A 3 2. B A 1. A 3 2. B 5 3. A B 4. B A 1. A 3 2. B 5 3. C A 3. A B 4. B C

Exemples en pseudo-code 1. A 3 1. A 3 2. B A 1. A 3 2. B 5 3. A B 4. B A 1. A 3 2. B 5 3. C A 3. A B 4. B C (ce dernier est à connaitre!)

Exemples en java int a = 5 ; int b = a + 3;

Exemples en java int a = 5 ; int b = a + 3; int a = 5 ; int b = a + 3; a = a + 1;

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

Souris en Processing Il est facile de connaitre la position du pointeur de la souris avec Processing 2 variables de type int contiennent la position relativement aux dimensions de l'écran : mousex : abscisse mousey : ordonnée Exemple : Mouse

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) et traduire 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 compositions interne (et,ou) satisfaisant un certain nombre de propriétés (associativité, distributivité). algèbre de Boole

Notations Il existe plusieurs types de notations : Vrai V 1 Faux F 0 NON ET OU (attention inclusif!) IMPLICATION EQUIVALENT

Notations Il existe plusieurs types de notations : Vrai V 1 Faux F 0 NON ET OU (attention inclusif!) IMPLICATION EQUIVALENT XOR (ou exclusif : fromage ou dessert)

Dénitions Littéral variable dont la valeur de vérité est soit VRAI soit FAUX.

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)

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 de vérité des littéraux

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)

Tables de vérité ET Vrai Faux Vrai Faux OU Vrai Faux Vrai Faux XOR Vrai Faux Vrai Faux Vrai Faux Vrai Faux

Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux

Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux

Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux XOR Vrai Faux Vrai Faux Vrai Faux Vrai Faux OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux

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

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é"

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 piscine ALORS je suis mouillé" est un théorème VRAI.

Zoom sur l'implication p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai A B Lorsque A est VRAI, la condition est réalisée, donc B est VRAI. A = "je plonge dans la piscine" B = "je suis mouillé" "SI je plonge dans la piscine ALORS je suis mouillé" est un théorème VRAI.

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 piscine ALORS je suis mouillé" est un théorème VRAI. A B Lorsque A est VRAI, la condition est réalisée, donc B est VRAI. A peut aussi être FAUX et B restant VRAI. Peut-on en déduire que le théorème devient FAUX dans ce cas?

Zoom sur l'implication L'implication est vraie si l'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 est vrai, mais que l'on a pas l'hypothèse, alors on ne peut rien en déduire sur q.

Zoom sur l'implication L'implication est vraie si l'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 est vrai, mais que l'on a pas l'hypothèse, alors on ne peut rien en déduire sur q. Pierre Weis et Xavier Leroy on ne peut rien déduire d'un théorème dont l'hypothèse n'est pas vériée un théorème reste vrai même quand il ne s'applique pas

Tables de vérité Un connecteur logique booléen est déni par une table de vérité et réciproquement. Il existe 16 connecteurs logiques binaires (pourquoi?).

Tables de vérité Un connecteur logique booléen est déni par une table de vérité et réciproquement. Il existe 16 connecteurs logiques binaires (pourquoi?). Vrai Faux Vrai?? Faux??

Tables de vérité Un connecteur logique booléen est déni par une table de vérité et réciproquement. Il existe 16 connecteurs logiques binaires (pourquoi?). Vrai Faux Vrai?? Faux?? D'où 2 2 2 2 = 16 connecteurs logiques binaires.

Logiquement équivalent Logiquement équivalent F est logiquement équivalent à G si et seulement si F G est une tautologie. Logiquement équivalent F est logiquement équivalent à G si et seulement si F et G ont la même table de vérité.

Exemple a b a ET NON b b ET NON a (a b) (b a) Vrai Vrai Faux Vrai Vrai Faux Faux Faux

Exemple a b a ET NON b b ET NON (a b) (b a) Vrai Vrai Faux Faux Faux Faux Vrai Faux Vrai Vrai Vrai Faux Vrai Faux Vrai Faux Faux Faux Faux Faux

Exemple a b a ET NON b b ET NON (a b) (b a) 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 à

Exemple a b a ET NON b b ET NON (a b) (b a) 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)

Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r

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

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)

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 : (p q) q p (p q) q p

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 : (p q) q p (p q) q p Contraposée : (p q) ( q p) (p q) ( p q)

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 : (p q) q p (p q) q p Contraposée : (p q) ( q p) (p q) ( p q) Preuve par l'absurde : p p

Une application en biologie C(x) est VRAIE lorsque x est une cellule V (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

Une application en biologie C(x) est VRAIE lorsque x est une cellule V (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

Une application en biologie C(x) est VRAIE lorsque x est une cellule V (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)) R(x, y)

Une application en biologie C(x) est VRAIE lorsque x est une cellule V (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)) R(x, y) Il n'existe pas de virus qui peuvent infecter toutes les cellules

Une application en biologie C(x) est VRAIE lorsque x est une cellule V (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)) R(x, y) Il n'existe pas de virus qui peuvent infecter toutes les cellules y, V (y) ( x C(x) I (x, y))

Une application en biologie C(x) est VRAIE lorsque x est une cellule V (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)) R(x, y) Il n'existe pas de virus qui peuvent infecter toutes les cellules y, V (y) ( x C(x) I (x, y)) technique de model checking : vérication de la formule logique par parcours astucieux des états possibles

Quand utiliser un test? tests simples Tests multiples "SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

Quand utiliser un test? tests simples Tests multiples "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."

Quand utiliser un test? tests simples Tests multiples "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 te prendre."

Quand utiliser un test? tests simples Tests multiples "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 te prendre." "SI b 0 ALORS calculer a b SINON la division est impossible."

tests simples Tests 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 te prendre." "SI b 0 ALORS calculer a b SINON la division est impossible." test Exécution d'un morceaux d'algorithme selon la situation

tests simples Tests 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 logiques binaires

tests simples Tests multiples Tests simples en 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

Bloc en java Variables et aectations tests simples Tests multiples if (a < 0) { println("un"); println("nombre"); println("négatif"); } if (a < 0) println("negatif"); else println("positif"); Les accolades servent à créer un bloc d'instructions (= suite d'instructions) Lorsqu'il y a une seule instruction, on peut omettre les accolades. Remarque : décalage et alignement des instructions d'un même bloc (indentation) pour éviter les erreurs classiques d'accolades

tests simples Tests 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

tests simples Tests 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 : =,, <, >,,, etc.

tests simples Tests 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 : =,, <, >,,, etc. Les ensembles ordonnées peuvent être par exemple les nombres entiers, les nombres réels, les mots,...

tests simples Tests 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 : =,, <, >,,, etc. Les ensembles ordonnées peuvent être par exemple les nombres entiers, les nombres réels, les mots,... Attention! 60 < t < 100 n'est pas une condition.

Opérateur binaire logique en java Les opérateurs de comparaison : Les connecteurs logiques : tests simples Tests multiples pseudo-code java = ==! = < < > > <= >= pseudo-code java AND && OR NOT!

Tests simples Exemple Variables et aectations tests simples Tests multiples Algorithme valeurabsolue(x : réel) : réel début si x < 0 alors écrire( x) sinon écrire(x) n si n

Tests simples Exemple Variables et aectations tests simples Tests multiples Algorithme comparaison(a, b : entier) : rien début si a < b alors écrire(a est strictement plus petit que b) sinon écrire(b est plus petit que a) n si n

Tests simples Exemple java Variables et aectations tests simples Tests multiples 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

Une équivalence Variables et aectations tests simples Tests multiples 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.

tests simples Tests 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, la partie a s'exécute (quelque soit la valeur de booléen2) lorsque booléen1 est faux et que booléen2 est vrai, la partie b s'exécute lorsque booléen1 est faux et que booléen2 est faux, la partie c s'exécute

Tests multiples Variables et aectations tests simples 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

tests simples Tests 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, la partie a s'exécute Par contre la partie b s'exécute seulement lorsque booléen2 est vrai (quelque soit la valeur de booléen1)

Tests multiples / imbriqués Exemple tests simples Tests multiples Algorithme degredecorpulence(t : réel, m : réel) : début i m/t 2 si i < 20 alors écrire( "poids inférieur à la normale") sinon si i < 25 alors écrire( "poids normal") sinon si i < 30 alors écrire( "surcharge pondérale") sinon si i < 40 alors écrire( "adiposité") sinon écrire( "obésité"") n si n si n si n si n

Tests multiples Exemple Variables et aectations tests simples Tests multiples 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.") sinon si 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

Connecteurs logiques Exemple Variables et aectations tests simples Tests multiples Algorithme ordonner?(a,b,c : réel) : booléen début si a b ET b c alors écrire(vrai) sinon écrire(faux) n si n

Connecteurs logiques Exemple en java Variables et aectations tests simples Tests multiples int a, b, c; a = 10; b = 3; c = 5; if ((a <= b) && (b <= c)) then println(true); else println(false);

tests simples Tests multiples Equivalence Exemple en java int a, b, c; a = 10; b = 3; c = 5; println((a <= b) && (b <= c));

Tests multiples Exercice Variables et aectations tests simples Tests multiples Ecrire en java le programme suivant : début rep : entier rep 2 si 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

Traduction en java Variables et aectations tests simples Tests multiples 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.");

Equivalence avec switch tests simples Tests multiples int x = 2 ; switch (x) { case 1 : println("vous avez sélectionné le premier choi break; case 2 : println("vous avez sélectionné le deuxième cho break; case 3 : println("vous avez sélectionné le troisième ch break; default : println("votre choix est inconnu."); }

tests simples Tests multiples Equivalence avec switch instruction porte sur une variable de type byte, short, char ou int. 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

tests simples Tests 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

tests simples Tests multiples Exercice a - b - Rappeler les deux lois De Morgan. Démontrer que ces deux lois sont logiquement équivalentes à l'aide de tables de vérités.

tests simples Tests multiples Exercice Dans un pays lointain, deux tribus existent. La tribu des purs qui disent 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 tribu pouvait bien appartenir Alain et Bob? Questions : a - b - Répondre à la question en résonnant de manière informelle. Conrmer votre résultat à l'aide d'une table de vérité.

tests simples Tests multiples Objectifs de la séance 2 1 Ecrire un algorithme avec des aectations 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?

tests simples Tests multiples Travail pour la semaine prochaine Fabriquer ces petits programmes d'exemple Explorer les exemples de Processing Préparer le TP02!