Compteur – Accumulateur | Algorithmique Seconde
Introduction
Découvrez les concepts fondamentaux des structures algorithmiques
Définition du compteur
Le compteur
Un compteur est une variable qui sert à compter le nombre d'itérations ou le nombre d'occurrences d'un événement dans un algorithme.
Il est généralement incrémenté de 1 à chaque occurrence de l'événement à compter.
...
// Dans une boucle ou lors d'un événement
compteur ← compteur + 1 // Incrémentation
(compteur = 0)
Définition de l'accumulateur
L'accumulateur
Un accumulateur est une variable qui sert à accumuler ou additionner des valeurs au cours d'un processus itératif.
Il est généralement modifié par l'ajout d'une valeur à chaque itération.
...
// Dans une boucle ou lors d'un événement
accumulateur ← accumulateur + valeur // Accumulation
(accumulateur = 0)
Différences entre compteur et accumulateur
Comparaison
| Critère | Compteur | Accumulateur |
|---|---|---|
| Fonction | Compter occurrences | Sommer valeurs |
| Valeur ajoutée | Toujours 1 | Variable |
| Usage typique | Compter itérations | Calculer sommes |
| Opération | +1 | +valeur |
Compteur : "Combien de fois avons-nous rencontré un nombre pair ?"
Accumulateur : "Quelle est la somme des nombres pairs rencontrés ?"
Exemple de compteur
Compter les multiples de 3
Début
Afficher "Entrez un nombre entier n"
Lire n
compteur ← 0
i ← 1
Tant Que i ≤ n Faire
Si i % 3 = 0 Alors
compteur ← compteur + 1
Fin Si
i ← i + 1
Fin Tant Que
Afficher "Il y a ", compteur, " multiples de 3 entre 1 et ", n
Fin
| Itération | i | i % 3 = 0 | compteur |
|---|---|---|---|
| Initial | 1 | Faux | 0 |
| 1 | 1 | Faux | 0 |
| 2 | 2 | Faux | 0 |
| 3 | 3 | Vrai | 1 |
| 4 | 4 | Faux | 1 |
| 5 | 5 | Faux | 1 |
| 6 | 6 | Vrai | 2 |
| 7 | 7 | Faux | 2 |
| 8 | 8 | Faux | 2 |
| 9 | 9 | Vrai | 3 |
| 10 | 10 | Faux | 3 |
Le résultat est 3 multiples de 3 entre 1 et 10 : 3, 6, 9.
Exemple d'accumulateur
Somme des carrés
Début
Afficher "Entrez un nombre entier n"
Lire n
accumulateur ← 0
i ← 1
Tant Que i ≤ n Faire
accumulateur ← accumulateur + (i * i)
i ← i + 1
Fin Tant Que
Afficher "La somme des carrés de 1 à ", n, " est ", accumulateur
Fin
| Itération | i | i² | accumulateur |
|---|---|---|---|
| Initial | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 2 | 4 | 5 |
| 3 | 3 | 9 | 14 |
| 4 | 4 | 16 | 30 |
Le résultat est 30 = 1² + 2² + 3² + 4² = 1 + 4 + 9 + 16.
Exercice 1
Compter les nombres pairs
Écrire un algorithme qui demande à l'utilisateur un nombre entier n strictement positif, puis qui :
- Compte combien de nombres pairs se trouvent entre 1 et n
- Calcule la somme de ces nombres pairs
Utiliser un compteur et un accumulateur.
- Il faudra une variable pour compter les nombres pairs (compteur)
- Il faudra une variable pour accumuler leur somme (accumulateur)
- Utilisez la condition "nombre % 2 = 0" pour détecter un nombre pair
Solution exercice 1
Correction détaillée
Début
Afficher "Entrez un nombre entier strictement positif"
Lire n
compteur_pairs ← 0
somme_pairs ← 0
i ← 1
Tant Que i ≤ n Faire
Si i % 2 = 0 Alors
compteur_pairs ← compteur_pairs + 1
somme_pairs ← somme_pairs + i
Fin Si
i ← i + 1
Fin Tant Que
Afficher "Entre 1 et ", n, ", il y a "
Afficher "- ", compteur_pairs, " nombres pairs"
Afficher "- La somme de ces nombres pairs est ", somme_pairs
Fin
| Itération | i | i % 2 = 0 | compteur | somme |
|---|---|---|---|---|
| Initial | 1 | - | 0 | 0 |
| 1 | 1 | Faux | 0 | 0 |
| 2 | 2 | Vrai | 1 | 2 |
| 3 | 3 | Faux | 1 | 2 |
| 4 | 4 | Vrai | 2 | 6 |
| 5 | 5 | Faux | 2 | 6 |
| 6 | 6 | Vrai | 3 | 12 |
Entre 1 et 6, il y a 3 nombres pairs (2, 4, 6) et leur somme est 12.
Exercice 2
Moyenne des notes
Écrire un algorithme qui permet de saisir des notes (entre 0 et 20) jusqu'à ce que l'utilisateur entre -1 pour arrêter. L'algorithme doit :
- Compter le nombre de notes saisies (hors -1)
- Calculer la somme des notes
- Afficher la moyenne des notes
Utiliser un compteur et un accumulateur.
- Utilisez une boucle Tant Que avec condition d'arrêt (-1)
- Un compteur pour le nombre de notes
- Un accumulateur pour la somme des notes
- Attention à ne pas inclure -1 dans les calculs
Solution exercice 2
Correction détaillée
Début
compteur ← 0
somme_notes ← 0
Afficher "Entrez une note (0-20) ou -1 pour arrêter"
Lire note
Tant Que note ≠ -1 Faire
Si note ≥ 0 ET note ≤ 20 Alors
compteur ← compteur + 1
somme_notes ← somme_notes + note
Sinon
Afficher "Note invalide, entrez une note entre 0 et 20"
Fin Si
Afficher "Entrez une note (0-20) ou -1 pour arrêter"
Lire note
Fin Tant Que
Si compteur > 0 Alors
moyenne ← somme_notes / compteur
Afficher "Vous avez saisi ", compteur, " notes"
Afficher "La somme des notes est ", somme_notes
Afficher "La moyenne est ", moyenne
Sinon
Afficher "Aucune note valide saisie"
Fin Si
Fin
Supposons que l'utilisateur entre : 15, 12, 18, -1
- Itération 1 : note = 15 → compteur = 1, somme = 15
- Itération 2 : note = 12 → compteur = 2, somme = 27
- Itération 3 : note = 18 → compteur = 3, somme = 45
- Itération 4 : note = -1 → sortie de la boucle
Moyenne = 45 / 3 = 15
Erreurs fréquentes
Pièges à éviter
- 1 Oublier d'initialiser → la variable contient une valeur inconnue
- 2 Initialiser avec une mauvaise valeur → 1 au lieu de 0 pour les compteurs/accumulateurs
- 3 Confondre les deux concepts → utiliser +1 pour un accumulateur ou +valeur pour un compteur
- 4 Ne pas incrémenter au bon moment → avant ou après la condition
Tant Que i ≤ n Faire
Si i % 2 = 0 Alors
compteur ← compteur + 1 // compteur n'est pas initialisé !
Fin Si
i ← i + 1
Fin Tant Que
// CORRECTION :
compteur ← 0 // Initialisation obligatoire
Tant Que i ≤ n Faire
Si i % 2 = 0 Alors
compteur ← compteur + 1
Fin Si
i ← i + 1
Fin Tant Que
Applications concrètes
Utilisations concrètes
- 1 Statistiques : Compter les votes, les visites, les erreurs
- 2 Calculs financiers : Accumuler des dépenses, des revenus
- 3 Jeux : Compter les points, les vies, les niveaux
- 4 Contrôles qualité : Compter les défauts, les conformités
- 5 Algorithmes de tri : Compter les comparaisons, les échanges
Un magasin souhaite analyser ses ventes quotidiennes :
- Compteur : Nombre de jours avec vente > 1000€
- Accumulateur : Total des ventes sur la période
Début
nb_jours ← 0
total_ventes ← 0
seuil_jours ← 0
...
Pour chaque jour de la période Faire
Lire vente_jour
total_ventes ← total_ventes + vente_jour
nb_jours ← nb_jours + 1
Si vente_jour > 1000 Alors
seuil_jours ← seuil_jours + 1
Fin Si
Fin Pour
Afficher "Total des ventes : ", total_ventes
Afficher "Nombre de jours > 1000€ : ", seuil_jours
Fin
Optimisation et bonnes pratiques
Meilleures pratiques
- 1 Toujours initialiser à 0 avant la boucle
- 2 Donner des noms explicites (ex: compteur_paires, somme_notes)
- 3 Documenter le rôle de chaque variable
- 4 Tester avec des cas limites (0, 1, valeurs extrêmes)
- 5 Ne pas confondre les deux concepts
compteur_occurrences ← 0 // Compte les occurrences d'un événement
accumulateur_valeurs ← 0 // Accumule les valeurs rencontrées
// Boucle principale
Tant Que condition Faire
// Corps de la boucle
instructions
// Mise à jour des compteurs et accumulateurs
Si condition_specifique Alors
compteur_occurrences ← compteur_occurrences + 1
Fin Si
accumulateur_valeurs ← accumulateur_valeurs + valeur_a_traiter
Fin Tant Que
Résumé
Points clés
- Compteur : Variable qui sert à compter (toujours +1)
- Accumulateur : Variable qui sert à accumuler des valeurs (toujours +valeur)
- Les deux doivent être initialisés à 0
- Essentiels dans les boucles itératives
- Très utilisés dans les algorithmes de traitement de données
- Compteur : Pour compter des occurrences
- Accumulateur : Pour additionner des valeurs
- Les deux ensemble pour des analyses complètes
- Très fréquents dans les algorithmes de statistiques
Conclusion
Félicitations !
Continuez à pratiquer pour renforcer vos compétences en algorithmique