Aller au contenu

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 for est bornée, la boucle while dé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

★☆☆Environ 4 min

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
  1. Au départ, x vaut 7.

  2. On teste la condition : 7 > 5 est vrai.

  3. Le bloc après if s'exécute : y = 7 * 2, donc y = 14.

  4. Le bloc else est ignoré : on ne calcule pas x + 1.

À la fin, y=14y = 14. Quand la condition est vraie, seul le bloc du if s'exécute.

Exercice 2 Somme avec une boucle for

★☆☆Environ 5 min

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
  1. Avant la boucle, s = 0.

  2. La variable i prend successivement les valeurs 1, 2, 3 et 4.

  3. Tour 1 : s = 0 + 1 = 1. Tour 2 : s = 1 + 2 = 3.

  4. Tour 3 : s = 3 + 3 = 6. Tour 4 : s = 6 + 4 = 10.

  5. La boucle est terminée, s vaut 10.

On obtient s=1+2+3+4=10s = 1 + 2 + 3 + 4 = 10. Attention : avec range(1, 5), le nombre 5 n'est pas ajouté.

Exercice 3 Un tarif selon l'âge

★☆☆Environ 6 min

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
  1. Pour 8 ans : 8 < 12 est vrai, le tarif est 5 €.

  2. Pour 15 ans : 15 < 12 est faux, puis 15 < 18 est vrai, le tarif est 8 €.

  3. Pour 30 ans : les deux premières conditions sont fausses, c'est le else : 12 €.

  4. Total : 5+8+12=255 + 8 + 12 = 25 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

★★☆Environ 8 min

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
  1. Départ : c = 1000, n = 0. La condition 1000 < 1200 est vraie.

  2. Tour 1 : c = 1000 × 1,1 = 1100, n = 1. Comme 1100 < 1200, on continue.

  3. Tour 2 : c = 1100 × 1,1 = 1210, n = 2.

  4. Test : 1210 < 1200 est faux, la boucle s'arrête.

  5. À la sortie, c vaut 1210 euros (et n vaut 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

★★☆Environ 8 min

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
  1. La variable i parcourt les entiers de 1 à 20.

  2. La condition est vraie pour les multiples de 3 : 3, 6, 9, 12, 15 et 18.

  3. À chaque fois, n augmente de 1 ; pour les autres valeurs de i, rien ne se passe.

  4. On compte 6 multiples, donc n = 6.

On obtient n=6n = 6 : le programme compte les multiples de 3 entre 1 et 20. Vérification rapide : 20÷320 \div 3 vaut un peu plus de 6, donc il y a 6 multiples.

Exercice 6 Sauter des tours avec continue

★★☆Environ 8 min

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
  1. Pour un i pair, la condition est vraie : continue passe tout de suite au tour suivant.2

  2. La ligne s = s + i n'est donc exécutée que pour les i impairs.

  3. Les valeurs ajoutées sont 1, 3, 5, 7 et 9.

  4. Somme : 1+3+5+7+9=251 + 3 + 5 + 7 + 9 = 25.

On obtient s=25s = 25 : 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

★★★Environ 10 min

Léa écrit ce programme pour s'arrêter quand n vaut 5 :

n = 0
while n != 5:
    n = n + 2
  1. Écris les premières valeurs de n.
  2. Explique pourquoi le programme ne se termine jamais.
  3. 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
  1. Valeurs successives de n : 0, 2, 4, 6, 8, 10, et ainsi de suite.

  2. Ces valeurs sont toutes paires : n saute par-dessus 5 sans jamais l'égaler.

  3. La condition n != 5 reste donc toujours vraie : c'est une boucle infinie, car la condition d'arrêt n'est jamais atteinte.1

  4. Correction possible : while n < 5:. Les valeurs 0, 2, 4 passent le test, puis n vaut 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

★★★Environ 10 min

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
  1. Les deux boucles testent les 36 couples possibles (d1, d2).

  2. 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.

  3. Somme égale à 11 : seuls (5, 6) et (6, 5) conviennent. Cela fait 2 couples.

  4. Aucun couple n'a une somme égale à la fois à 7 et à 11, donc on additionne : 6+2=86 + 2 = 8.

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

★★★Environ 12 min

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
  1. Les couples testés vont de (1, 1) à (3, 3).

  2. Ceux qui vérifient i < j sont (1, 2), (1, 3) et (2, 3).

  3. Contributions à s : 1×2=21 \times 2 = 2, 1×3=31 \times 3 = 3 et 2×3=62 \times 3 = 6.

  4. Total : 2+3+6=112 + 3 + 6 = 11.

On obtient s=11s = 11. 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

  1. Algorithmique et programmation - Document officiel Éduscol, Éduscol. Consulté le 11 novembre 2026.
  2. 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2
  • CM1
  • 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