Mathématiques (spécialité) · PremièreÉpreuve anticipée de mathématiques
Méthode de seuil et de balayage : cours de Première spé
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
- Un problème de seuil demande le premier rang à partir duquel une grandeur dépasse (ou passe sous) une valeur donnée ; on le résout par un calcul, un graphique ou une boucle tant que.
- La boucle tant que se construit en quatre temps : initialiser, tester la condition de continuation, mettre à jour la valeur et le rang, retourner le rang.
- La condition du tant que est le contraire de ce que tu cherches : tu continues tant que le seuil n'est pas atteint.
- Le balayage parcourt une liste élément par élément avec une boucle pour afin de compter, de repérer le premier indice qui convient ou de tout examiner.
- Les pièges : inégalité stricte ou large, rang décalé d'une unité, boucle infinie quand la suite n'atteint jamais le seuil, confusion entre indice et valeur.
Pourquoi chercher un seuil ?
Une entreprise voit son nombre d'abonnés augmenter chaque mois. Un épargnant place une somme à intérêts composés. Un thermomètre relève une température toutes les heures. Dans ces trois situations, une même question revient : à partir de quand la grandeur dépasse-t-elle une valeur qui nous intéresse ? Combien de mois avant d'atteindre 1 000 abonnés ? Combien d'années avant que le capital double ? À quelle heure la température a-t-elle franchi 30 degrés ?
Cette valeur qui nous intéresse s'appelle un seuil. Les ressources officielles de mathématiques de Première classent d'ailleurs le problème de seuil parmi les situations à savoir traiter, pour une croissance linéaire comme pour une croissance exponentielle 2. Dans ce cours, tu vas apprendre deux outils complémentaires :
- la méthode de seuil, qui cherche le premier rang d'une suite à partir duquel une condition est vraie ;
- la méthode de balayage, qui parcourt une liste de valeurs déjà connues pour y chercher, compter ou comparer.
Ce chapitre s'appuie sur deux notions vues avant : les listes en Python (avec la compréhension de listes) et les algorithmes sur les suites, où une boucle sert à calculer un terme de rang donné 3. Si tu sais écrire une fonction qui renvoie pour une suite définie par récurrence, tu as tout ce qu'il faut pour commencer.
Deux situations, deux boucles
Avant d'écrire la moindre ligne de code, pose-toi une question simple : est-ce que je sais combien de tours je vais faire ?
- Si la réponse est oui (la liste a 7 éléments, je fais 7 tours), on utilise une boucle pour. C'est le cas du balayage.
- Si la réponse est non (je répète jusqu'à ce que ça dépasse 1 000), on utilise une boucle tant que. C'est le cas du seuil.
Les documents d'accompagnement signalent que les problèmes de seuil, qu'ils portent sur une valeur fixée ou sur une valeur qui change d'un énoncé à l'autre, demandent une boucle « tant que » 3. Dans la pratique, cela veut dire que ton programme doit fonctionner même si on change la valeur du seuil : tu la passes donc comme paramètre de ta fonction.
- Initialiseru prend la valeur de u0 et n vaut 0
- TesterOn continue tant que le seuil n'est pas atteint
- Mettre à jourOn calcule le terme suivant et on ajoute 1 à n
- RetournerÀ la sortie, n est le premier rang qui convient
La boucle tant que, pas à pas
Prenons une suite arithmétique : et . On veut le premier rang tel que . Commence par comprendre ce que doit faire l'ordinateur, comme tu le ferais à la main : tu calcules , tu regardes s'il dépasse 100, sinon tu calcules , tu regardes encore, etc. Chaque tour de boucle correspond à un passage au terme suivant.
Une fois la boucle terminée, la variable n donne le rang cherché. Si l'énoncé demande la valeur du premier terme qui dépasse le seuil, tu renvoies u. Si l'énoncé demande les deux, tu renvoies un couple : return n, u. Lis donc bien la question avant de choisir ce que la fonction retourne.
Seuil et croissance : linéaire ou exponentielle
Le même squelette sert pour toutes les suites définies par récurrence. Seule la ligne de mise à jour change. Les ressources de Première rappellent qu'une suite géométrique modélise une grandeur dont le taux d'évolution reste le même d'un rang à l'autre 2. Une suite arithmétique, elle, ajoute toujours la même quantité : c'est la croissance linéaire.
| Modèle | Récurrence | Ligne de mise à jour |
|---|---|---|
| Croissance linéaire (arithmétique) | u = u + r |
|
| Croissance à taux constant (géométrique) | u = q * u |
Pour une évolution de % par période, le coefficient multiplicateur est . Une hausse de 5 % correspond à .
Pour une croissance linéaire, on peut aussi résoudre le problème par un calcul algébrique. Avec et , la condition équivaut à . Avec l'exemple , et , on obtient , donc le plus petit entier convenable est 23. C'est exactement ce que donnait l'algorithme.
Pour une croissance exponentielle, la résolution par le calcul demande des outils que tu n'as pas encore tous en Première. Les ressources évoquent la résolution par le calcul, mais aussi à l'aide d'une représentation graphique ou d'un algorithme 2. Le tableau de valeurs de la calculatrice et la boucle tant que restent alors tes meilleurs alliés.
Le balayage d'une liste
Place-toi maintenant dans une situation différente : tu as une liste de relevés, par exemple les notes d'un élève notes = [8, 12, 15, 9, 17, 14], et tu veux répondre à des questions sur cette liste. Le nombre d'éléments est connu : la boucle pour convient. On appelle cela un balayage, parce que l'on passe sur chaque case, de la première à la dernière.
La compréhension de listes que tu connais permet d'écrire certains balayages en une ligne :
indices = [i for i in range(len(notes)) if notes[i] >= 12]
effectif = len([v for v in notes if v >= 12])
La première ligne donne la liste de tous les indices qui conviennent, la seconde le nombre de valeurs qui conviennent. Pour trouver le premier indice, on prend indices[0] à condition que la liste ne soit pas vide.
Erreurs fréquentes et sécurités
Méthode complète pour résoudre un problème
Exercices corrigés
Exercice 1 Seuil d'une suite arithmétique
Une bibliothèque possède 500 livres. Elle en achète 30 de plus chaque mois, de sorte que le nombre de livres suit une suite arithmétique avec et .
- Écris une fonction Python qui renvoie le premier rang tel que .
- Retrouve le résultat par un calcul.
- Combien de livres possède la bibliothèque à ce rang ?
Indice 1
La condition de continuation est le contraire de .
Indice 2
Pour le calcul, résous et prends le plus petit entier qui convient.
Voir la correction pas à pas
On cherche , donc on continue tant que .
Fonction : initialiser
n = 0etu = 500, puiswhile u <= 1000:avecu = u + 30etn = n + 1, enfinreturn n.Par le calcul : . L'inégalité donne , soit environ.
Le plus petit entier strictement supérieur à est 17. Le rang cherché est donc 17.
Contrôle : et .
Au rang 17, la bibliothèque possède 1 010 livres.
Le premier rang pour lequel la bibliothèque dépasse 1 000 livres est 17, avec 1 010 livres. Le calcul et l'algorithme donnent le même résultat.
Exercice 2 Seuil d'un capital à intérêts composés
On place 2 000 euros à 3 % par an, intérêts composés. On note le capital après années.
- Donne la nature de la suite et sa raison.
- Écris une fonction Python qui renvoie la première année où le capital dépasse 3 000 euros.
- Détermine ce rang en t'aidant de valeurs approchées de et .
Indice 1
Une hausse de 3 % revient à multiplier par .
Indice 2
On a ; compare à 3 000 en testant des rangs voisins de 13 et 14.
Voir la correction pas à pas
Une hausse de 3 % multiplie le capital par chaque année : la suite est géométrique de raison et de premier terme .
Condition cherchée : . On continue donc tant que .
Fonction : initialiser
n = 0etc = 2000, puiswhile c <= 3000:avecc = 1.03 * cetn = n + 1, enfinreturn n.Avec , on a euros, encore sous 3 000.
De même euros, au-dessus de 3 000.
Le premier rang qui convient est donc 14 : le capital dépasse 3 000 euros au bout de 14 ans.
Le capital dépasse 3 000 euros au bout de 14 ans (environ 3 025 euros). La croissance étant exponentielle, on a trouvé le rang en testant des valeurs ou en laissant la boucle faire le travail.
Exercice 3 Balayage d'une liste de températures
Voici les températures maximales relevées sur sept jours : temp = [12, 18, 25, 9, 31, 22, 27].
- Écris une fonction qui compte les jours où la température est strictement supérieure à 20.
- Quelle valeur renvoie-t-elle pour cette liste ?
- Écris une fonction qui renvoie l'indice du premier jour où la température dépasse 20, et donne sa valeur ici.
Indice 1
Utilise une variable compteur, initialisée à 0, que tu augmentes de 1 à chaque valeur qui convient.
Indice 2
Pour l'indice, parcours avec range(len(temp)) et arrête-toi par un return dès qu'une valeur convient.
Voir la correction pas à pas
Fonction de comptage :
c = 0, puisfor v in temp:avecif v > 20:etc = c + 1, enfinreturn c.On passe en revue les valeurs : 12 (non), 18 (non), 25 (oui), 9 (non), 31 (oui), 22 (oui), 27 (oui).
Quatre valeurs sont strictement supérieures à 20 : la fonction renvoie 4.
Fonction du premier indice :
for i in range(len(temp)):avecif temp[i] > 20:etreturn i.La première valeur qui convient est 25, située à l'indice 2 (les indices commencent à 0), donc cette fonction renvoie 2.
Quatre jours dépassent 20 degrés, et le premier est à l'indice 2, c'est-à-dire le troisième jour. Attention à ne pas confondre l'indice 2 avec la valeur 25.
Quiz
9 questions · correction immédiate · ton score reste sur ton appareil.
-
Comme le nombre de répétitions dépend du moment où la condition devient vraie, la boucle tant que s'impose. Utiliser
range(1000)mélange le seuil, qui est une valeur de la suite, avec un nombre de tours ; ce serait inadapté et le rang renvoyé serait faux. -
On continue tant que l'objectif n'est pas atteint, donc tant que . Écrire
u > Srenverse la logique : si le premier terme est déjà sous le seuil, la boucle ne démarre pas et la fonction renvoie 0. -
On résout , soit . Comme l'inégalité est stricte, ne convient pas puisque exactement. Le plus petit rang est 17, avec . Répondre 16 oublie le caractère strict.
-
Le capital vaut . On a , donc environ 194,9 euros, encore sous 200 ; puis , donc environ 214,4 euros, au-dessus de 200. Le rang cherché est 8. Répondre 10, par analogie avec « 10 % », serait confondre le taux et le nombre d'années.
-
C'est faux : la condition d'une boucle tant que décrit ce qui permet de continuer. Pour un dépassement de , on continue tant que . L'écriture
u > Sdécrit au contraire l'arrêt. -
Le premier
returninterrompt la fonction dès qu'un élément convient. Lereturn Nonen'est donc atteint que si la boucle va jusqu'au bout sans rien trouver. Dire qu'il est exécuté à chaque tour confond l'instruction avec le corps de la boucle. -
Dans les deux premiers cas, la suite décroît : elle ne franchit jamais un seuil plus haut que son premier terme, donc la condition reste vraie. Dans les deux autres cas la suite croît et finit par dépasser le seuil : la boucle s'arrête.
-
Les notes qui conviennent sont 12, 15, 17 et 14, soit 4 valeurs. Répondre 3 vient d'une inégalité stricte appliquée par erreur (12 serait exclu) ; répondre 6 revient à compter tous les éléments.
-
Avec
range(len(liste)),iprend les indices 0, 1, 2, … Pour obtenir la valeur, il faut écrireliste[i]. C'est la bouclefor v in listequi donne directement la valeur.
Les questions qu'on se pose
Quelle différence entre une méthode de seuil et un balayage ?
Dans un seuil, on génère les termes d'une suite un par un et on s'arrête quand la condition devient vraie : la boucle tant que convient, puisqu'on ignore le nombre de tours. Dans un balayage, la liste existe déjà et on la parcourt d'un bout à l'autre avec une boucle pour. La première méthode cherche quand, la seconde examine ce qui est déjà là.
Pourquoi ne peut-on pas toujours résoudre un seuil par un calcul ?
En croissance linéaire, l'inéquation se résout directement. En croissance exponentielle, l'inconnue est en exposant, et tu n'as pas à ce niveau tous les outils pour l'isoler. Tu utilises alors le tableau de valeurs, le graphique ou l'algorithme, qui fonctionnent dans tous les cas.
Comment éviter de me tromper d'un rang ?
Teste ta fonction sur un petit seuil que tu sais traiter à la main, par exemple avec , et : tu dois trouver 3. Vérifie ensuite sur le résultat que est au-dessus du seuil et que est en dessous (ou égal, si l'inégalité est stricte).
Que faire si mon programme ne s'arrête jamais ?
Interromps-le, puis demande-toi si la suite peut vraiment franchir le seuil. Une raison négative ou un coefficient multiplicateur inférieur ou égal à 1 avec un seuil plus haut que le premier terme rend le dépassement impossible. Ajoute au besoin un nombre maximal de tours dans la condition de la boucle.
Doit-on utiliser `break` dans un balayage ?
Ce n'est pas obligatoire. Pour repérer le premier élément qui convient, un return dans la boucle d'une fonction arrête tout dès que c'est trouvé, ce qui rend le break inutile. Pour compter ou retenir un maximum, il faut au contraire parcourir toute la liste, donc sans arrêt anticipé.
Sources
- Ressources Éduscol - Algorithmique et programmation en première (mathématiques spécialité), Éduscol. Consulté le 7 novembre 2026.
- Ressources - Algorithmique et programmation en première générale, Éduscol. Consulté le 7 novembre 2026.
- Diaporama algorithmique (ressources académiques - Mathématiques Lycée), Académie de Strasbourg. Consulté le 7 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.