Définition
En algorithmique, les algorithmes classiques de somme, de maximum et de comptage permettent de traiter des listes de données. Ils sont basés sur l'itération (boucles) et l'utilisation de variables pour accumuler un résultat (somme), suivre la plus grande valeur (maximum) ou compter des occurrences (comptage). Ces algorithmes sont fondamentaux pour l'analyse de données.
Méthode : Algorithmes classiques : somme, maximum, comptage
Initialiser les variables
Avant de parcourir la liste, il faut initialiser les variables qui vont stocker le résultat. Pour une somme, on initialise à $0$. Pour un maximum, on initialise avec la première valeur de la liste (ou une valeur très petite si la liste peut être vide ou contenir des nombres négatifs). Pour un comptage, on initialise à $0$.
Parcourir la liste
Utiliser une boucle (par exemple, for element in liste: en Python) pour visiter chaque élément de la liste, un par un.
Mettre à jour le résultat
À chaque itération de la boucle, mettre à jour la variable de résultat :
- Somme : ajouter l'élément courant à la variable de somme.
- Maximum : si l'élément courant est supérieur à la variable de maximum, remplacer le maximum par cet élément.
- Comptage : si l'élément courant satisfait une certaine condition, incrémenter la variable de comptage.
Retourner le résultat
Une fois la boucle terminée, la variable de résultat contient la somme, le maximum ou le compte final. On peut alors l'afficher ou la retourner.
Exemple résolu
notes = [12, 8, 15, 10, 15, 7]. Écrire un programme Python qui calcule la somme des notes, la note maximale et le nombre de notes égales à $15$.notes = [12, 8, 15, 10, 15, 7]
somme_notes = 0
note_max = notes[0] # On initialise avec le premier élément
compte_quinze = 0for note in notes:
# Somme
somme_notes = somme_notes + note
# Maximum
if note > note_max:
note_max = note
# Comptage
if note == 15:
compte_quinze = compte_quinze + 1print(f"La somme des notes est : {somme_notes}")
print(f"La note maximale est : {note_max}")
print(f"Le nombre de notes égales à 15 est : {compte_quinze}")La somme des notes est : 67La note maximale est : 15Le nombre de notes égales à 15 est : 2Piège fréquent en Seconde : Initialisation incorrecte
- Pour la somme : Oublier d'initialiser la variable de somme à $0$. Si elle n'est pas initialisée, le programme peut générer une erreur ou un résultat imprévisible.
- Pour le maximum : Initialiser la variable de maximum à $0$ si la liste peut contenir uniquement des nombres négatifs. Dans ce cas, le maximum serait $0$ alors qu'il devrait être un nombre négatif. Il est préférable d'initialiser avec le premier élément de la liste (
liste[0]) ou une valeur très petite (ex:-float('inf')pour des nombres réels). - Pour le comptage : Oublier d'initialiser la variable de comptage à $0$. Le compte serait alors incorrect.
Exercice type contrôle
On considère la liste de températures journalières (en degrés Celsius) pour une semaine :temperatures = [18, 20, 17, 22, 19, 20, 21].- Écrire un programme Python qui calcule la température moyenne de la semaine.
- Écrire un programme Python qui trouve la température minimale de la semaine.
- Écrire un programme Python qui compte le nombre de jours où la température a été supérieure ou égale à $20$°C.
temperatures = [18, 20, 17, 22, 19, 20, 21]
# Question 1 : Température moyenne
somme_temperatures = 0
for temp in temperatures:
somme_temperatures = somme_temperatures + temp
moyenne_temperatures = somme_temperatures / len(temperatures)
print(f"La température moyenne est : {moyenne_temperatures:.2f}°C")
# Question 2 : Température minimale
temp_min = temperatures[0] # Initialisation avec le premier élément
for temp in temperatures:
if temp < temp_min:
temp_min = temp
print(f"La température minimale est : {temp_min}°C")
# Question 3 : Nombre de jours >= 20°C
jours_chauds = 0
for temp in temperatures:
if temp >= 20:
jours_chauds = jours_chauds + 1
print(f"Nombre de jours avec une température >= 20°C : {jours_chauds}")
Résultats attendus :
- La température moyenne est : $19.57$°C
- La température minimale est : $17$°C
- Nombre de jours avec une température $\geq 20$°C : $4$
Questions fréquentes
Peut-on utiliser ces algorithmes avec des listes vides ?
notes[0] (pour l'initialisation du maximum) provoquerait une erreur. Il faut ajouter une condition pour vérifier si la liste est vide avant de commencer le traitement, par exemple if len(liste) == 0:.Ces algorithmes sont-ils efficaces pour de très grandes listes ?
Comment trouver le minimum au lieu du maximum ?
if element < variable_minimum: pour mettre à jour la variable.Existe-t-il des fonctions Python intégrées pour ces opérations ?
sum(liste) pour la somme, max(liste) pour le maximum, et min(liste) pour le minimum. Pour le comptage, la méthode liste.count(element) permet de compter les occurrences d'un élément spécifique. Cependant, il est essentiel de savoir implémenter ces algorithmes soi-même pour comprendre les bases de la programmation.Pour aller plus loin
Le passage en Seconde est difficile ?
Adil accompagne les élèves de Seconde, à domicile dans le Val d'Oise ou en ligne. Un seul prof, du premier cours jusqu'au Bac.