
3. Exemples
.Pour tout entier n>0, on appelle factorielle de n, et on note n!:
n! = 1×2× · · · × (n−1) ×nsi n>1
1si n= 0
Ecrire un algorithme prenant en entrée un entier naturel net retournant, en
sortie, la valeur de n!.
.Un nombre entier n>2est dit premier lorsqu’il n’est divisible que par 1 et
lui-même.
Ecrire un algorithme prenant en entrée un entier naturel net retournant, en
sortie, la valeur booléenne V rai si nest premier
F aux sinon
4. Vérification
.Au moment de vérifier qu’une boucle produit ce que l’on souhaite,
on raisonnera comme dans le premier paragraphe.
Pour bien comprendre le résultat que renvoie une boucle, on considère
souvent une variable qui subit des changements au cours de l’itération :
(a) on relève sa valeur avant la boucle ;
(b) à l’aide des instructions itérées, on détermine sa valeur à chaque tour
de boucle ;
(c) on en déduit sa valeur à l’issue de la boucle.
L’étude précédente peut concerner plusieurs variables,
voire une propriété liée à une variable.
−→ Par exemple, lorsqu’on calcule la somme 12+ 22+· · · +n2(nétant un entier
naturel non nul donné) à l’aide de la séquence :
somme=0
for iin range(1,n+1) :
somme=somme+i*i
alors la variable somme vaut, au i-ième tour de boucle, la somme de tous les carrés
jusqu’au dernier indice considéré : ceci est valable avant la boucle, pendant la boucle,
et à l’issue de la boucle.
Cette propriété s’appelle un invariant de boucle : c’est ce qui permet de justifier
rigoureusement que la boucle produit ce qu’on veut.
.Terminaison d’une boucle conditionnelle
Lorsqu’un algorithme contient une telle boucle, on doit s’assurer que celle-
ci se termine. Pour cela, on regarde, parmi les instructions qui figurent dans
l’itération, celle(s) qui modifie(nt) la condition à laquelle les instructions
sont répétées. Si lesdites instructions garantissent que cette condition ne
sera plus vérifiée au bout d’un nombre fini d’itérations, notre boucle se
termine.