Bac pro Cybersécurité, informatique et réseaux, électronique (CIEL) · Bac proBac pro
La programmation : exercices corrigés pour le Bac pro CIEL
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Programmer, c'est concevoir, écrire, tester et maintenir des programmes avec un langage de programmation.4
- Un langage est traduit pour la machine par un compilateur (traduction avant l'exécution) ou par un interprète (traduction à la volée).5
- Pour une boucle, suis les valeurs des variables à la main dans un tableau de suivi : c'est la méthode la plus sûre.
- Une boucle while doit toujours modifier ce qui sert à sa condition, sinon elle ne s'arrête jamais.
- Avant de coder un calcul, pose-le sur le papier avec ses unités, puis compare avec le résultat du programme.
Comment utiliser ces exercices
Cette page te propose des exercices de difficulté croissante sur la programmation, au niveau du Bac pro CIEL. Tu y retrouves ce qui sert partout en cybersécurité, en réseaux et en électronique : lire un programme, prévoir ce qu'il affiche, le corriger, puis en écrire un petit morceau. Tu peux les faire sur papier ou dans un éditeur Python.
Rappels utiles avant de commencer
Un programme typique contient des boucles while ou for, qui répètent un bloc de code tant qu'une condition est vraie ou un nombre de fois donné.4 Il peut aussi utiliser des types de données personnalisés ou des exceptions pour traiter les erreurs.4 Les langages ont beaucoup évolué pour rendre l'écriture plus simple et les programmes plus fiables.4
Les exercices
Exercice 1 Compilateur ou interprète ?
Deux élèves de ta classe travaillent sur le même projet de contrôle d'une carte électronique.
- Léa écrit son code, lance une première étape qui produit un fichier exécutable, puis exécute ce fichier.
- Karim lance directement son script et le programme est traduit instruction après instruction pendant l'exécution.
- Qui utilise un compilateur ? Qui utilise un interprète ?
- Karim modifie une ligne de son script. Que doit-il faire pour tester la modification ?
- Donne un avantage qu'apporte un langage de haut niveau au programmeur.
Indice 1
Un compilateur traduit le code source en un code cible avant son exécution.
Indice 2
Un interprète traduit « à la volée », donc au moment où le programme tourne.
Voir la correction pas à pas
Léa passe par une étape de traduction qui produit un code cible exécutable ensuite : c'est le rôle d'un compilateur.5
Karim fait traduire son code pendant l'exécution, à la volée : il utilise un interprète.5
Pour tester sa modification, Karim relance simplement son script : l'interprète retraduit le code modifié. Léa, elle, devrait relancer la traduction avant d'exécuter.
Avantage d'un langage de haut niveau : le programmeur n'a pas à tenir compte des particularités du matériel et se concentre sur des problèmes plus avancés.5
Retiens la différence de moment : le compilateur traduit avant, l'interprète traduit pendant l'exécution.5
Exercice 2 Somme des entiers avec une boucle for
On considère le programme suivant :
s = 0
for i in range(1, 6):
s = s + i
print(s)
Quelle valeur le programme affiche-t-il ?
Indice 1
Écris la liste des valeurs prises par i : la borne de fin de range est exclue.
Indice 2
Construis un tableau de suivi avec les colonnes i, s avant, s après.
Voir la correction pas à pas
range(1, 6)produit les valeurs 1, 2, 3, 4, 5. La valeur 6 n'est pas atteinte.Au départ, s = 0.
Passage i = 1 : s = 0 + 1 = 1.
Passage i = 2 : s = 1 + 2 = 3. Passage i = 3 : s = 3 + 3 = 6.
Passage i = 4 : s = 6 + 4 = 10. Passage i = 5 : s = 10 + 5 = 15.
Après la boucle,
print(s)affiche 15.
Le programme affiche 15. La boucle for répète le bloc un nombre de fois connu à l'avance.4
Exercice 3 Calculer un prix TTC
Un programme gère les licences logicielles d'un petit réseau.
prix_ht = 80
taux = 0.20
prix_ttc = prix_ht * (1 + taux)
print(prix_ttc)
Le prix hors taxes est exprimé en euros. Quel prix TTC le programme affiche-t-il, en euros ?
Indice 1
Remplace les variables par leurs valeurs dans la formule.
Indice 2
1 + 0,20 se calcule d'abord, à l'intérieur des parenthèses.
Voir la correction pas à pas
Les variables valent prix_ht = 80 et taux = 0,20.
Les parenthèses sont prioritaires : 1 + 0,20 = 1,20.
On multiplie : 80 × 1,20 = 96.
Le programme affiche 96 (ou 96.0 en Python, car
tauxest un nombre décimal), soit 96 €.
Le prix TTC est de 96 €. Une variable garde une valeur nommée : si le taux change, une seule ligne est à modifier.
Exercice 4 Doublements avec une boucle while
Voici un programme :
n = 3
while n < 100:
n = n * 2
print(n)
- Complète un tableau de suivi de la variable
n. - Quelle valeur le programme affiche-t-il ?
Indice 1
La condition n < 100 est testée avant chaque passage.
Indice 2
La boucle s'arrête dès que n atteint ou dépasse 100, et la dernière valeur calculée est conservée.
Voir la correction pas à pas
Départ : n = 3, et 3 < 100 est vrai : on entre dans la boucle.
Premier passage : n = 6. Test : 6 < 100, vrai.
Deuxième passage : n = 12. Troisième : n = 24. Quatrième : n = 48. Chaque fois, la condition reste vraie.
Cinquième passage : n = 96. Test : 96 < 100, encore vrai, donc la boucle continue.
Sixième passage : n = 192. Test : 192 < 100 est faux, la boucle s'arrête.
print(n)affiche 192. On a bien 3 × 2⁶ = 192.
Le programme affiche 192. Une boucle while répète tant que la condition est vraie.4 Remarque que la valeur finale dépasse le seuil : le test se fait avant le doublement, pas après.
Exercice 5 Combien de temps pour tester tous les codes ?
Dans un cours de cybersécurité, on étudie une attaque par essais successifs sur un code d'accès composé de 6 chiffres (chaque chiffre va de 0 à 9). Un programme de test essaie tous les codes de 000000 à 999999 avec une boucle.
for code in range(10**6):
tester(code)
Le programme réalise 1 000 essais par seconde. Combien de secondes faut-il, au maximum, pour parcourir tous les codes ?
Indice 1
Compte d'abord combien de codes différents existent : 10 choix pour chacun des 6 chiffres.
Indice 2
Temps = nombre d'essais ÷ nombre d'essais par seconde.
Voir la correction pas à pas
Chaque chiffre a 10 valeurs possibles et il y a 6 chiffres : 10⁶ = 1 000 000 de codes.
La boucle
range(10**6)passe bien par 1 000 000 de valeurs, de 0 à 999 999.À 1 000 essais par seconde, le temps maximal est 1 000 000 ÷ 1 000 = 1 000 secondes.
On convertit pour se représenter la durée : 1 000 s = 16 min 40 s, car 16 × 60 + 40 = 1 000.
Il faut au plus 1 000 secondes. C'est pourquoi un code court est faible : un programme parcourt très vite un espace de quelques millions de possibilités. Allonger le code multiplie ce temps.
Exercice 6 Écrire une fonction moyenne
On veut une fonction qui calcule la moyenne d'une liste de notes.
def moyenne(notes):
total = 0
for n in notes:
total = total + n
return total / len(notes)
- Que renvoie
moyenne([12, 15, 9, 16])? - Que se passe-t-il avec
moyenne([])? Propose une correction.
Indice 1
len(notes) donne le nombre d'éléments de la liste.
Indice 2
Que vaut la division par zéro en Python ?
Voir la correction pas à pas
La liste [12, 15, 9, 16] contient 4 notes :
len(notes)vaut 4.La boucle ajoute chaque note : 0 + 12 = 12, puis 12 + 15 = 27, puis 27 + 9 = 36, puis 36 + 16 = 52.
La fonction renvoie 52 / 4 = 13.0, soit une moyenne de 13 sur 20.
Avec une liste vide,
len(notes)vaut 0 : la division 0 / 0 provoque une erreur (ZeroDivisionError) et le programme s'arrête.Correction : tester d'abord la liste avec
if len(notes) == 0:puis renvoyerNoneou un message, avant de faire la division.
La moyenne vaut 13. Un bon programme prévoit aussi les cas d'erreur : le traitement des erreurs est une partie normale de l'écriture d'un programme.4
Exercice 7 Trouver l'erreur : la boucle qui ne finit jamais
Un élève veut afficher les entiers de 0 à 4. Son programme ne s'arrête jamais.
i = 0
while i < 5:
print(i)
- Explique pourquoi la boucle est infinie.
- Corrige le programme de deux façons : avec
while, puis avecfor. - Que doit-on toujours vérifier dans une boucle
while?
Indice 1
Regarde si la variable i change dans le corps de la boucle.
Indice 2
Pour la version for, range(5) convient.
Voir la correction pas à pas
Au départ i = 0. La condition
i < 5est vraie.Le corps de la boucle affiche i mais ne le modifie jamais : i reste à 0, la condition reste vraie à chaque test et la boucle ne s'arrête pas.
Correction avec
while: ajouteri = i + 1dans le corps de la boucle, après leprint. On obtient 0, 1, 2, 3, 4, puis i vaut 5 et le test est faux.Correction avec
for:for i in range(5): print(i). Le compteur est géré automatiquement, il n'y a pas de risque d'oubli.Vérification à faire dans un
while: la condition finit-elle par devenir fausse ? Autrement dit, quelque chose dans le corps modifie-t-il les variables du test ?
L'erreur est un oubli d'incrémentation. Quand on connaît le nombre de répétitions, for est plus sûr ; while convient quand on répète jusqu'à ce qu'une condition change.4
Exercice 8 Courant dans un montage électronique
Pour un projet d'électronique, tu écris un programme qui calcule l'intensité du courant dans un conducteur ohmique. On donne la relation , avec en ampères, en volts et en ohms.
U = 12 # volts
R = 400 # ohms
I = U / R # ampères
print(I * 1000)
- Que représente la valeur affichée par
print(I * 1000)? - Quelle valeur est affichée ?
- Le programme doit maintenant tester plusieurs résistances. Écris une boucle qui affiche l'intensité en mA pour R = 200, 400 et 600 ohms.
Indice 1
Multiplier des ampères par 1 000 donne des milliampères.
Indice 2
Pour parcourir une liste de valeurs, for R in [200, 400, 600]: convient.
Voir la correction pas à pas
Le calcul
I = U / Rdonne l'intensité en ampères : 12 / 400 = 0,03 A.Multiplier par 1 000 convertit les ampères en milliampères (mA). La valeur affichée est donc l'intensité en mA.
0,03 × 1 000 = 30 : le programme affiche 30 (ou 30.0 en Python), soit 30 mA.
Pour la boucle :
for R in [200, 400, 600]:puis, dans le corps,print(12 / R * 1000).Résultats attendus : 60 mA pour 200 Ω, 30 mA pour 400 Ω, 20 mA pour 600 Ω. Plus la résistance augmente, plus l'intensité diminue.
L'intensité vaut 30 mA pour R = 400 Ω. Écrire le calcul dans une boucle évite de recopier le même code trois fois, et le commentaire sur chaque ligne rend le programme lisible par l'équipe qui le relira, ce qui compte autant que la machine.5
Les questions qu'on se pose
Faut-il connaître Python par cœur pour réussir ces exercices ?
Non. Il faut surtout savoir suivre l'exécution d'un programme : lire une affectation, une condition, une boucle, et noter la valeur des variables à chaque étape. Python est un bon support, mais le raisonnement vaut pour d'autres langages, car tous servent à décrire des données et des algorithmes.5
Comment savoir si je dois utiliser for ou while ?
Si tu sais combien de fois répéter, prends for. Si tu répètes jusqu'à ce qu'une condition change (un code trouvé, une valeur dépassée), prends while. Les deux existent dans la plupart des langages pour exécuter un bloc en boucle.4 Avec while, vérifie toujours que la condition peut devenir fausse.
Pourquoi parler de compilateur et d'interprète en programmation ?
Parce que la machine ne comprend pas directement le langage que tu écris. Un traducteur automatique est nécessaire : le compilateur produit un code cible avant l'exécution, l'interprète traduit à la volée.5 Savoir lequel tu utilises t'aide à comprendre quand une erreur apparaît et comment relancer un test.
Sources
Programme visé : Bac pro Cybersécurité, Informatique et réseaux, Électronique (CIEL) — rentrée 2023 · Éduscol STI (Ministère de l'Éducation nationale)
- Bac pro Cybersécurité, Informatique et réseaux, Électronique (CIEL) — rentrée 2023, Éduscol STI (Ministère de l'Éducation nationale). Consulté le 9 novembre 2026.
- Python — ressources et logiciels pour l'enseignement, Éduscol STI. Consulté le 9 novembre 2026.
- Des ressources libres sur la science informatique (programmation, machine, réseau, codage de l'information), Éduscol STI. Consulté le 9 novembre 2026.
- Programmation informatique, Wikipédia. Consulté le 9 novembre 2026.
- Langage de programmation, Wikipédia. Consulté le 9 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.