Sébastien Verel
vereli3s.unie.fr
www.i3s.unie.fr/
∼
verelÉquipeSoBi-UniversitédeNieSophia-Antipolis
26 janvier 2008
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!
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?
Plan
1
Variableset aetations
2
Logique booléenne
3
Shéma onditionnel
testssimples
Testsmultiples
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,...
Utilité des variables
Pour stokerette information,on emploiedesvariables
12 A
remarque :L'étiquette est traduiteen mahineparuneadresse
binaire (0010010001000101)
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.
Expression
Expression
Ensemble de valeurs,reliées pardes opérateursbinaires,équivalent
à uneseulevaleur.
Touteexpressionauntype.
Calul de types
De queltypesontles expressions suivantes?
5
int
16.3
oat
16.0
oat
-3
int
Calul de types
De queltypesontles expressions suivantes?
5 +12
int
16
/
3int
15
−
5.3oat
5.4
%
2oat
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"
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
Aetation
Attribueràunevariableune valeur.
notation en pseudo-ode :
var
←
exprA
12 12
A
en java:
=
Exemples en pseudo-ode
1.A
←
31.A
←
32.B
←
A1.A
←
32.B
←
53.A
←
B4.B
←
A1.A
←
32.B
←
53.C
←
A3.A
←
B4.B
←
C(edernier est àonnaitre!)
Exemples en java
int a = 5 ;
int b = a + 3;
int a = 5 ;
int b = a + 3;
a = a + 1;
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
Souris en Proessing
Il est failede onnaitre lapositiondupointeurde lasourisave
Proessing
2 variablesde typeint ontiennentlapositionrelativementaux
dimensionsde l'éran :
mouseX:absisse
mouseY:ordonnée
Exemple :Mouse
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 BooleNotations
Il existe plusieurstypesde notations:
Vrai
←→
V←→
1Faux
←→
F←→
0NON
←→ ⌉
ET
←→ ∧
OU
←→ ∨
(attentioninlusif!)IMPLICATION
←→ ⇒
EQUIVALENT
←→ ⇔
XOR
←→ ⊕
(ouexlusif :fromageou dessert)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
Exemples
a OUb
(a OUb) XOR
a ETa
a OUVRAI
b OU (NON b)
NON( b OU a)
(a ETNONb) OU (bETNON a )
Tables de vérité
ET Vrai Faux
Vrai
Faux
OU Vrai Faux
Vrai
Faux
XOR Vrai Faux
Vrai
Faux
⇒
Vrai FauxVrai
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 FauxVrai Vrai Faux
Faux Vrai Vrai
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
⇒
BLorsqueAest 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?
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 estvrai,
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
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.Logiquement équivalent
Logiquement équivalent
F est logiquement équivalentàG si etseulement siF
⇔
G est unetautologie.
Logiquement équivalent
F est logiquement équivalent àG siet seulement siF et G ontla
même table de vérité.
Exemple
a b aET NONb b ETNONa
(
a∧⌉
b) ∨ (
b∧⌉
a)
Vrai Vrai
Faux Vrai
Vrai Faux
Faux Faux
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)
Propriétés algébriques
Assoiativité:
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 deDe Morgan:
⌉(
p∨
q) ⇔⌉
q∧⌉
p⌉(
p∧
q) ⇔⌉
q∨⌉
pContraposée:
(
p⇒
q) ⇔ (⌉
q⇒⌉
p) (
p⇒
q) ⇔ (⌉
p∨
q)
⌉⌉ ⇒
Une appliation en biologie
C
(
x)
est VRAIElorsquex est une elluleV
(
x)
est VRAIElorsquex est unvirusI
(
x,
y)
est VRAIElorsquex est infetépary.R
(
x,
y)
est VRAIElorsquex a reonnuyToutesles 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 laformuleQuand 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 ab
SINONla divisionest impossible."
test
Exéution d'un moreaux d'algorithmeselonlasituation
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
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
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
Conditions
t
<
100Une 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,...
< <
Opérateur binaire logique en java
Les opérateursde omparaison :
pseudo-ode java
=
==6= ! =
< <
> >
≤ <=
≥ >=
Les onneteurslogiques :
pseudo-ode java
AND
&&
||
Tests simples
Exemple
Algorithme valeurAbsolue(x:réel) :réel
début
six
<
0 alorsérire(
−
x)sinon
érire(x)
nsi
n
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
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
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,
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
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)
Tests multiples / imbriqués
Exemple
Algorithme degreDeCorpulene(T:réel,m:réel):
début
i
←
m/
T2sii
<
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
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
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
Conneteurs logiques
Exempleenjava
int a, b, ;
a = 10;
b = 3;
= 5;
if ((a <= b) && (b <= )) then
println(true);
else
println(false);
Equivalene
Exempleenjava
int a, b, ;
a = 10;
b = 3;
= 5;
println((a <= b) && (b <= ));
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
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.");
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.");
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
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
Exerie
a- Rappelerles deuxlois DeMorgan.
b - Démontrerque esdeuxlois sontlogiquement équivalentesà
l'aidede tables de vérités.
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.
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?
Travail pour la semaine prohaine
Fabriquer espetitsprogrammesd'exemple
Explorer les exemples de Proessing
Préparer leTP02!