AP1 TD3 – Schémas itératifs
Correction
Exercice 1 – Baguettes
Ecrire un algorithme qui affiche une table des prix de 1 à 10 baguettes de pain sous la
forme :
1 baguette(s) coute(nt) 0.8 euros
2 baguette(s) coute(nt) 1.6 euros
3 baguette(s) coute(nt) 2.4 euros
…
10 baguette(s) coute(nt) 8 euros
Le nombre d'itérations est connu (dix) : le schéma itératif POUR est donc à utiliser.
ALGORITHME baguettes
CONSTANTE : (prixU : réel) ← 0.8
VARIABLE : prix : réel
nb : entier
DEBUT
POUR nb ALLANT DE 1 A 10 FAIRE
│prix ← nb × prixU
│afficher nb,"baguette(s) coute(nt)", prix,"euros."
FINPOUR
FIN
Exercice 2 – Un grand classique
Que réalise l'algorithme suivant ? Pour répondre à cette question, on pourra simuler une
exécution de l’algorithme avec pim valant 5 à l'aide du tableau ci-dessous.
ALGORITHME fondamental
VARIABLE : pim, pam, poum: entiers
DEBUT
saisir pim
poum ← 0
POUR pam ALLANT DE 1 A pim FAIRE
poum ← poum + pam
FINPOUR
afficher poum
FIN
Valeur de pam (boucle POUR) Valeur de poum
1 0+1
2 (0+1)+2
3 (0+1+2)+3
4 (0+1+2+3)+4
5(0+1+2+3+4)+5
Poum contient donc la somme des cinq premiers entiers positifs. Si on généralise, poum
contient la somme des pim premiers entiers.
Exercice 3 – Factorielle
Ecrire un algorithme qui calcule la factorielle d'un nombre saisi par l'utilisateur.
On rappelle que :
0 ! =1
n ! = 1 × 2 × 3 × … × n
Le nombre d'itérations est connu (n-1) : le schéma conditionnel POUR est donc à
utiliser.
ALGORITHME factorielle
{ calcul de la factorielle d'un entier n saisi par l'utilisateur }
VARIABLE : facto, n, i : entiers
DEBUT
facto ← 1
saisir n
SI n = 0 ALORS
│afficher "0 ! = 1"
SINON
│ POUR i ALLANT DE 2 A n FAIRE
││facto ← facto × i
│ FINPOUR
│afficher facto
FINSI
FIN
Le schéma conditionnel SI n'est pas nécessaire : le cas 0 ! est bien géré par la boucle
POUR (une boucle POUR allant de 2 à 0 n'est pas exécutée). Néanmoins, ce SI
augmente la lisibilité de l'algorithme en distinguant clairement, comme il est d'usage, le
cas 0 ! et le cas n !, n étant différent de zéro.
I . U . T . d ’ A m i e n s , d é p a r t e m e n t I n f o r m a t i q u e , a n n é e u n i v e r s i t a i r e 2 0 1 3 / 2 0 1 4 A P 1 - a l g o r i t h m i q u e T D 3 - p a g e 1 / 3