Un cap pour ce chapitre
Ce que vous saurez faire
- Construire une recherche séquentielle.
- Calculer un extremum, une somme et une moyenne.
- Choisir une initialisation et traiter les cas limites.
Une case à la fois, un résumé qui évolue
Un parcours séquentiel examine les éléments dans l’ordre. L’indice indique la prochaine case, tandis que des variables mémorisent les informations utiles sur les cases précédentes. Pour compter les valeurs positives, un compteur commence à zéro et augmente seulement si la valeur vérifie la condition. Pour une somme, un accumulateur commence à zéro et reçoit chaque valeur.
La même boucle peut calculer plusieurs informations, mais chaque variable doit avoir un rôle précis. Avant de programmer, formulez une phrase : « après k mesures, somme contient la somme des k premières ». Cette phrase guide la mise à jour et aide à repérer les erreurs.
Voici une trace de somme : avant toute lecture, s=0 ; après 4, s=4 ; après -2, s=2 ; après 7, s=9. Le nombre de valeurs traitées vaut alors 3, mais le dernier indice lu vaut 2. Cette différence entre quantité et indice explique de nombreuses erreurs de borne. Notez toujours ce que désigne votre variable de progression.
Trouver une occurrence sans changer le problème
Une recherche peut demander un booléen, un indice ou le nombre d’occurrences. Ces résultats ne sont pas interchangeables. Pour renvoyer le premier indice d’une cible, on s’arrête dès la première égalité et on renvoie cet indice. Si le parcours entier se termine sans rencontre, une convention comme -1 exprime l’absence.
Avec [4, -2, 7, 7, 1], le premier indice de 7 est 2. Le nombre d’occurrences est 2 également, mais cette égalité est accidentelle. Le dernier indice vaut 3. Une spécification précise évite de produire la bonne valeur pour une mauvaise raison.
Avec une cible absente du préfixe, la recherche n’est pas encore forcément terminée. Sur [4,-2,7,7,1], les deux premières lectures ne trouvent aucun 7, mais la suite en contient. La réponse « absent » est autorisée seulement lorsque toutes les cases pertinentes ont été éliminées. Une réponse positive peut au contraire être certaine dès la première rencontre.
Initialiser correctement un extremum
Pour un tableau non vide, on initialise le maximum à sa première valeur. On compare ensuite les suivantes et on conserve la plus grande. Initialiser à zéro serait incorrect si toutes les données étaient négatives : zéro pourrait être renvoyé sans appartenir au tableau.
Le minimum suit le raisonnement symétrique. Le tableau vide ne possède aucun minimum ou maximum. Il faut imposer une précondition de non-vacuité ou choisir un traitement explicitement documenté. Une sentinelle arbitraire n’est pas une solution si les valeurs autorisées peuvent la dépasser.
def maximum(t):
assert len(t) > 0
meilleur = t[0]
for i in range(1, len(t)):
if t[i] > meilleur:
meilleur = t[i]
return meilleurMoyenne et coût du parcours
La moyenne est la somme divisée par le nombre de valeurs, pas la moyenne successive de deux nombres. Pour notre série, la somme vaut 17 et la moyenne 17 / 5 = 3,4. Un tableau vide conduit à une division par zéro ; la précondition doit donc l’exclure si aucun résultat spécial n’est défini.
Une somme examine les n valeurs : son coût est linéaire. Une recherche peut finir rapidement, mais son pire cas reste linéaire lorsqu’aucune occurrence n’est trouvée ou que la première est en dernière position. La taille du tableau est la variable pertinente, pas la grandeur des températures.
Calculer plusieurs résultats dans une seule boucle
Pour des températures [-3,4,0,7,-2], on souhaite le total et le nombre de températures strictement positives. Initialement, somme et compteur valent zéro. À chaque valeur, on l’ajoute à la somme ; seulement si elle est supérieure à zéro, on incrémente le compteur. Les états successifs sont (-3,0), (1,1), (1,1), (8,2), (6,2). Zéro contribue à la somme mais n’est pas strictement positif.
Les deux variables résument les mêmes cases, mais selon deux règles différentes. Pour calculer la moyenne des seules températures positives, il faudrait un autre total, limité à 4 et 7 : 11/2=5,5. Diviser la somme générale 6 par le compteur positif 2 mélangerait deux populations. Avant toute division, vérifiez que le numérateur et le dénominateur décrivent exactement le même ensemble de données.
Passer du résultat au contrat et aux tests
Une fonction de recherche peut renvoyer le premier indice, toutes les positions ou un booléen. Ces choix changent son résultat et parfois son arrêt. Pour conserver toutes les positions de 7 dans [7,2,7], on construit [0,2] et on ne s’arrête pas au premier succès. Pour une simple présence, un arrêt à l’indice 0 suffit.
Choisissez des tests qui séparent les erreurs possibles : tableau vide, une valeur, toutes les valeurs négatives, répétitions, cible au début, à la fin et absente. Un test avec maximum positif ne détecte pas l’initialisation incorrecte à zéro. Un test où premier indice et nombre d’occurrences coïncident ne distingue pas deux contrats confondus. Un test utile fait varier une propriété importante du problème, puis annonce précisément le résultat attendu.
À vous de faire varier les choses
Observez le résumé du préfixe
Saisissez jusqu’à douze entiers séparés par des virgules puis choisissez combien de valeurs traiter. Testez des négatifs et un tableau vide.
Lire le résultat de l’expérience initiale
3 valeur(s) examinée(s) sur 5.
Les résultats portent seulement sur le préfixe traité. Une absence dans ce préfixe ne prouve pas l’absence dans la suite.
| Indice lu | Valeur | Somme après | Minimum après | Maximum après | Occurrences après |
|---|---|---|---|---|---|
| 0 | 4 | 4 | 4 | 4 | 0 |
| 1 | -2 | 2 | -2 | 4 | 0 |
| 2 | 7 | 9 | -2 | 7 | 1 |
Le nombre de cases traitées détermine exactement ce que chaque variable permet d’affirmer.
De la compréhension à l’autonomie
À vous de résoudre
Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.
Les variables après trois mesures
Pour [4, -2, 7, 7, 1], donnez somme, minimum et maximum après les trois premières valeurs.
Indice 1
Le préfixe traité est [4, -2, 7].
Indice 2
La somme inclut la valeur négative.
Comprendre la correction
La somme vaut 9, le minimum -2 et le maximum 7. La quatrième valeur, bien qu’égale à 7, n’a pas encore été traitée. Distinguer indice courant et nombre de valeurs déjà lues évite d’inclure une case trop tôt.
Un maximum qui n’existe pas
Un maximum initialisé à 0 renvoie 0 pour [-8, -3, -5]. Corrigez l’initialisation et donnez le résultat attendu.
Indice 1
Le maximum doit être l’une des valeurs présentes.
Indice 2
Le tableau est non vide.
Comprendre la correction
On initialise meilleur à -8, la première valeur. La comparaison avec -3 met meilleur à -3 ; -5 ne le change pas. Le résultat est -3. Initialiser avec t[0] fonctionne quels que soient les signes, sous la précondition que le tableau contienne au moins une valeur.
Première occurrence ou quantité ?
Dans [9, 2, 9, 9], quel est le premier indice de 9 et combien de fois 9 apparaît-il ?
Indice 1
Les indices commencent à zéro.
Indice 2
Le comptage ne s’arrête pas à la première rencontre.
Comprendre la correction
Le premier indice est 0, tandis que le nombre d’occurrences est 3. Une fonction renvoyant un indice peut terminer dès le début. Une fonction comptant toutes les occurrences doit poursuivre le parcours jusqu’au bout, car de nouveaux 9 peuvent apparaître.
Pourquoi la moyenne successive échoue
On calcule (2 + 4) / 2, puis on moyenne ce résultat avec 12. Comparez à la moyenne de [2, 4, 12].
Indice 1
La première méthode donne davantage de poids à 12.
Indice 2
La véritable moyenne utilise une somme et trois valeurs.
Comprendre la correction
La méthode proposée donne 3, puis 7,5. La moyenne correcte vaut (2 + 4 + 12) / 3 = 6. La moyenne successive attribue la moitié du poids à la dernière valeur. Accumuler la somme et compter les valeurs conserve les informations nécessaires.
Les températures retenues
Pour [-3,4,0,7,-2], calculez somme générale, nombre de valeurs strictement positives et somme de ces valeurs positives. Donnez leur moyenne puis expliquez pourquoi diviser la somme générale par le compteur positif ne convient pas.
Indice 1
Séparez les valeurs retenues des valeurs seulement parcourues.
Indice 2
Le zéro ne vérifie pas une comparaison strictement positive.
Comprendre la correction
La somme générale vaut 6. Les deux valeurs retenues sont 4 et 7, de somme 11 et de moyenne 5,5. Le quotient 6/2 mélange le total de cinq mesures avec le nombre de deux mesures : il ne calcule la moyenne d’aucun des ensembles demandés.
Trois contrats sur un même tableau
Dans [5,2,5,8,5], cherchez 5. Donnez la réponse pour une fonction de présence, une fonction de premier indice et une fonction retournant toutes les positions. Pour chacune, indiquez quand elle peut arrêter la lecture.
Indice 1
Une présence vraie n’exige pas de connaître les répétitions.
Indice 2
Les positions commencent à zéro.
Comprendre la correction
La présence renvoie vrai et le premier indice vaut 0 : les deux fonctions peuvent arrêter dès la première case. La liste des positions est [0,2,4] et demande de parcourir toutes les cases. La dernière occurrence peut être tout à la fin. Les trois réponses expriment des besoins différents malgré la même cible.
Un maximum et ses occurrences
Pour un tableau non vide, proposez une méthode calculant en un parcours le maximum et son nombre d’occurrences. Déroulez-la sur [-5,-2,-2,-7,-2]. Que faut-il faire au compteur quand un nouveau maximum apparaît ?
Indice 1
Initialisez le maximum à la première valeur et le compteur à 1.
Indice 2
Une nouvelle valeur plus grande rend les anciennes occurrences non pertinentes.
Comprendre la correction
À valeur plus grande, on remplace le maximum et remet le compteur à 1 ; à égalité, on l’incrémente ; sinon on ne change rien. Après -5 : maximum -5, compte 1. Les -2 produisent successivement compte 1 puis 2 ; -7 ne change rien ; le dernier -2 porte le compte à 3. Le maximum final vaut -2.
Les erreurs qui méritent un détour
- Confondre indice et valeur.
- Dans
t[i], i désigne une position ett[i]son contenu. Nommez distinctement les deux dans une trace. - Oublier le tableau vide.
- Une somme vide vaut 0, mais un extremum et une moyenne demandent un contrat particulier.
La fiche à garder
L’essentiel à retenir
- Un accumulateur résume les valeurs déjà parcourues.
- Initialisez un extremum avec une donnée existante.
- Les parcours complets ont un coût linéaire.
Cette notion au bac
Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.
- Bac 2026 · Banque nationale · Sujet 6 : Boutique de smoothies et recherche d’alternatives
- Bac 2026 · Banque nationale · Sujet 13 : Ballon sonde, températures et export cartographique KML
- Bac 2026 · Banque nationale · Sujet 14 : Évacuation d’une pièce et choix de la sortie la plus proche
- Bac 2026 · Banque nationale · Sujet 16 : Warming stripes, anomalies et régression linéaire
Le prochain pas
Retrouver le catalogue de Première
Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.
