Aller au contenu

Mathématiques (spécialité) · TerminaleBac

Suites et algorithmes : cours de Terminale spécialité maths

Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur

L'essentiel

  • Un algorithme est une succession finie d'instructions précises ; pour une suite, il calcule des termes avec une boucle for quand le nombre de répétitions est connu.
  • Un algorithme de seuil utilise une boucle while : on avance de terme en terme tant que la condition d'arrêt n'est pas atteinte, puis on renvoie le rang nn.
  • Il ne termine que si la suite finit réellement par franchir le seuil : une suite croissante qui tend vers +∞+\infty le franchit toujours, une suite croissante convergente jamais si le seuil est au moins égal à sa limite.
  • Un algorithme permet de conjecturer ; seule une démonstration (récurrence, limite, théorèmes de comparaison ou de convergence monotone) prouve.
  • Pièges classiques : mauvais sens de l'inégalité, oubli de n=n+1n = n + 1, renvoi de uu au lieu de nn, seuil inatteignable.

Pourquoi associer suites et algorithmes

En Terminale, tu manipules des suites dont tu étudies le sens de variation, la convergence et la limite. Pourtant, une question très concrète revient dans les sujets : à partir de quel rang une suite dépasse-t-elle 1000 ? À partir de quel rang reste-t-elle à moins d'un centième de sa limite ? Calculer à la main les termes un par un serait interminable. C'est là qu'intervient l'algorithme : tu demandes à une machine de répéter le calcul à ta place.

Le programme de Terminale s'organise autour des notions de suite et de fonction, et les ressources d'accompagnement rappellent que les capacités attendues comprennent le fait de calculer, d'appliquer des techniques et de mettre en œuvre des algorithmes 1. Les documents de cycle terminal précisent aussi que l'on entraîne les élèves à décrire des algorithmes en langage naturel ou dans un langage de programmation, et à en réaliser quelques-uns avec un tableur ou un programme 2.

Ce cours suit un fil simple :

  • comprendre ce qu'est un algorithme et d'où vient le mot ;
  • programmer le calcul des termes d'une suite ;
  • écrire un algorithme de seuil et savoir quand il s'arrête ;
  • relier ce que fait l'algorithme à ce que tu démontres sur les limites ;
  • éviter les erreurs qui coûtent des points au bac.

Tu supposes connus le raisonnement par récurrence, la notion de limite d'une suite, ainsi que les théorèmes de comparaison et de convergence monotone.

Ce qu'est un algorithme, et d'où vient le mot

Un algorithme peut s'écrire en français, sous forme graphique dans un organigramme de programmation 4, ou dans un langage comme Python. Au lycée, on retient surtout Python : c'est le langage des sujets de bac.

Calculer les termes d'une suite avec une boucle

Une suite peut être définie de deux façons. Une définition explicite donne unu_n directement en fonction de nn : par exemple un=3n+2u_n = 3n + 2. Une définition par récurrence donne le premier terme et une relation qui passe d'un terme au suivant : par exemple u0=5u_0 = 5 et un+1=0,8 un+2u_{n+1} = 0{,}8\,u_n + 2.

Pour une suite explicite, calculer unu_n ne demande qu'une affectation. Pour une suite définie par récurrence, il faut répéter la relation : c'est exactement le rôle d'une boucle.

Premiers termes de la suite $u_{n+1} = 0{,}8\,u_n + 2$
nu_n
05
16
26,8
37,44
47,952
58,3616
68,68928
Premiers termes de la suite $u_{n+1} = 0{,}8\,u_n + 2$ · La suite est croissante et semble se rapprocher de 10.

L'algorithme de seuil

Le grand classique du bac est la recherche d'un seuil : le plus petit entier nn tel que unu_n dépasse une valeur donnée SS. Ici le nombre de répétitions n'est pas connu à l'avance. On utilise donc une boucle while (« tant que »), qui s'arrête quand la condition cesse d'être vraie.

Les étapes d'un algorithme de seuilQuatre étapes successives : initialiser, tester, avancer, renvoyer le rang.1Initialisern = 0 et u = valeur de u02Testerwhile : on continue tant que le seuil n'est pas atteint3Avancercalculer le terme suivant, puis n = n + 14Renvoyerreturn n : le rang, pas la valeur de u
  1. Initialisern = 0 et u = valeur de u0
  2. Testerwhile : on continue tant que le seuil n'est pas atteint
  3. Avancercalculer le terme suivant, puis n = n + 1
  4. Renvoyerreturn n : le rang, pas la valeur de u
Les étapes d'un algorithme de seuil

On peut retrouver ce résultat par le calcul. Comme un=1000×1,1nu_n = 1000 \times 1{,}1^n, l'inéquation un>2000u_n > 2000 équivaut à 1,1n>21{,}1^n > 2, soit nln⁡(1,1)>ln⁡2n \ln(1{,}1) > \ln 2, donc n>ln⁡2ln⁡1,1≈7,27n > \dfrac{\ln 2}{\ln 1{,}1} \approx 7{,}27. Le plus petit entier convenable est 8. L'algorithme et le calcul se confirment : au bac, on te demande souvent l'un puis l'autre.

Quand l'algorithme s'arrête-t-il ?

Un algorithme avec une boucle while peut ne jamais s'arrêter. C'est le point théorique le plus important de ce chapitre, car il fait le lien avec les limites.

Démonstration · Pourquoi la boucle se termine

Soit SS un réel. L'intervalle ]S ; +∞[]S\,;\,+\infty[ contient tous les termes de la suite à partir d'un certain rang NN, puisque un→+∞u_n \to +\infty. Autrement dit, uN>Su_N > S. Dans l'algorithme, n prend successivement les valeurs 0,1,2,…0, 1, 2, \dots et u vaut unu_n. Dès que n atteint (au plus) NN, la condition u <= S devient fausse et la boucle s'arrête. Comme les rangs sont testés dans l'ordre 0,1,2,…0, 1, 2, \dots, la boucle s'arrête au premier rang où un>Su_n > S : le résultat renvoyé est donc bien le plus petit rang cherché. La croissance assure en plus que tous les rangs suivants vérifient encore un>Su_n > S.

Approcher une limite : l'algorithme de précision

Pour une suite convergente, la question change de forme : on cherche à partir de quel rang les termes sont proches de la limite ℓ\ell à une précision ε\varepsilon donnée. Les ressources de l'IREM consacrées aux suites insistent sur la définition de la limite par des intervalles : à partir d'un certain rang, tous les termes sont dans l'intervalle considéré 3. L'algorithme met cette idée en pratique : on fixe un petit intervalle autour de ℓ\ell et on cherche le rang d'entrée.

Démonstration · Expression explicite et vérification de 28

Étape 1 : expression explicite. Montrons par récurrence que, pour tout entier nn, un=10−5×0,8nu_n = 10 - 5 \times 0{,}8^n.

  • Initialisation : pour n=0n = 0, 10−5×1=5=u010 - 5 \times 1 = 5 = u_0.
  • Hérédité : supposons un=10−5×0,8nu_n = 10 - 5 \times 0{,}8^n. Alors un+1=0,8 (10−5×0,8n)+2=8−5×0,8n+1+2=10−5×0,8n+1u_{n+1} = 0{,}8\,(10 - 5 \times 0{,}8^n) + 2 = 8 - 5 \times 0{,}8^{n+1} + 2 = 10 - 5 \times 0{,}8^{n+1}.
  • Conclusion : la propriété est vraie pour tout nn.

Étape 2 : limite. Comme −1<0,8<1-1 < 0{,}8 < 1, 0,8n→00{,}8^n \to 0, donc un→10u_n \to 10. De plus 10−un=5×0,8n>010 - u_n = 5 \times 0{,}8^n > 0 : la suite reste strictement sous 10, ce qui explique la boucle infinie du paragraphe précédent pour S=12S = 12.

Étape 3 : précision. ∣10−un∣<0,01|10 - u_n| < 0{,}01 équivaut à 5×0,8n<0,015 \times 0{,}8^n < 0{,}01, soit 0,8n<0,0020{,}8^n < 0{,}002, donc nln⁡0,8<ln⁡0,002n \ln 0{,}8 < \ln 0{,}002. Comme ln⁡0,8<0\ln 0{,}8 < 0, on divise en renversant l'inégalité : n>ln⁡0,002ln⁡0,8≈27,85n > \dfrac{\ln 0{,}002}{\ln 0{,}8} \approx 27{,}85. Le plus petit entier est 28, ce que l'algorithme avait renvoyé.

Algorithme, conjecture et démonstration

Un algorithme calcule ; il ne démontre rien. Si terme(1000) renvoie une valeur proche de 10, tu as une bonne raison de conjecturer que la limite est 10, mais ce n'est pas une preuve. La preuve vient des outils du cours : récurrence pour établir une formule ou un encadrement, théorèmes de comparaison pour une limite, théorème de convergence monotone pour une suite croissante majorée.

Erreurs fréquentes et bonnes habitudes

Les documents d'accompagnement recommandent de donner aux élèves de bonnes habitudes de rigueur lors de l'écriture d'algorithmes et de programmes 2. Voici une liste de contrôle à parcourir avant de rendre une copie.

Exercices corrigés

Exercice 1 Calculer un terme avec une boucle

★☆☆Environ 8 min

On considère la suite définie par u0=5u_0 = 5 et, pour tout entier naturel nn, un+1=0,8 un+2u_{n+1} = 0{,}8\,u_n + 2.

  1. Écris une fonction Python terme(n) qui renvoie unu_n.
  2. Calcule à la main la valeur renvoyée par terme(3).
Indice 1

Combien de fois la boucle doit-elle s'exécuter pour passer de u0u_0 à u3u_3 ?

Indice 2

Applique la relation successivement : u1u_1, puis u2u_2, puis u3u_3.

Voir la correction pas à pas
  1. On initialise u à 5 puis on répète n fois l'instruction u = 0.8 * u + 2 dans une boucle for k in range(n), et on renvoie u.

  2. Pour terme(3), la boucle s'exécute trois fois.

  3. Premier tour : u1=0,8×5+2=6u_1 = 0{,}8 \times 5 + 2 = 6.

  4. Deuxième tour : u2=0,8×6+2=6,8u_2 = 0{,}8 \times 6 + 2 = 6{,}8.

  5. Troisième tour : u3=0,8×6,8+2=7,44u_3 = 0{,}8 \times 6{,}8 + 2 = 7{,}44. La fonction renvoie donc 7,44.

Le nombre de tours de boucle est égal à l'indice du terme voulu, puisque le point de départ est u0u_0.

Exercice 2 Trouver un rang seuil

★★☆Environ 12 min

Une somme de 1000 euros est placée à intérêts composés au taux de 10 % par an. On note unu_n le capital après nn années : u0=1000u_0 = 1000 et un+1=1,1 unu_{n+1} = 1{,}1\,u_n.

  1. Écris un algorithme qui renvoie le plus petit entier nn tel que un>2000u_n > 2000.
  2. Détermine ce rang par le calcul, avec la fonction logarithme népérien.
Indice 1

La condition du while est le contraire de l'objectif un>2000u_n > 2000.

Indice 2

Exprime unu_n en fonction de nn : c'est une suite géométrique.

Voir la correction pas à pas
  1. On initialise n = 0 et u = 1000.

  2. On écrit while u <= 2000 : puis, dans la boucle, u = 1.1 * u et n = n + 1.

  3. Après la boucle, on renvoie n.

  4. Par le calcul : un=1000×1,1nu_n = 1000 \times 1{,}1^n, donc un>2000u_n > 2000 équivaut à 1,1n>21{,}1^n > 2.

  5. On applique le logarithme népérien, croissant : nln⁡1,1>ln⁡2n \ln 1{,}1 > \ln 2. Comme ln⁡1,1>0\ln 1{,}1 > 0, n>ln⁡2ln⁡1,1≈7,27n > \dfrac{\ln 2}{\ln 1{,}1} \approx 7{,}27.

  6. Le plus petit entier qui convient est 8 : u7≈1948,72≤2000u_7 \approx 1948{,}72 \leq 2000 et u8≈2143,59>2000u_8 \approx 2143{,}59 > 2000.

Le plus petit rang est n=8n = 8 : au bout de 8 ans, le capital dépasse 2000 euros. L'algorithme et le calcul donnent le même résultat.

Exercice 3 Précision d'approximation d'une limite

★★★Environ 18 min

Soit (un)(u_n) définie par u0=5u_0 = 5 et un+1=0,8 un+2u_{n+1} = 0{,}8\,u_n + 2.

  1. Démontre par récurrence que, pour tout entier nn, un=10−5×0,8nu_n = 10 - 5 \times 0{,}8^n.
  2. Déduis-en la limite de (un)(u_n).
  3. Détermine le plus petit entier nn tel que ∣10−un∣<0,01|10 - u_n| < 0{,}01.
  4. Que se passerait-il si on lançait un algorithme de seuil cherchant un>12u_n > 12 ?
Indice 1

Pour l'hérédité, remplace unu_n par l'expression de l'hypothèse dans la relation de récurrence.

Indice 2

Pour la question 3, utilise ∣10−un∣=5×0,8n|10 - u_n| = 5 \times 0{,}8^n et pense au signe de ln⁡0,8\ln 0{,}8.

Voir la correction pas à pas
  1. Initialisation : 10−5×0,80=5=u010 - 5 \times 0{,}8^0 = 5 = u_0.

  2. Hérédité : si un=10−5×0,8nu_n = 10 - 5 \times 0{,}8^n, alors un+1=0,8 (10−5×0,8n)+2=10−5×0,8n+1u_{n+1} = 0{,}8\,(10 - 5 \times 0{,}8^n) + 2 = 10 - 5 \times 0{,}8^{n+1}. La propriété est donc héréditaire, donc vraie pour tout nn.

  3. Limite : −1<0,8<1-1 < 0{,}8 < 1, donc 0,8n→00{,}8^n \to 0 et un→10u_n \to 10.

  4. Précision : 10−un=5×0,8n>010 - u_n = 5 \times 0{,}8^n > 0, donc l'inéquation est 5×0,8n<0,015 \times 0{,}8^n < 0{,}01, soit 0,8n<0,0020{,}8^n < 0{,}002.

  5. On applique ln⁡\ln : nln⁡0,8<ln⁡0,002n \ln 0{,}8 < \ln 0{,}002. Comme ln⁡0,8<0\ln 0{,}8 < 0, n>ln⁡0,002ln⁡0,8≈27,85n > \dfrac{\ln 0{,}002}{\ln 0{,}8} \approx 27{,}85. Le plus petit entier est 28.

  6. Pour le seuil 12 : un<10<12u_n < 10 < 12 pour tout nn, donc la condition du while reste vraie indéfiniment et l'algorithme ne s'arrête jamais.

Le rang 28 est le plus petit pour lequel unu_n est à moins de 0,01 de 10. Un seuil supérieur à la limite d'une suite croissante convergente provoque une boucle infinie.

Quiz

8 questions · correction immédiate · ton score reste sur ton appareil.

  1. Quelle phrase décrit le mieux un algorithme ?

  2. Au IXe siècle, quel mathématicien perse systématise des algorithmes et donne son nom au mot « algorithme » ?

  3. On exécute : u = 1 puis quatre fois u = 2 * u + 1. Quelle est la valeur finale de u ?

  4. On veut le plus petit nn tel que un>Su_n > S pour une suite croissante de limite +∞+\infty. Quelle condition faut-il écrire dans la boucle while ?

  5. Pour un=1000×1,1nu_n = 1000 \times 1{,}1^n, quel est le plus petit entier nn tel que un>1500u_n > 1500 ?

  6. La suite un=10−5×0,8nu_n = 10 - 5 \times 0{,}8^n est croissante et converge vers 10. Un algorithme cherche le premier rang où un>12u_n > 12. L'algorithme s'arrête.

  7. Quelles situations provoquent une boucle infinie ou un résultat faux dans un algorithme de seuil ?

    Plusieurs réponses possibles.

  8. Un algorithme de seuil se termine par return u. Que renvoie-t-il, si l'énoncé demande le rang ?

Les questions qu'on se pose

Quelle différence entre une boucle for et une boucle while pour les suites ?

Une boucle for s'utilise quand tu connais le nombre de répétitions à l'avance, par exemple pour calculer u20u_{20}. Une boucle while s'utilise quand tu ne connais pas ce nombre : tu répètes jusqu'à ce qu'une condition change, comme dans la recherche d'un seuil. Dans le doute, demande-toi : « Est-ce que l'énoncé me donne le rang ou me demande de le trouver ? »

Pourquoi la condition du while est-elle l'inverse de ce que je cherche ?

Parce que le while signifie « tant que je dois continuer ». Si tu cherches le premier rang où un>Su_n > S, tu dois continuer tant que un≤Su_n \leq S. Écrire la condition de l'objectif, c'est empêcher la boucle de démarrer.

Mon algorithme ne s'arrête pas : que faire ?

Vérifie dans l'ordre : (1) la variable qui sert au test est bien modifiée dans la boucle ; (2) la suite est capable de franchir le seuil, ce qui est faux si le seuil dépasse sa limite ; (3) le sens de l'inégalité est le bon. Sur papier, déroule trois ou quatre tours avec un tableau n / u.

Est-ce qu'un algorithme prouve qu'une suite converge ?

Non. Il calcule un nombre fini de termes et te permet de conjecturer. La preuve repose sur le cours : récurrence pour une expression ou un encadrement, théorèmes de comparaison pour une limite, théorème de convergence monotone pour une suite croissante majorée. Au bac, la conjecture par programme est souvent suivie d'une démonstration.

Faut-il savoir écrire du Python de tête au bac ?

Le plus souvent, on te donne un programme à compléter ou à interpréter. Il faut maîtriser l'affectation, la boucle for, la boucle while, les opérateurs de comparaison et le return. Les documents d'accompagnement évoquent aussi la description d'algorithmes en langage naturel ou avec un tableur 2 : sois à l'aise avec ces formes.

Sources

  1. Document Éduscol — Ressources d'accompagnement (Terminale), Éduscol. Consulté le 6 novembre 2026.
  2. Diaporama algorithmique — Lycée, Académie de Strasbourg. Consulté le 6 novembre 2026.
  3. Ressources IREM — Suites et algorithmes, IREM de Limoges. Consulté le 6 novembre 2026.
  4. Algorithme, Wikipédia. Consulté le 6 novembre 2026.
  5. Algorithmique, Wikipédia. Consulté le 6 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page