Introduction
Ce dernier chapitre prépare directement aux questions d’algorithmique du bac : dire ce que renvoie un programme, le compléter, le corriger et interpréter son résultat dans le contexte de l’exercice.
Une méthode en quatre étapes (valeurs initiales, type de boucle, ordre des lignes, valeur renvoyée) est appliquée à trois exemples résolus : un programme « mystère », un programme à compléter d’après le Bac Métropole 2025 et un programme qui contient une erreur à trouver.
Le chapitre se termine par cinq exercices de synthèse de difficulté croissante, qui réutilisent tout ce qui a été vu dans les chapitres précédents : lecture d’un programme, programme TI-82 à compléter, dichotomie, erreur à corriger et programme complet à écrire en Python.
Chapitre précédent : chapitre 6 – la méthode de dichotomie. Retrouvez tous les chapitres dans la rubrique Algorithmique et Python.
Cours proposé par Pr. Elakili sur Mission Maths 360.
Méthode – les questions d’algorithmique au bac
Au bac, on demande presque toujours de dire ce que renvoie un programme, de le compléter, ou d’interpréter son résultat dans le contexte. Le programme est écrit en Python, mais la démarche est la même en langage naturel ou sur la TI :
- Repérer les valeurs initiales :
, le compteur (
, ou l’année de départ), la somme (
). - Repérer la boucle : Pour (nombre de tours connu) ou Tant que (seuil) ; la condition d’un Tant que est le contraire de ce que l’on cherche.
- Dans la boucle : terme suivant, puis compteur (ou somme) ; attention à l’ordre des lignes.
- Repérer ce qui est renvoyé (
,
,
, une année…) et interpréter dans le contexte. Faire un tableau d’exécution en cas de doute.
1. Trois exemples résolus
Exemple résolu 1 – Que renvoie ce programme ? Que représente le résultat ?
Algorithme
u ← 50 ; n ← 0
Tant que u > 1
u ← u/2
n ← n + 1
Fin Tant que
Afficher n
Python
def mystere():
u = 50
n = 0
while u > 1:
u = u / 2
n = n + 1
return n
TI-82
:50→U
:0→N
:TantQue U>1
:U/2→U
:N+1→N
:Fin
:Disp N
Ce que calcule la boucle : la suite
(on divise par
à chaque tour). Valeurs :
;
;
;
;
;
;
.
Réponse : la boucle s’arrête dès que
, au 6e tour : le programme renvoie
, le plus petit entier
tel que
.
Exemple résolu 2 – Compléter un programme
D’après Bac Métropole, 17 juin 2025, sujet 1, exercice 4.
La superficie (en ha) recouverte par la posidonie au 1er juillet 2024 +
vérifie
et
; la suite est croissante et converge vers
. Compléter le programme pour qu’il renvoie l’année à partir de laquelle la superficie dépasse
ha.
Énoncé
def seuil():
n = 0
u = ....
while .........:
u = ..............
n = n + 1
return ........
Corrigé Python
def seuil():
n = 0
u = 1
while u <= 14:
u = -0.02*u**2 + 1.3*u
n = n + 1
return 2024 + n
Version TI-82
:0→N
:1→U
:TantQue U⩽14
:-0.02U^2+1.3U→U
:N+1→N
:Fin
:Disp 2024+N
Résultat : 2042 (
et
). La boucle s’arrête car
.
Exemple résolu 3 – Trouver l’erreur
Ce programme doit renvoyer
.
def somme(n):
for k in range(1, n+1):
S = 0
S = S + k
return S
Test : somme(5) renvoie 5 au lieu de 15.
Erreur : S = 0 est dans la boucle : la somme est remise à zéro à chaque tour, et à la fin S ne contient que le dernier k.
Correction : placer S = 0 avant la boucle (TI : 0→S avant Pour(K,1,N)).
2. Exercices de synthèse
Exercice 1 · Lire un programme ★★★★
def f(n):
u = 1
for k in range(n):
u = u + k
return u
- Que renvoie
f(4)?f(10)? (faire un tableau d’exécution) - Exprimer
à l’aide d’une somme, puis en fonction de
. - Écrire la version en langage naturel et la version TI-82.
Corrigé
1. f(4)
;
⇝
et ![]()
2.
.
3. TI :
:Prompt N
:1→U
:Pour(K,0,N-1)
:U+K→U
:Fin
:Disp U
Exercice 2 · Compléter un programme TI-82 ★★★★
:0→N
:100→U
:TantQue ..........
:..........→U
:N+1→N
:Fin
:Disp N
Un capital de 100 € perd 10 % de sa valeur chaque année.
- Compléter le programme pour qu’il affiche le nombre d’années au bout duquel le capital devient inférieur à 1 €.
- Que s’affiche-t-il ? Justifier que la boucle s’arrête.
- Traduire ce programme en Python.
Corrigé
1. TantQue U⩾1 et 0.9U→U.
2. La suite géométrique de raison
tend vers
, donc la boucle s’arrête.
⇝ il s’affiche 44
3.
def annees():
n = 0
u = 100
while u >= 1:
u = 0.9*u
n = n + 1
return n
Exercice 3 · Compléter une dichotomie ★★★★
def racine():
a, b = 1, 2
while b - a > ....:
m = (a + b) / 2
if m**2 - 2 < 0:
......
else:
......
return a, b
- Justifier que l’équation
admet une unique solution sur
. - Compléter le script pour qu’il renvoie un encadrement de
d’amplitude au plus
. - Que renvoie-t-il ? Combien de tours fait la boucle ?
- Écrire la version TI-82 (avec
Y1=X^2-2).
Corrigé
1.
est continue, strictement croissante sur
, et
.
2. Compléter par 0.01, a = m, b = m.
3. 7 tours ; le script renvoie (1.4140625, 1.421875) :
⇝ ![]()
4.
:1→A
:2→B
:TantQue B-A>0.01
:(A+B)/2→M
:Si Y1(M)<0
:Alors
:M→A
:Sinon
:M→B
:Fin
:Fin
:Disp A,B
Exercice 4 · Trouver et corriger l’erreur ★★★★
def seuil():
u = 1
n = 0
while u > 100:
u = 1.5*u
n = n + 1
return n
Ce programme doit renvoyer le plus petit entier
tel que
.
- Que renvoie-t-il ? Pourquoi ?
- Corriger le programme, puis donner le résultat attendu.
- Écrire la version corrigée pour la TI-82.
Corrigé
1. Il renvoie
: la condition est inversée (
n’est pas
, on n’entre jamais dans la boucle).
2. Correction : while u <= 100: ; il renvoie alors 12.
⇝ ![]()
3. TI : TantQue U⩽100.
Exercice 5 · Écrire un programme complet ★★★★
Soit
et
. On admet que
est croissante et converge vers
.
- Calculer
,
à la calculatrice (mode Suite : u(n)=√(u(n-1)+6), avec √ : 2nde x²). - Écrire, en langage naturel, en Python (
from math import sqrt) et sur la TI-82, un programme qui renvoie le plus petit
tel que
. Justifier qu’il s’arrête, et donner le résultat.
Corrigé
1.
,
.
2. Boucle Tant que
, corps
et
; elle s’arrête car
.
from math import sqrt
def rang():
u = 0
n = 0
while 3 - u >= 10**(-4):
u = sqrt(u + 6)
n = n + 1
return n
⇝
(
)
Télécharger le chapitre en PDF
Pour réviser sur papier, téléchargez le chapitre complet au format PDF (avec les réponses des exercices).
