Mathématiques · CAPCAP
Variables et instructions : exercices corrigés de CAP
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une variable associe un nom à une valeur ; cette valeur peut changer pendant l'exécution du programme 3.
- Un algorithme est une suite finie d'instructions élémentaires qui résout un problème 2.
- Pour suivre un programme, exécute les lignes dans l'ordre et note la valeur de chaque variable après chaque instruction.
- Le nom d'une variable ne commence jamais par un chiffre ; choisis un nom qui dit ce qu'elle contient 3 2.
- Avec
for i in range(5), la variable i prend les valeurs de 0 à 4 1.
Comment utiliser ces exercices
Ces exercices te font manipuler les variables et les instructions comme on le fait en CAP : tu lis un petit programme, tu devines ce qu'il affiche, puis tu écris ou corriges des lignes pour résoudre un problème de la vie professionnelle (devis, facture, surface à peindre, paie). Ils vont du plus simple au plus délicat. Prends une feuille, fais chaque exercice sans regarder la correction, puis compare.
Rappel : lire et écrire des instructions
Un programme simple enchaîne trois sortes de gestes : donner une valeur à une variable (affectation), calculer à partir de variables, et afficher un résultat avec print. L'ordinateur lit de haut en bas, une ligne après l'autre.
Une variable peut contenir un nombre entier, mais aussi d'autres types de valeurs (un nombre décimal, un texte…). Il est possible de convertir une valeur d'un type vers un autre 2. Dans ces exercices, nous utilisons surtout des nombres.
Les exercices
Exercice 1 Suivre les valeurs d'un programme
On exécute le programme suivant :
a = 5
b = a + 3
a = b * 2
print(a)
Quelle valeur est affichée ?
Indice 1
Fais un tableau avec deux colonnes : a et b.
Indice 2
À la ligne 3, utilise la valeur de b calculée à la ligne 2.
Voir la correction pas à pas
Ligne 1 :
areçoit 5. On a a = 5.Ligne 2 : l'ordinateur calcule et range 8 dans
b. On a a = 5 et b = 8.Ligne 3 : l'ordinateur calcule avec la valeur actuelle de
b, puis range 16 dansa. L'ancienne valeur 5 deaest perdue.Ligne 4 :
print(a)affiche la valeur actuelle dea, donc 16.
Le programme affiche 16. Retiens qu'une variable ne garde que sa dernière valeur : a valait 5, puis 16.
Exercice 2 Prix après remise
Dans un magasin d'outillage, une perceuse coûte 40 €. Un programme calcule le prix après une remise de 15 % :
prix = 40
remise = 0.15
montant_remise = prix * remise
prix_final = prix - montant_remise
print(prix_final)
Quel prix est affiché, en euros ?
Indice 1
Calcule d'abord la variable montant_remise.
Indice 2
Le prix final est le prix de départ moins la remise.
Voir la correction pas à pas
Ligne 1 :
prixvaut 40.Ligne 2 :
remisevaut 0,15, ce qui correspond à 15 %.Ligne 3 :
montant_remisereçoit .Ligne 4 :
prix_finalreçoit .Ligne 5 : le programme affiche la valeur de
prix_final, soit 34 euros (Python écrit 34.0, car le calcul utilise un nombre décimal).
Le prix affiché est 34 €. Remarque que les noms prix, remise et prix_final rendent le programme lisible sans commentaire 2.
Exercice 3 Échanger deux valeurs
Deux variables contiennent x = 7 et y = 12. On veut échanger leurs valeurs : à la fin, x doit valoir 12 et y doit valoir 7.
- Explique pourquoi les deux lignes
x = ypuisy = xne fonctionnent pas. - Complète le programme avec une variable
temp:
x = 7
y = 12
temp = ...
x = ...
y = ...
print(x - y)
- Quelle valeur le
printaffiche-t-il une fois l'échange réussi ?
Indice 1
Que vaut x après la ligne x = y ? Que devient l'ancienne valeur de x ?
Indice 2
Il faut mettre une valeur « à l'abri » avant de l'écraser.
Voir la correction pas à pas
Avec
x = y,xreçoit 12 : l'ancienne valeur 7 est perdue. La ligney = xrecopie alors 12 dansy, donc les deux variables valent 12.On met d'abord 7 à l'abri :
temp = x(temp vaut 7).On écrase
x:x = y(x vaut 12).On redonne à
yla valeur gardée :y = temp(y vaut 7).L'affichage est .
Le programme affiche 5. La variable intermédiaire sert de « boîte de passage » : sans elle, une valeur est écrasée avant d'avoir été copiée.
Exercice 4 Choisir de bons noms de variables
Un élève propose ces noms de variables pour un programme de calcul de devis :
2prix ; prix2 ; total_ht ; 3fois ; remise_client.
- Lesquels sont refusés parce qu'ils commencent par un chiffre ?
- Parmi les noms acceptés, lequel est le moins clair pour quelqu'un qui lit le programme ? Propose un meilleur nom.
- Pourquoi vaut-il mieux écrire
surfaceques?
Indice 1
Regarde uniquement le tout premier caractère de chaque nom.
Indice 2
Un bon nom dit ce que la variable contient.
Voir la correction pas à pas
Le premier caractère d'un nom ne peut pas être un chiffre 3. Sont donc refusés :
2prixet3fois.Les noms
prix2,total_htetremise_clientcommencent par une lettre : ils sont acceptés. Le caractère « _ » placé au début ou entre des lettres sert aussi à écrire un nom 3.Le moins clair est
prix2: on ne sait pas s'il s'agit d'un second prix, d'un prix doublé, etc. On peut écrireprix_unitaireouprix_apres_remiseselon ce qu'il contient.Un nom évocateur comme
surfacefacilite la lecture du programme, car on comprend ce que contient la variable sans chercher 2.
Deux règles à garder : jamais de chiffre en premier caractère, et un nom qui explique le contenu. Un bon nom évite beaucoup d'erreurs de lecture.
Exercice 5 Un compteur qui s'incrémente
Un atelier compte les pièces fabriquées avec ce programme :
pieces = 0
pieces = pieces + 1
pieces = pieces + 1
pieces = pieces + 1
print(pieces)
Que s'affiche-t-il ? Que fait l'instruction pieces = pieces + 1 ?
Indice 1
Lis l'instruction en deux temps : calcul à droite, rangement à gauche.
Indice 2
Suis la valeur de pieces ligne après ligne.
Voir la correction pas à pas
Ligne 1 :
piecesvaut 0.Ligne 2 : l'ordinateur calcule et range 1 dans
pieces.Ligne 3 : il calcule et range 2 dans
pieces.Ligne 4 : il calcule et range 3 dans
pieces.Ligne 5 : le programme affiche 3.
Le programme affiche 3. Augmenter une variable de 1 s'appelle l'incrémentation 1 : la variable reçoit sa valeur précédente plus 1.
Exercice 6 Surface à peindre et coût
Un peintre doit repeindre un mur de 8 m de long et de 2,5 m de haut. La peinture coûte 12,50 € le mètre carré. Il écrit :
longueur = 8
hauteur = 2.5
prix_m2 = 12.5
surface = longueur * hauteur
cout = surface * prix_m2
print(cout)
- Quelle est la valeur de
surface? - Quel coût est affiché, en euros ?
Indice 1
La surface d'un rectangle est longueur multipliée par hauteur.
Indice 2
Le coût est la surface multipliée par le prix d'un mètre carré.
Voir la correction pas à pas
Les trois premières lignes rangent 8, 2,5 et 12,5 dans les variables.
surfacereçoit , en m².coutreçoit , en euros.Le
printaffiche la valeur decout.
La surface vaut 20 m² et le coût affiché est 250 €. Si le mur changeait, il suffirait de modifier les deux premières lignes : c'est tout l'intérêt de ranger les données dans des variables.
Exercice 7 Prévoir l'affichage d'une boucle
On exécute :
for i in range(4):
print(i * 2)
- Quelles valeurs sont affichées, dans l'ordre ?
- Quelle est la somme de toutes les valeurs affichées ?
- Que se passerait-il si la ligne
printn'était pas décalée vers la droite ?
Indice 1
Avec range(4), la variable i commence à 0.
Indice 2
Calcule i * 2 pour chaque valeur de i.
Voir la correction pas à pas
Avec
range(4), la variableiprend successivement 0, 1, 2 et 3. La logique est la même qu'avecrange(5), où i va de 0 à 4 1.Pour chaque valeur, le programme affiche
i * 2: 0, 2, 4 puis 6.La somme est .
Le décalage (indentation) de
printindique que cette ligne fait partie de la boucle 1. Sans décalage, elle sortirait de la boucle : Python signalerait une erreur, car la boucle n'aurait plus de contenu.
Les valeurs affichées sont 0, 2, 4, 6 et leur somme est 12. Pour ne pas te tromper, écris toujours la liste des valeurs de i avant de calculer.
Exercice 8 Facture avec TVA et acompte
Un artisan établit une facture pour des travaux de 250 € hors taxes. La TVA est de 20 %. Le client verse un acompte de 30 % du montant toutes taxes comprises (TTC). L'artisan écrit :
prix_ht = 250
taux_tva = 20
prix_ttc = prix_ht * (1 + taux_tva / 100)
acompte = prix_ttc * 0.30
reste = prix_ttc - acompte
print(reste)
- Donne la valeur de chaque variable après exécution.
- Quel montant reste à payer, en euros ?
Indice 1
Calcule prix_ttc en commençant par la division taux_tva / 100.
Indice 2
Le reste à payer est le TTC moins l'acompte.
Voir la correction pas à pas
prix_htvaut 250 ettaux_tvavaut 20.Dans
prix_ttc, on calcule d'abord , puis , enfin . Doncprix_ttcvaut 300 €.acomptereçoit €.restereçoit €.Le
printaffiche 210.0, c'est-à-dire 210 €.
Valeurs finales : prix_ttc = 300 €, acompte = 90 €, reste = 210 €. Vérification rapide : payer 70 % du TTC revient à calculer .
Exercice 9 Calculer une paie avec heures supplémentaires
Un salarié est payé 12 € de l'heure. Il a travaillé 35 heures normales et 4 heures supplémentaires. Chaque heure supplémentaire est payée avec une majoration de 25 %.
- Écris un programme en Python qui utilise les variables
taux,heures_normales,heures_sup,paie_normale,paie_supettotal. - Quel total est affiché, en euros ?
Indice 1
Une heure supplémentaire est payée .
Indice 2
Le total est la somme des deux paies.
Voir la correction pas à pas
Programme possible :
taux = 12 heures_normales = 35 heures_sup = 4 paie_normale = heures_normales * taux paie_sup = heures_sup * taux * 1.25 total = paie_normale + paie_sup print(total)paie_normalereçoit €.paie_supreçoit €.totalreçoit €.Le programme affiche 480.0, c'est-à-dire 480 €.
Le total affiché est 480 €. Avec des variables bien nommées, chaque ligne correspond à une étape du raisonnement et le programme se relit sans effort.
Les questions qu'on se pose
Pourquoi x = x + 1 n'est-il pas une erreur ?
Parce que le signe = ne veut pas dire « est égal à » comme en mathématiques. C'est une affectation : l'ordinateur calcule d'abord ce qui est à droite avec l'ancienne valeur de x, puis range le résultat dans x. Si x vaut 4 avant la ligne, il vaut 5 après. Une variable peut en effet changer de valeur au cours du programme 3.
Dans une boucle for i in range(5), pourquoi i commence-t-il à 0 ?
Python numérote à partir de 0. L'instruction for i in range(5) fait prendre à i les valeurs de 0 à 4 1 : cela fait cinq tours, mais la dernière valeur est 4 et non 5. Si tu veux compter de 1 à 5, tu dois ajuster ton calcul, par exemple en utilisant i + 1.
Comment ne pas me tromper quand je dois prévoir ce qu'affiche un programme ?
Construis un tableau de suivi : une colonne par variable, une ligne par instruction exécutée. Complète-le ligne après ligne, sans sauter d'étape, et ne lis le print qu'à la fin. Cette méthode évite l'erreur classique qui consiste à utiliser une valeur de variable déjà remplacée.
Sources
- Algorithmique et programmation - Programme CAP mathématiques, Éduscol. Consulté le 9 novembre 2026.
- Repères pédagogiques - Variables et affectation en algorithmique, Académie de Lille. Consulté le 9 novembre 2026.
- Variable (informatique), Wikipédia. Consulté le 9 novembre 2026.
- Jeu d'instructions, 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.