Fiche récapitulative générée pour impression / export PDF.

3ème · Algorithmique et programmation

Algorithme de recherche d'un seuil

Introduction

On combine maintenant deux notions : la boucle « tant que » et les suites de nombres vues en 4ème (variable accumulatrice qui augmente régulièrement). On cherche à déterminer le premier terme d'une suite qui dépasse un seuil donné.

Principe de l'algorithme

📌 Méthode

1. Initialiser une variable accumulatrice avec le premier terme de la suite (ex : uu0u \leftarrow u_0).

2. Initialiser un compteur de rang si besoin (ex : n0n \leftarrow 0).

3. Tant que uu ne dépasse pas le seuil, augmenter uu de la raison rr (et augmenter nn de 11 si on suit le rang).

4. Dès que la condition devient fausse (le seuil est dépassé), la boucle s'arrête : uu contient alors le premier terme dépassant le seuil.

Ce principe fait le lien direct avec la formule vue en 4ème pour une suite arithmétique : un=u0+n×ru_n = u_0 + n \times r. L'algorithme « tant que » permet de trouver nn sans avoir à résoudre une inéquation à la main.

Structure générale

uu prend la valeur u0u_0

nn prend la valeur 00

tant que useuilu \leq \text{seuil} faire :

\quad uu prend la valeur u+ru + r

\quad nn prend la valeur n+1n + 1

fin tant que

afficher nn et uu

Exemples

✅ Exemple simple — Suite de raison 55, seuil 2020

Suite : u0=0u_0=0, raison r=5r=5. On veut le premier terme >20>20.

Déroulement de uu : 05101520250 \to 5 \to 10 \to 15 \to 20 \to 25.

Dès que u=25u=25, la condition u20u \leq 20 devient fausse : on s'arrête. Le premier terme dépassant 2020 est 2525 (c'est le terme de rang n=5n=5).

📘 Exemple intermédiaire — Lien avec la formule des suites arithmétiques

Suite arithmétique u0=3u_0=3, raison r=4r=4 : un=3+4nu_n = 3+4n. On cherche le premier rang nn tel que un>50u_n > 50.

Avec l'algorithme : uu passe par 3,7,11,...3,7,11,... en ajoutant 44 à chaque tour, jusqu'à dépasser 5050.

On peut vérifier par le calcul : 3+4n>50    4n>47    n>11,753+4n>50 \implies 4n>47 \implies n>11{,}75, donc le premier rang entier est n=12n=12, et u12=3+4×12=51u_{12}=3+4\times12=51. L'algorithme, en testant terme par terme, retrouve exactement ce résultat : 5151.

🔴 Exemple avancé — Compter le nombre de tours nécessaires

Une suite commence à u0=100u_0=100 avec une raison r=7r=-7 (elle diminue). On veut savoir après combien de tours uu devient strictement négatif.

Déroulement : 100,93,86,79,72,...100,93,86,79,72,... On continue tant que u0u \geq 0.

En résolvant 1007n<0    n>100714,3100-7n<0 \implies n>\frac{100}{7}\approx14{,}3, donc à partir de n=15n=15, u15=1007×15=100105=5u_{15}=100-7\times15=100-105=-5 : c'est la première valeur négative, obtenue après 1515 tours de boucle.

À retenir

- Une boucle « tant que » permet de trouver le premier terme d'une suite qui dépasse (ou descend sous) un seuil, sans connaître ce rang à l'avance.
- On combine une variable accumulatrice (qui suit la valeur du terme) avec un compteur de rang si l'on veut aussi connaître nn.
- Ce principe est directement relié à la formule des suites arithmétiques un=u0+n×ru_n = u_0+n\times r vue en 4ème : l'algorithme donne le même résultat que la résolution d'une inéquation, mais de façon automatisée.

Exercices de la leçon

Exercice 1

À quoi sert un algorithme de recherche de seuil utilisant une boucle « tant que » ?

Corrigé

Cet algorithme répète l'ajout de la raison tant que le terme ne dépasse pas le seuil fixé, et s'arrête dès que ce seuil est franchi.

Exercice 2

Cet algorithme de recherche de seuil utilise le même principe accumulateur que les suites vues en 4ème.

Corrigé

On retrouve la même variable accumulatrice augmentée de la raison rr à chaque tour, combinée ici à une condition d'arrêt liée à un seuil.

Exercice 3

Une suite commence à u0=2u_0=2 avec une raison r=3r=3. Quel est le premier terme strictement supérieur à 1414 ?

Corrigé

Déroulement : 2,5,8,11,14,172,5,8,11,14,17. Le terme 1414 n'est pas strictement supérieur à 1414, donc on continue jusqu'à 1717, qui est bien le premier terme à dépasser strictement 1414.

Exercice 4

Pourquoi utiliser une boucle « tant que » plutôt qu'une boucle « répéter nn fois » pour ce type de recherche de seuil ?

Corrigé

Le nombre de répétitions nécessaires pour dépasser le seuil dépend des valeurs u0u_0, rr et du seuil : il n'est pas connu avant d'exécuter l'algorithme, ce qui impose la boucle « tant que ».

Exercice 5

Une suite arithmétique a pour premier terme u0=10u_0=10 et raison r=6r=6. Écris (en pseudo-code) un algorithme avec une boucle « tant que » qui détermine le premier rang nn tel que un>100u_n>100, puis exécute-le pas à pas pour donner ce rang et la valeur de unu_n correspondante.

Corrigé

On simule l'exécution de la boucle tour par tour jusqu'à ce que la condition u100u\leq100 devienne fausse, puis on confirme le résultat en résolvant l'inéquation associée à la formule explicite de la suite arithmétique.

AlphaMath Académie · Algorithme de recherche d'un seuil · Algorithmique et programmation