• Aucun résultat trouvé

26javie2008 É ieS Bi Uiveiédei eShia Ai

N/A
N/A
Protected

Academic year: 2022

Partager "26javie2008 É ieS Bi Uiveiédei eShia Ai"

Copied!
57
0
0

Texte intégral

(1)

Sébastien Verel

vereli3s.unie.fr

www.i3s.unie.fr/

verel

ÉquipeSoBi-UniversitédeNieSophia-Antipolis

26 janvier 2008

(2)

Votre travail?

Combien d'étagèressontonsarées àlaprogrammationen

JAVA àlaBU?

14?

Choisirunlivrequivous sembleen rapportaveet

enseignement

en java,en algorithmique?

Trouver aumoinsunsite web en rapportave l'enseignement

envoyez moivospropositions parourrielque jemettesur le

site

Installer Proessing sur votreordinateursi vousen avez un

Préparer leTP!

(3)

Objetifs de la séane 2

1

Erire unalgorithmeave desaetations

2

Erire unalgorithmequiéhange lavaleur de deux variables

3

Savoirutilisésles entréesde lasourisaveProessing

4

Erire unalgorithmeave destestssimples

5

Erire unalgorithmeave untestmultiple

6

Erire desprogrammesjava avedestestssimplesoumultiples

Question prinipaledujour :

Comment ériredesalgorithmes quiprennent en omptedes

situations diérentes?

(4)

Plan

1

Variableset aetations

2

Logique booléenne

3

Shéma onditionnel

testssimples

Testsmultiples

(5)

Utilité des variables

Lorsd'un alul,pendant letraitementde données,

quasiment toujoursnéessairede stokerertaines valeurs

provisoirement

Des exemples?

Crible d'Erastothène :nombresrayésou non

Eulide:nombres aet bdupgd

..., et,...

(6)

Utilité des variables

Pour stokerette information,on emploiedesvariables

12 A

remarque :L'étiquette est traduiteen mahineparuneadresse

binaire (0010010001000101)

(7)

Type des variables

Ces variables peuvent êtrede typesdiérents :

nombre entier:int

nombre réel(approhé) :oat,double

aratères:har

haînede aratères:String

booléen(dontlavaleur est VRAIou FAUX):boolean

...

Type :onsidéréomme unensembleregroupant desvaleurs auquel

s'applique ertainesméthodes spéiques.

(8)

Expression

Expression

Ensemble de valeurs,reliées pardes opérateursbinaires,équivalent

à uneseulevaleur.

Touteexpressionauntype.

(9)

Calul de types

De queltypesontles expressions suivantes?

5

int

16.3

oat

16.0

oat

-3

int

(10)

Calul de types

De queltypesontles expressions suivantes?

5 +12

int

16

/

3

int

15

5.3

oat

5.4

%

2

oat

(11)

Délaration de variable en java

type nomDeLaVariable;

Exemples :

int x ;

float a, b;

har premierLettre ;

int sumTotal ;

Toutevariableutiliséedoitêtre délarée

Convention d'éritureen java :

premièrelettred'unevariableest en minusuleet les "mots"

(12)

Arithmétique des nombres ottants

Combien d'entierspeut-on odersur 4otets?

2 32

positifsou 2 31

signés

Dans unordinateur, toutest de taillenieet

les ottantssontodéssur 4 otets.

Quelleest en laonséquene?

Préision desottants

(13)

Aetation

Attribueràunevariableune valeur.

notation en pseudo-ode :

var

expr

A

12 12

A

en java:

=

(14)

Exemples en pseudo-ode

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

(edernier est àonnaitre!)

(15)

Exemples en java

int a = 5 ;

int b = a + 3;

int a = 5 ;

int b = a + 3;

a = a + 1;

(16)

Dessin en Proessing

Il existe 2méthodes(fontions)pardéfaut en Proessing:

setup :exéutéeuneseule fois

draw :exéutéetousles rafaihissementsd'éran(1/50s)

déne parlaméthode frameRate

Exemples :Toujours et Point

(17)

Souris en Proessing

Il est failede onnaitre lapositiondupointeurde lasourisave

Proessing

2 variablesde typeint ontiennentlapositionrelativementaux

dimensionsde l'éran :

mouseX:absisse

mouseY:ordonnée

Exemple :Mouse

(18)

George Boole

Mathématiienet logiienanglais(1815- 1864)

but

Traduiredes idéesetdes oneptsen équations,

leur appliquerdeslois (destransformations)et

traduireinversement l'équation en termesde oneptset d'idées.

Il rée unealgèbrebinaire :

quin'aepteque deux valeursnumériques 0 et1 (faux, vrai),

déniedans unensembleE munide deux lois de ompositions

interne (et ,ou)

satisfaisant unertainnombrede propriétés (assoiativité,

distributivité).

−→

algèbrede Boole

(19)

Notations

Il existe plusieurstypesde notations:

Vrai

←→

V

←→

1

Faux

←→

F

←→

0

NON

←→ ⌉

ET

←→ ∧

OU

←→ ∨

(attentioninlusif!)

IMPLICATION

←→ ⇒

EQUIVALENT

←→ ⇔

XOR

←→ ⊕

(ouexlusif :fromageou dessert)

(20)

Dénitions

Littéral

variabledontlavaleur de vérité estsoit VRAIsoitFAUX.

Proposition

Enoné aquil'onassoie unevaleur de vérité(VRAI ou FAUX)

Tautologie

est une formulequi esttoujours VRAIquelque soitles valeurs de

vérité deslittéraux

(21)

Exemples

a OUb

(a OUb) XOR

a ETa

a OUVRAI

b OU (NON b)

NON( b OU a)

(a ETNONb) OU (bETNON a )

(22)

Tables de vérité

ET Vrai Faux

Vrai

Faux

OU Vrai Faux

Vrai

Faux

XOR Vrai Faux

Vrai

Faux

Vrai Faux

Vrai

Faux

(23)

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

(24)

Zoom sur l'impliation

p q

Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

A= "jeplongedanslapisine"

B ="jesuismouillé"

"SIjeplonge danslapisine

ALORS jesuismouillé"

est unthéorème VRAI.

A

B

LorsqueAest VRAI,laondition

est réalisée,donB est VRAI.

A peut aussiêtreFAUX etB

restant VRAI.

Peut-on en déduireque le

théorème devient FAUXdanse

as?

(25)

Zoom sur l'impliation

L'impliationest vraiesi

l'hypothèse estfausse.

p q

Vrai Vrai Vrai

Vrai Faux Faux

Faux Vrai Vrai

Faux Faux Vrai

Lorqu'un théorèmep

q est

vrai,

maisque l'onapas l'hypothèse,

alorson ne peutrien en déduire

sur q.

PierreWeis et XavierLeroy

on ne peut rien déduired'un

théorème dontl'hypothèsen'est

pas vériée

un théorèmereste vraimême

(26)

Tables de vérité

Un onneteur logique booléenest déni parune tablede vérité et

réiproquement.

Il existe 16onneteurslogiques binaires(pourquoi?).

Vrai Faux

Vrai ? ?

Faux ? ?

D'où 2

×

2

×

2

×

2

=

16 onneteurslogiquesbinaires.

(27)

Logiquement équivalent

Logiquement équivalent

F est logiquement équivalentàG si etseulement siF

G est une

tautologie.

Logiquement équivalent

F est logiquement équivalent àG siet seulement siF et G ontla

même table de vérité.

(28)

Exemple

a b aET NONb b ETNONa

(

a

∧⌉

b

) ∨ (

b

∧⌉

a

)

Vrai Vrai

Faux Vrai

Vrai Faux

Faux Faux

(29)

Exemple

a b aET NONb b ETNON

(

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 ETNONb)OU (bETNON a))

logiquement équivalent à

(a XORb)

(30)

Propriétés algébriques

Assoiativité:

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 deDe Morgan:

⌉(

p

q

) ⇔⌉

q

∧⌉

p

⌉(

p

q

) ⇔⌉

q

∨⌉

p

Contraposée:

(

p

q

) ⇔ (⌉

q

⇒⌉

p

) (

p

q

) ⇔ (⌉

p

q

)

⌉⌉ ⇒

(31)

Une appliation en biologie

C

(

x

)

est VRAIElorsquex est une ellule

V

(

x

)

est VRAIElorsquex est unvirus

I

(

x

,

y

)

est VRAIElorsquex est infetépary.

R

(

x

,

y

)

est VRAIElorsquex a reonnuy

Toutesles ellulesinfetées parunvirusne lereonnaissent pas

x

y,

(

C

(

x

) ∧

V

(

y

) ∧

I

(

x

,

y

)) ⇒⌉

R

(

x

,

y

)

Il n'existepas de virusquipeuvent infetertoutesles ellules

6 ∃

y,V

(

y

) ⇒ (∀

x C

(

x

) ∧

I

(

x

,

y

))

−→

tehnique de modelheking :vériationde laformule

(32)

Quand utiliser un test?

"SI j'aiteslésALORS jevais pouvoir rentrertout seulheztoi."

"SIla voierapideest bouhée ALORSjeprendslaprom."

"SIil y ade laneigeALORS jene vienspas SINON jepassete

prendre."

"SIb

6=

0 ALORSaluler a

b

SINONla divisionest impossible."

test

Exéution d'un moreaux d'algorithmeselonlasituation

(33)

Tests simples

sibooléenalors

moreaux d'algo1

nsi

sibooléenalors

moreaux d'algo 1

sinon

moreaux d'algo 2

nsi

booléenest une expressiondontlavaleur est soitVrai soitFaux

Cette expressionpeut être:

une variablebooléenne

une ondition

(34)

Tests simples

enJava

if (boolean) {

moreaux de prog 1

}

if (boolean) {

moreaux de prog 1

} else {

moreaux de prog 2

}

'Boolean' estune expressionquipeut être:

true :danse asle moreau de programme1 s'exéute

false :danse asle moreau de programme2 s'exéute

(35)

Blo en java

if (a < 0) {

println("un");

println("nombre");

println("négatif");

}

if (a < 0)

println("negatif");

else

println("positif");

Les aoladesserventàréer

unblo d'instrutions(=

suited'instrutions)

Lorsqu'il y auneseule

instrution, onpeut omettre

les aolades.

Remarque :déalage et alignementdesinstrutionsd'un même

(36)

Conditions

t

<

100

Une onditionest omposéede troiséléments:

une expressionayant unevaleur dansunensemble ordonné

unopérateurde omparaison suret ensemble

une expressionayant unevaleur dansle mêmeensemble

Les opérateursde omparaison sont:

=

,

6=

,

<

,

>

,

,

,et.

Les ensemblesordonnées peuvent êtreparexemple les nombres

entiers, les nombresréels,les mots,...

< <

(37)

Opérateur binaire logique en java

Les opérateursde omparaison :

pseudo-ode java

=

==

6= ! =

< <

> >

≤ <=

≥ >=

Les onneteurslogiques :

pseudo-ode java

AND

&&

||

(38)

Tests simples

Exemple

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

début

six

<

0 alors

érire(

x)

sinon

érire(x)

nsi

n

(39)

Tests simples

Exemple

Algorithme omparaison(a, b :entier):rien

début

sia

<

b alors

érire(aest stritementplus petit queb)

sinon

érire(b est pluspetitquea )

nsi

n

(40)

Tests simples

Exemplejava

int a = 5;

int b = 12;

if (a < b) {

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

} else {

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

}

aest stritementpluspetitque b

(41)

Une équivalene

Algorithme test1(x:réel) :

booléen

début

six

10 alors

érire(Vrai)

sinon

érire(Faux)

nsi

n

Algorithme test2(x:réel) :

booléen

début

érire(x

10)

n

Les deux algorithmes test1 ettest2 sontstritementéquivalents.

Puisqu'ils produisent lesmêmesrésultats pour lesmêmesdonnées,

(42)

Tests multiples

Testmultiplesimbriqués

sibooléen1 alors

partiea

sinon

sibooléen2 alors

partieb

sinon

partie

nsi

nsi

lorsque booléen1 est vrai,la

partie as'exéute (quelque

soitla valeurde booléen2)

lorsque booléen1 est faux et

quebooléen2 est vrai,la

partie b s'exéute

lorsque booléen1 est faux et

quebooléen2 est faux,la

partie s'exéute

(43)

Tests multiples

Attention:e n'estpaséquivalent àlasuessionde2 testssimples

sibooléen1 alors

partiea

nsi

sibooléen2 alors

partieb

sinon

partie

nsi

lorsque booléen1 est vrai,la

partie as'exéute

Parontre lapartie b

s'exéute seulementlorsque

booléen2 estvrai(quelque

soitla valeurde booléen1)

(44)

Tests multiples / imbriqués

Exemple

Algorithme degreDeCorpulene(T:réel,m:réel):

début

i

m

/

T2

sii

<

20alors

érire("poidsinférieuràlanormale")

sinon

si i

<

25alors

érire("poidsnormal")

sinon

si i

<

30 alors

érire("surhargepondérale")

sinon

si i

<

40 alors

érire("adiposité")

sinon

érire("obésité"")

nsi

nsi

nsi

nsi

n

(45)

Tests multiples

Exemple

Algorithme test(x:réel):

début

si0

xalors

érire("lenombreestpositif")

si i

10alors

érire("lenombreestomprisentre0et10.")

sinon

si i

15 alors

érire("lenombreestomprisentre10et15.")

sinon

si i

20 alors

érire("lenombreestomprisentre15et20.")

sinon

érire("lenombreeststritementsupérieurà20.")

nsi

nsi

nsi

sinon

érire("lenombreeststritementnégatif")

nsi

n

(46)

Conneteurs logiques

Exemple

Algorithme ordonner?(a,b, :réel): booléen

début

sia

b ET b

alors

érire(Vrai)

sinon

érire(Faux)

nsi

n

(47)

Conneteurs logiques

Exempleenjava

int a, b, ;

a = 10;

b = 3;

= 5;

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

println(true);

else

println(false);

(48)

Equivalene

Exempleenjava

int a, b, ;

a = 10;

b = 3;

= 5;

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

(49)

Tests multiples

Exerie

Erire en java leprogramme suivant:

début

rep:entier

rep

2 sirep

=

1alors

érire("Vousavezséletionnélepremierhoix")

si rep

=

2alors

érire("Vousavezséletionnéledeuxièmehoix")

sinon

si rep

=

3 alors

érire("Vousavezséletionnéletroisièmehoix")

sinon

érire("Votrehoixestinonnu")

nsi

nsi

nsi

n

(50)

Tradution en java

int x = 2 ;

if (x == 1) {

println("Vous avez séletionné le premier hoix");

else

if (x == 2)

println("Vous avez séletionné le deuxième hoix");

else

if (x == 3)

println("Vous avez séletionné le troisième hoix");

else

println("Votre hoix est inonnu.");

(51)

Equivalene ave swith

int x = 2 ;

swith (x) {

ase 1 : println("Vous avez séletionné le premier hoix");

break;

ase 2 : println("Vous avez séletionné le deuxième hoix");

break;

ase 3 : println("Vous avez séletionné le troisième hoix");

break;

default :

println("Votre hoix est inonnu.");

(52)

Equivalene ave swith

instrutionportesurune variable detype byte,short, harou

int.

Lorsquelavariablealavaleur indiquée après ase :

exéutionàpartirdes ":"

jusqu'àl'instrution"break"quipermetlareprised'exéution

aprèsleblo

voir aussi:

http://java.sun.om/dos/books/tutorial/java/nutsandbolts/swith.html

(53)

Arbres de déision

Shema quireprésenteunalgorithme avedestestsimbriqués

Base dessystèmesexperts:appliations médiales,onseils,

ltrage,...

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

(54)

Exerie

a- Rappelerles deuxlois DeMorgan.

b - Démontrerque esdeuxlois sontlogiquement équivalentesà

l'aidede tables de vérités.

(55)

Exerie

Dans unpayslointain,deux tribusexistent.Latribu despurs qui

disent toujourslavérité etlatribu despires quimentent toujours.

Un joursen voyageant danse paysunpeu étrange,j'airenontré

Alain etBob.Alainm'a délaré2 hoses:

"l'un de nousdeux est au moinsunpire"

"l'un de nousdeux au plusest unpire"

Je lesai saluéen partant etjeme demande toujoursde quelletribu

pouvait bienappartenirAlainet Bob?

Questions :

a- Répondre àlaquestion en résonnantde manièreinformelle.

(56)

Objetifs de la séane 2

1

Erire unalgorithmeave desaetations

2

Erire unalgorithmequiéhange lavaleur de deux variables

3

Savoirutilisésles entréesde lasourisaveProessing

4

Erire unalgorithmeave destestssimples

5

Erire unalgorithmeave untestmultiple

6

Erire desprogrammesjava avedestestssimplesoumultiples

Question prinipaledujour :

Comment ériredesalgorithmes selondessituationsdiérentes?

(57)

Travail pour la semaine prohaine

Fabriquer espetitsprogrammesd'exemple

Explorer les exemples de Proessing

Préparer leTP02!

Références

Documents relatifs

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

−→ utiliser un shéma itératif à nombre d'itérations déterminé. −→ appeler aussi souvent

ne retourner auune valeur : on notera le type de retour rien. Algorithme deviner(n : entier)

Utilisation d'un aumulateur pour réaliser un alul dans

A l'aide d'un système physique dont l'état est aléatoire :.. Valeur préise d'une résistane, appartition des

les nombres plus petit que le nombre pivot sont à gauhe de

A-t-on besoin d'un traitement séquentiel des données. Le nombre de données est-il déterminé

Le nombre de noeuds d'un arbre binaire omplet équilibré en. fontion de la hauteur h est 2 h