Boucle bornée - Corrigé

Télécharger au format PDF

Exercice

Écrire une fonction somme(n) qui prend un nombre entier en argument et renvoie la somme des n premiers entiers (1 + 2 + 3 + … + n) et qui contient une boucle for.

Analyse de l’énoncé

On cherche à utiliser une boucle for dans la fonction somme(n). Il faut donc tout d’abord repérer l’opération répétitive et déterminer combien de fois elle est répétée.

A la main, on peut donc commencer en testant les cas n=1, n=2, n=3, …

  • n = 1 :

S(1) = 1

  • n = 2 :

S(2) = 1 + 2 = 3

  • n = 3 :

S(3) = 1 + 2 + 3 = 6

On voit bien en continuant n=4, n=5, … qu’il est préférable d’ajouter 4, 5, … au résultat précédent plutôt que tout recalculer : on préfèrera donc faire S(4) = S(3) + 4 = 6 + 4 = 10 que S(4) = 1 + 2 + 3 + 4.

On a distingué ici l’étape répétitive : “S(i) = S(i-1) + i”.

Pour calculer la somme des entiers de 1 à n, il faudra faire varier i de 1 à n. On utilisera donc range(1,n+1).

Résolution

On note S la somme cherchée. Au début de la boucle, la variable S vaut zéro : S = 0. A la fin de la boucle, on veut que S = 1 + 2 + … + n.

image 1 Avant la boucle for, on crée donc la variable S en l’initialisant à 0. A chaque itération de la boucle for, on réalise l’opération répétitive suivante : “stocke S+i dans S”.

Remarque pour finir

Il existe une formule explicite en fonction de n pour calculer la somme des n premiers entiers :

1+2+3+...+n=n(n+1)21 + 2 + 3 + ... + n = \frac{n(n+1)}{2}

Un autre exercice à traiter

Écrire une fonction puissance(x,n) qui prend un réel x et un entier naturel n en argument et renvoie la puissance n-ième de x, xax^a.

Corrigé

image 2

Quelques remarques sur le corrigé

Comme on répète n fois x×x×...×xx\times x\times ... \times x, on utilise une boucle for tout comme la somme des n premiers entiers. Ici on multiplie le résultat par x à chaque itération.

image 3 En Python, il y a la possibilité d’utiliser une double étoile pour calculer une puissance.

image 4 Aussi, le module math de Python dispose d’une fonction pow(x,n) pour calculer la puissance d’un nombre.