Correction TD 3 : Algorithmes itératifs

publicité
Correction TD 3 : Algorithmes itératifs
Licence 1 MASS semestre 2, 2007/2008
Exercice 1 : Plus petit, plus grand
aAlgorithme devinerA(n : entier) : rien
début
variable a : entier
a←n−1
tant que a 6= n faire
écrire(”Proposer un nombre ”)
lire(a)
si a < n alors
écrire(”trop petit”)
sinon
écrire(”trop grand”)
fin si
fin tant que
écrire(”vous avez trouvé”)
fin
bAlgorithme devinerB(n : entier) : rien
début
variable a, i : entier
a←n−1
i←0
tant que a 6= n et i < 5 faire
écrire(”Proposer un nombre ”)
lire(a)
si a < n alors
écrire(”trop petit”)
sinon
écrire(”trop grand”)
fin si
i←i+1
fin tant que
1
écrire(”vous avez trouvé”)
fin
Exercice 2 : Comptage
aAlgorithme comptageTailleSup160() : entier
début
variable t, n, i : entier
n←0
pour i de 1 à 10 faire
écrire(”Saissez votre taille (en cm) :” )
lire(t)
si t ≤ 160 alors
n←n+1
fin si
fin pour
retourner n
fin
bAlgorithme votation(n : entier) : rien
début
variable oui, non, blanc, i : entier
vote : caractère
oui ← 0
non ← 0
blanc ← 0
pour i de 1 à n faire
lire(vote)
si vote = ”O” alors
oui ← oui + 1
sinon
si vote = ”N” alors
non ← non + 1
sinon
blanc ← blanc + 1
fin si
fin si
fin pour
écrire(”Pourcentage de BLANC : ”, 100*blanc/n)
écrire(”Pourcentage de OUI parmi les exprimés : ”, 100*oui/(oui + non))
écrire(”Pourcentage de NON parmi les exprimés : ”, 100*non/(oui + non))
2
fin
Exercice 3 : Suite récurrentes
a-
u1 = 12 u0 + 2 =
u2 = 21 u1 + 2 =
u3 = 12 u2 + 2 =
u4 = 12 u3 + 2 =
u5 = 21 u4 + 2 =
3
2
11
4
27
8
59
16
123
32
b- Algorithme U100() : réel
début
variable i : entier
u : réel
u←1
pour i de 1 à 100 faire
u ← 21 u + 2
fin pour
retourner u
fin
c- Algorithme Un(n : entier) : réel
début
variable i : entier
u : réel
u←1
pour i de 1 à n faire
u ← 21 u + 2
fin pour
retourner u
fin
d- Algorithme rangLimite() : entier
début
variable u, p : entier
u←1
p←0
tant que |u − 4| > 10−2 faire
u ← 12 u + 2
p←p+1
fin tant que
retourner p
fin
3
Exercice 4 : Zéro d’une fonction
a- Algorithme zeroIteratif(f : fonction, a, b : entier) : réel
début
variable x : entier
x←a
tant que f (x) < 0 faire
x ← x + 10−2
fin tant que
retourner x
fin
b- Algorithme zeroDichotomie(f : fonction, a, b : entier) : réel
début
variable x1 , x2 , xm : entier
x1 ← a
x2 ← b
tant que |x1 − x2 | > 10−2 faire
2
xm ← x1 +x
2
si f (xm ) < 0 alors
x1 ← xm
sinon
x2 ← xm
fin si
fin tant que
retourner x1
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 + X 2
P3 (X) = (X −1 + X)P2 (X) = X −3 + 3X −1 + 3X + X 3
P4 (X) = (X −1 + X)P3 (X) = X −4 + 4X −2 + 6 + 4X 2 + X 4
P5 (X) = (X −1 +X)P4 (X) = X −5 +5X −3 +10X −1 +10X +5X 3 +X 5
Les coefficients correspondent aux coefficients du binôme de Newton.
b- Algorithme P100() : polynme
début
variable P : polynome
i : entier
P ←1
pour i de 1 à 100 faire
P ← (X −1 + X)P
fin pour
4
retourner P
fin
Exercice 6 : Lapins
a- Le nombre de couples de lapins au mois n est la somme des couples existants le mois d’avant (au mois n − 1) et des couples naissants au mois n.
Or, le texte précise que tous les couples existants deux mois auparavant
(au mois n − 2) se reproduisent.
Par conséquent, au mois n ≥ 2 le nombre de lapins est :
un = un−1 + un−2
b- Le premier mois, il n’y a qu’un seul couple u0 = 1 et le mois suivant aucun
lapin n’est encore né, donc u1 = 1.
Algorithme lapin12() : entier
début
variable u, v, i, tmp : entier
v←1
u←1
pour i de 2 à 12 faire
tmp ← u
u ← u+v
v ← tmp
fin pour
retourner u
fin
c- Algorithme mois300() : entier
début
variable u, v, tmp, m : entier
v←1
u←1
m←0
tant que u ≤ 300 faire
tmp ← u
u ← u+v
v ← tmp
m←m+1
fin tant que
retourner m
fin
d- Algorithme moisL(L : entier) : entier
début
variable u, v, tmp, m : entier
v←1
5
u←1
m←0
tant que u ≤ L faire
tmp ← u
u ← u+v
v ← tmp
m←m+1
fin tant que
retourner m
fin
6
Téléchargement