Correction TD 3 : Algorithmes it´eratifs
Licence 1 MASS semestre 2, 2007/2008
Exercice 1 : Plus petit, plus grand
a-
Algorithme devinerA(n : entier) : rien d´ebut
variable a: entier a←n−1
tant quea6=nfaire
´ecrire(”Proposer un nombre ”) lire(a)
sia < nalors
´ecrire(”trop petit”) sinon
´ecrire(”trop grand”) fin si
fin tant que
´ecrire(”vous avez trouv´e”) fin
b-
Algorithme devinerB(n : entier) : rien d´ebut
variable a,i: entier a←n−1
i←0
tant quea6=net i <5faire
´ecrire(”Proposer un nombre ”) lire(a)
sia < nalors
´ecrire(”trop petit”) sinon
´ecrire(”trop grand”) fin si
i←i+ 1 fin tant que
´ecrire(”vous avez trouv´e”) fin
Exercice 2 : Comptage
a-
Algorithme comptageTailleSup160() : entier d´ebut
variable t,n,i : entier n←0
pouride 1 `a 10faire
´ecrire(”Saissez votre taille (en cm) :”) lire(t)
sit≤160alors n←n+ 1 fin si fin pour retournern fin
b-
Algorithme votation(n: entier) : rien d´ebut
variable oui, non, blanc,i: entier vote : caract`ere
oui←0 non←0 blanc←0
pouride 1 `a nfaire lire(vote)
sivote = ”O”alors oui←oui + 1 sinon
sivote = ”N”alors non←non + 1 sinon
blanc←blanc + 1 fin si
fin si fin pour
´ecrire(”Pourcentage de BLANC : ”, 100*blanc/n)
´ecrire(”Pourcentage de OUI parmi les exprim´es : ”, 100*oui/(oui + non))
´ecrire(”Pourcentage de NON parmi les exprim´es : ”, 100*non/(oui + non))
fin
Exercice 3 : Suite r´ ecurrentes
a- u1= 12u0+ 2 = 32 u2= 12u1+ 2 = 114 u3= 12u2+ 2 = 278 u4= 12u3+ 2 = 5916 u5= 12u4+ 2 = 12332 b- Algorithme U100() : r´eel
d´ebut
variable i: entier u: r´eel u←1
pouride 1`a 100faire u← 12u+ 2
fin pour retourneru fin
c- Algorithme Un(n: entier) : r´eel d´ebut
variable i: entier u: r´eel u←1
pouride 1`a nfaire u← 12u+ 2
fin pour retourneru fin
d- Algorithme rangLimite() : entier d´ebut
variable u,p: entier u←1
p←0
tant que|u−4|>10−2faire u← 12u+ 2
p←p+ 1 fin tant que retournerp fin
Exercice 4 : Z´ ero d’une fonction
a- Algorithme zeroIteratif(f : fonction,a,b : entier) : r´eel d´ebut
variable x: entier x←a
tant quef(x)<0faire x←x+ 10−2
fin tant que retournerx fin
b- Algorithme zeroDichotomie(f : fonction,a,b : entier) : r´eel d´ebut
variable x1,x2,xm : entier x1 ←a
x2 ←b
tant que|x1−x2|>10−2 faire xm ← x1+x2 2
sif(xm)<0alors x1 ←xm
sinon x2 ←xm
fin si fin tant que retournerx1
fin
Exercice 5 : Suite de polynomes
a- P1(X) = (X−1+X)P0(X) =X−1+X P2(X) = (X−1+X)P1(X) =X−2+ 2 +X2
P3(X) = (X−1+X)P2(X) =X−3+ 3X−1+ 3X+X3 P4(X) = (X−1+X)P3(X) =X−4+ 4X−2+ 6 + 4X2+X4
P5(X) = (X−1+X)P4(X) =X−5+5X−3+10X−1+10X+5X3+X5 Les coefficients correspondent aux coefficients du binˆome de Newton.
b- Algorithme P100() : polynme d´ebut
variable P : polynome i: entier
P ←1
pouride 1`a 100faire P ←(X−1+X)P fin pour
retournerP fin
Exercice 6 : Lapins
a- Le nombre de couples de lapins au moisnest la somme des couples exis- tants le mois d’avant (au moisn−1) et des couples naissants au moisn.
Or, le texte pr´ecise que tous les couples existants deux mois auparavant (au moisn−2) se reproduisent.
Par cons´equent, au moisn≥2 le nombre de lapins est : un=un−1+un−2
b- Le premier mois, il n’y a qu’un seul coupleu0= 1 et le mois suivant aucun lapin n’est encore n´e, doncu1= 1.
Algorithme lapin12() : entier d´ebut
variable u,v,i,tmp: entier v ←1
u←1
pouride 2`a 12faire tmp←u
u←u+v v ←tmp fin pour retourneru fin
c- Algorithme mois300() : entier d´ebut
variable u,v,tmp,m: entier v ←1
u←1 m←0
tant queu≤300faire tmp←u
u←u+v v ←tmp m←m+ 1 fin tant que retournerm fin
d- Algorithme moisL(L: entier) : entier d´ebut
variable u,v,tmp,m: entier v ←1
u←1 m←0
tant queu≤L faire tmp←u
u←u+v v ←tmp m←m+ 1 fin tant que retournerm fin