Mathématiques · Première technologiqueÉpreuve anticipée de mathématiques
Instructions conditionnelles et boucles : exercices de 1re techno
Publié le 11 novembre 2026 · Mis à jour le 11 novembre 2026 · Signaler une erreur
L'essentiel
- Une instruction conditionnelle choisit quel bloc exécuter selon qu'une condition est vraie ou fausse.1
- Une boucle répète un bloc ; la boucle
forest bornée, la bouclewhiledépend d'une condition d'arrêt.1 - Le bloc d'une boucle ou d'une condition se repère à son indentation.2
- Une condition d'arrêt qui n'est jamais atteinte donne une boucle infinie.1
- Pour tout exercice : construis un tableau de suivi des variables, ligne après ligne.
Comment utiliser ces exercices
Ces exercices t'entraînent à lire un programme Python et à prévoir ce qu'il calcule, sans l'ordinateur. C'est exactement le geste attendu en algorithmique : on te donne un programme, tu dis ce qu'il affiche ou ce qu'il valait au départ.
Cherche d'abord seul(e), avec un brouillon. Ouvre les indices un par un, puis la correction seulement pour vérifier ta démarche. Les exercices sont classés du niveau 1 (suivi simple) au niveau 3 (boucles imbriquées, boucle infinie).
Les exercices
Exercice 1 Une condition simple
On exécute le programme suivant :
x = 7
if x > 5:
y = x * 2
else:
y = x + 1
Quelle est la valeur de y à la fin ?
Indice 1
Commence par tester la condition x > 5 avec la valeur de x.
Indice 2
Un seul des deux blocs est exécuté, jamais les deux.
Voir la correction pas à pas
Au départ,
xvaut 7.On teste la condition : 7 > 5 est vrai.
Le bloc après
ifs'exécute :y = 7 * 2, doncy = 14.Le bloc
elseest ignoré : on ne calcule pasx + 1.
À la fin, . Quand la condition est vraie, seul le bloc du if s'exécute.
Exercice 2 Somme avec une boucle for
s = 0
for i in range(1, 5):
s = s + i
Quelle est la valeur de s après la boucle ?
Indice 1
Écris les valeurs prises par i : la borne 5 n'est pas atteinte.
Indice 2
Construis un tableau avec les colonnes i et s.
Voir la correction pas à pas
Avant la boucle,
s = 0.La variable
iprend successivement les valeurs 1, 2, 3 et 4.Tour 1 :
s = 0 + 1 = 1. Tour 2 :s = 1 + 2 = 3.Tour 3 :
s = 3 + 3 = 6. Tour 4 :s = 6 + 4 = 10.La boucle est terminée,
svaut 10.
On obtient . Attention : avec range(1, 5), le nombre 5 n'est pas ajouté.
Exercice 3 Un tarif selon l'âge
Un musée applique ce tarif, en euros :
def tarif(age):
if age < 12:
return 5
elif age < 18:
return 8
else:
return 12
Un groupe est composé de trois personnes âgées de 8 ans, 15 ans et 30 ans. Quel est le prix total payé par le groupe, en euros ?
Indice 1
Traite les personnes une par une, en testant les conditions dans l'ordre.
Indice 2
Dès qu'une condition est vraie, les suivantes ne sont plus examinées.
Voir la correction pas à pas
Pour 8 ans :
8 < 12est vrai, le tarif est 5 €.Pour 15 ans :
15 < 12est faux, puis15 < 18est vrai, le tarif est 8 €.Pour 30 ans : les deux premières conditions sont fausses, c'est le
else: 12 €.Total : euros.
Le groupe paie 25 €. Une suite if / elif / else choisit un seul bloc : le premier dont la condition est vraie.
Exercice 4 Un capital qui augmente
Un capital de 1 000 € augmente de 10 % par an. On exécute :
c = 1000
n = 0
while c < 1200:
c = c * 1.1
n = n + 1
Quelle est la valeur de c, en euros, à la sortie de la boucle ?
Indice 1
Augmenter de 10 % revient à multiplier par 1,1.
Indice 2
Teste la condition c < 1200 avant chaque tour, y compris le premier.
Voir la correction pas à pas
Départ :
c = 1000,n = 0. La condition 1000 < 1200 est vraie.Tour 1 :
c = 1000 × 1,1 = 1100,n = 1. Comme 1100 < 1200, on continue.Tour 2 :
c = 1100 × 1,1 = 1210,n = 2.Test : 1210 < 1200 est faux, la boucle s'arrête.
À la sortie,
cvaut 1210 euros (etnvaut 2).
Le capital final est de 1 210 €, atteint au bout de 2 ans. Une boucle while teste sa condition avant chaque tour : elle s'arrête dès que la condition devient fausse.
Exercice 5 Compter des multiples
n = 0
for i in range(1, 21):
if i % 3 == 0:
n = n + 1
Quelle est la valeur de n à la fin ? Que représente-t-elle ?
Indice 1
La condition i % 3 == 0 est vraie quand i est un multiple de 3.
Indice 2
Liste les multiples de 3 compris entre 1 et 20.
Voir la correction pas à pas
La variable
iparcourt les entiers de 1 à 20.La condition est vraie pour les multiples de 3 : 3, 6, 9, 12, 15 et 18.
À chaque fois,
naugmente de 1 ; pour les autres valeurs dei, rien ne se passe.On compte 6 multiples, donc
n = 6.
On obtient : le programme compte les multiples de 3 entre 1 et 20. Vérification rapide : vaut un peu plus de 6, donc il y a 6 multiples.
Exercice 6 Sauter des tours avec continue
s = 0
for i in range(1, 11):
if i % 2 == 0:
continue
s = s + i
Quelle est la valeur de s à la fin ?
Indice 1
Quand i est pair, que devient la ligne s = s + i ?
Indice 2
Quels sont les entiers impairs de 1 à 10 ?
Voir la correction pas à pas
Pour un
ipair, la condition est vraie :continuepasse tout de suite au tour suivant.2La ligne
s = s + in'est donc exécutée que pour lesiimpairs.Les valeurs ajoutées sont 1, 3, 5, 7 et 9.
Somme : .
On obtient : le programme additionne les entiers impairs de 1 à 9. Sans le continue, on aurait ajouté tous les entiers.
Exercice 7 La boucle qui ne s'arrête pas
Léa écrit ce programme pour s'arrêter quand n vaut 5 :
n = 0
while n != 5:
n = n + 2
- Écris les premières valeurs de
n. - Explique pourquoi le programme ne se termine jamais.
- Propose une correction de la condition.
Indice 1
Regarde si 5 peut être atteint en partant de 0 et en ajoutant 2 à chaque fois.
Indice 2
Une condition d'arrêt doit pouvoir devenir fausse en un nombre fini de tours.
Voir la correction pas à pas
Valeurs successives de
n: 0, 2, 4, 6, 8, 10, et ainsi de suite.Ces valeurs sont toutes paires :
nsaute par-dessus 5 sans jamais l'égaler.La condition
n != 5reste donc toujours vraie : c'est une boucle infinie, car la condition d'arrêt n'est jamais atteinte.1Correction possible :
while n < 5:. Les valeurs 0, 2, 4 passent le test, puisnvaut 6 et la boucle s'arrête.
Le défaut vient de la condition : tester une égalité est fragile quand les pas ne tombent pas pile sur la valeur visée. Une inégalité comme n < 5 est plus sûre.
Exercice 8 Gagner avec deux dés
Un jeu de dés teste la somme de deux dés à six faces : le joueur gagne si cette somme vaut 7 ou 11.2 Voici un programme qui compte les couples gagnants :
gagnants = 0
for d1 in range(1, 7):
for d2 in range(1, 7):
s = d1 + d2
if s == 7 or s == 11:
gagnants = gagnants + 1
Quelle est la valeur de gagnants à la fin ?
Indice 1
Il y a deux boucles imbriquées : combien de couples (d1, d2) sont testés ?
Indice 2
Pour chaque valeur de d1, combien de valeurs de d2 donnent une somme de 7 ?
Voir la correction pas à pas
Les deux boucles testent les 36 couples possibles (d1, d2).
Somme égale à 7 : pour chaque d1 de 1 à 6, il existe exactement un d2 convenable (7 − d1, compris entre 1 et 6). Cela fait 6 couples.
Somme égale à 11 : seuls (5, 6) et (6, 5) conviennent. Cela fait 2 couples.
Aucun couple n'a une somme égale à la fois à 7 et à 11, donc on additionne : .
La variable gagnants vaut 8. Les boucles imbriquées permettent de parcourir tous les cas possibles, et la condition or regroupe deux cas gagnants.
Exercice 9 Boucles imbriquées et condition
s = 0
for i in range(1, 4):
for j in range(1, 4):
if i < j:
s = s + i * j
Quelle est la valeur de s à la fin ?
Indice 1
Écris tous les couples (i, j) avec i et j entre 1 et 3 : il y en a neuf.
Indice 2
Ne garde que ceux où i < j.
Voir la correction pas à pas
Les couples testés vont de (1, 1) à (3, 3).
Ceux qui vérifient
i < jsont (1, 2), (1, 3) et (2, 3).Contributions à
s: , et .Total : .
On obtient . Avec des boucles imbriquées, la boucle intérieure effectue tous ses tours pour chaque tour de la boucle extérieure.
Les questions qu'on se pose
Comment savoir si je dois utiliser for ou while ?
Si tu sais à l'avance combien de fois répéter (parcourir les entiers de 1 à 20, par exemple), utilise for : c'est une boucle bornée.1 Si le nombre de tours dépend d'un résultat en cours de calcul (atteindre un capital, par exemple), utilise while avec une condition d'arrêt.
Pourquoi mon programme tourne-t-il sans jamais s'arrêter ?
Dans une boucle while, la condition d'arrêt n'est probablement jamais atteinte : la boucle est alors infinie.1 Vérifie que la variable testée change bien à chaque tour, et préfère une inégalité (<, >) à un test d'égalité qui peut être sauté.
À quoi sert l'indentation en Python ?
Elle indique quelles lignes appartiennent au bloc d'une boucle ou d'une condition.2 Une ligne mal décalée change le moment où elle est exécutée, donc le résultat du programme.
Sources
- Algorithmique et programmation - Document officiel Éduscol, Éduscol. Consulté le 11 novembre 2026.
- Repères pour l'algorithmique et programmation, Académie de Lille. Consulté le 11 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.