Accumulateur et calcul d'une somme ou d'un produit dans une boucle

Seconde générale · Mathématiques 2nde

À retenir

• Somme : initialiser S = 0 avant la boucle, puis écrire S = S + terme dans la boucle. • Produit : initialiser P = 1 avant la boucle, puis P = P * facteur ; partir de 0 donnerait toujours 0. • Le résultat s'utilise après la boucle : return ou print sans indentation.

Le cours

Le motif de conception de l'accumulateur est fondamental en programmation : on initialise une variable (souvent à 0 pour une somme ou à 1 pour un produit) avant la boucle, puis on lui ajoute ou multiplie chaque élément au fur et à mesure des itérations. 1. Le motif de l'accumulateur Un accumulateur est une variable qui garde un résultat partiel et se met à jour à chaque tour de boucle. Trois temps : initialiser avant la boucle, mettre à jour dans la boucle, utiliser le résultat après la boucle. On part de 0 pour une somme, car ajouter 0 ne change rien, et de 1 pour un produit, car multiplier par 1 ne change rien. 2. Exemple : somme des impairs de 1 à 19 S = 0 for k in range(1, 20, 2): S = S + k print(S) 1. range(1, 20, 2) donne 1, 3, 5, , 19, soit 10 valeurs. 2. S prend les valeurs 1, 4, 9, 16, 25, … : après chaque tour, S est un carré. 3. Après le dernier tour, S vaut 100, et print(S), placé hors de la boucle, l'affiche une seule fois. 3. Somme ou produit ? Pour un produit, on écrit P = 1 puis P = P * k : avec range(1, 6), on obtient 1 2 3 4 5 = 120. Pour doubler 10 fois une quantité, on peut aussi accumuler par multiplication : P = P * 2 donne 2^10 = 1\,024 en partant de P = 1. 4. Attention Si l'instruction S = 0 est placée dans la boucle, la somme est remise à zéro à chaque tour et le programme ne renvoie que le dernier terme.

Dans ce chapitre