Systèmes d'information de gestion · Terminale STMGBac
Programmation en SIG : exercices corrigés de Terminale STMG
Publié le 11 novembre 2026 · Mis à jour le 11 novembre 2026 · Signaler une erreur
L'essentiel
- Une variable garde une valeur ; une condition (
if) choisit une action ; une boucle (for,while) répète des instructions. - Une fonction regroupe un calcul réutilisable : elle reçoit des paramètres et renvoie un résultat avec
return. - Pour comprendre un programme, simule-le à la main : note la valeur de chaque variable après chaque ligne.
- Le // donne le quotient entier, le % le reste de la division.
- Un programme de gestion se lit toujours avec les unités : euros, quantités, pourcentages.
Comment utiliser ces exercices
Ces exercices te font manipuler le langage Python sur des situations de gestion : prix, remises, stocks, placements. Le programme de la spécialité SIG place l'initiation à la programmation à côté des fondamentaux des bases de données et de l'approche des réseaux.6 Ici, on se concentre sur la programmation, dans le prolongement de l'algorithmique de gestion.
Les exercices
Exercice 1 Calculer un prix TTC avec des variables
Voici un programme :
prix_ht = 80
taux_tva = 20
tva = prix_ht * taux_tva / 100
prix_ttc = prix_ht + tva
print(prix_ttc)
Quelle valeur le programme affiche-t-il ? Donne le résultat en euros.
Indice 1
Calcule d'abord la valeur de la variable tva.
Indice 2
Le prix TTC s'obtient en ajoutant la TVA au prix hors taxe.
Voir la correction pas à pas
Après la ligne 1,
prix_htvaut 80.Après la ligne 2,
taux_tvavaut 20.Ligne 3 :
tva = 80 * 20 / 100 = 1600 / 100 = 16.Ligne 4 :
prix_ttc = 80 + 16 = 96.La ligne 5 affiche donc 96 (en euros).
Le programme affiche 96. Le prix TTC dépasse bien le prix HT, ce qui est cohérent. Retiens le réflexe : une variable intermédiaire (tva) rend le programme plus lisible qu'un seul gros calcul.
Exercice 2 Quotient et reste d'une division
Une entreprise range 17 articles dans des cartons de 5 articles.
articles = 17
carton = 5
nb_cartons_pleins = articles // carton
reste = articles % carton
resultat = nb_cartons_pleins + reste
print(resultat)
Quelle valeur est affichée ?
Indice 1
L'opérateur // donne le quotient entier de la division.
Indice 2
L'opérateur % donne le reste de cette même division.
Voir la correction pas à pas
On divise 17 par 5 : 17 = 5 × 3 + 2.
Donc
17 // 5vaut 3 : il y a 3 cartons pleins.Et
17 % 5vaut 2 : il reste 2 articles.resultat = 3 + 2 = 5.Le programme affiche 5.
Le programme affiche 5. Attention : ce nombre mélange des cartons et des articles, ce qui n'a pas de sens en gestion. C'est un exercice de lecture de code, pas un modèle de calcul à reproduire.
Exercice 3 Une remise sous condition
Une boutique accorde 10 % de remise lorsque le montant du panier est supérieur ou égal à 100 euros.
montant = 120
if montant >= 100:
montant = montant * 0.9
print(montant)
- Qu'affiche le programme ?
- Qu'afficherait-il avec
montant = 90au départ ?
Donne comme réponse numérique la valeur obtenue à la question 1, en euros.
Indice 1
Teste la condition avec la valeur de départ.
Indice 2
Multiplier par 0.9 revient à retirer 10 %.
Voir la correction pas à pas
Au départ,
montantvaut 120.La condition
120 >= 100est vraie : on entre dans le bloc décalé.montant = 120 * 0.9 = 108.Le programme affiche 108 (euros).
Question 2 : avec 90, la condition
90 >= 100est fausse, le bloc est ignoré et le programme affiche 90.
Réponse à la question 1 : 108 euros. À la question 2, le programme affiche 90 euros, sans remise. Une condition fait exécuter un bloc seulement si elle est vraie.
Exercice 4 Parcourir une liste de ventes
Un commerçant note ses ventes journalières, en euros, dans une liste.
ventes = [120, 85, 40, 155]
total = 0
for v in ventes:
if v > 50:
total = total + v
print(total)
Quelle valeur est affichée ? Donne-la en euros.
Indice 1
total est un accumulateur : il part de 0 et grossit à chaque tour.
Indice 2
N'ajoute que les ventes strictement supérieures à 50.
Voir la correction pas à pas
Départ :
total = 0.Tour 1 :
v = 120, la condition120 > 50est vraie,total = 0 + 120 = 120.Tour 2 :
v = 85, la condition est vraie,total = 120 + 85 = 205.Tour 3 :
v = 40, la condition40 > 50est fausse,totalreste 205.Tour 4 :
v = 155, la condition est vraie,total = 205 + 155 = 360.La liste est terminée : le programme affiche 360.
Le programme affiche 360 euros, somme des seules ventes supérieures à 50 euros. Remarque que la vente de 40 euros n'a pas modifié total : la condition est testée à chaque tour de boucle.
Exercice 5 Boucle while : un placement qui grossit
Une association place 1000 euros à un taux de 5 % par an. Chaque année, le capital est multiplié par 1,05. On veut savoir au bout de combien d'années le capital dépasse 1200 euros.
capital = 1000
annees = 0
while capital <= 1200:
capital = capital * 1.05
annees = annees + 1
print(annees)
Quelle valeur est affichée ?
Indice 1
Remplis un tableau avec les colonnes annees et capital, une ligne par passage dans la boucle.
Indice 2
La boucle continue tant que la condition capital <= 1200 est vraie.
Voir la correction pas à pas
Départ :
capital = 1000,annees = 0. Condition1000 <= 1200vraie.Passage 1 :
capital = 1050,annees = 1. Condition vraie.Passage 2 :
capital = 1102,5,annees = 2. Condition vraie.Passage 3 :
capitalvaut environ 1157,63 euros,annees = 3. Condition vraie.Passage 4 :
capitalvaut environ 1215,51 euros,annees = 4. La condition1215,51 <= 1200est fausse : la boucle s'arrête.Le programme affiche 4.
Le programme affiche 4 (années). Avec une boucle while, on ne connaît pas à l'avance le nombre de tours : on s'arrête quand la condition devient fausse. Attention à toujours modifier la variable testée, sinon la boucle ne s'arrête jamais.
Exercice 6 Écrire et utiliser une fonction
Un service comptable utilise la fonction suivante :
def ttc(ht, taux):
return round(ht * (1 + taux / 100), 2)
print(ttc(49.90, 20))
Quelle valeur est affichée, en euros ? On rappelle que round(x, 2) arrondit à deux décimales.
Indice 1
Remplace ht par 49,90 et taux par 20 dans l'expression.
Indice 2
Calcule d'abord 1 + 20 / 100.
Voir la correction pas à pas
Appel
ttc(49.90, 20):htprend la valeur 49,90 ettauxla valeur 20.taux / 100 = 0,2, donc1 + 0,2 = 1,2.ht * 1,2 = 49,90 × 1,2 = 59,88.round(59,88, 2)conserve 59,88 : il y a déjà deux décimales.returnrenvoie 59,88 etprintl'affiche.
Le programme affiche 59,88 euros. L'intérêt de la fonction : tu peux la réutiliser pour n'importe quel prix et n'importe quel taux, sans réécrire le calcul.
Exercice 7 Gérer un stock avec un dictionnaire
Un magasin de fournitures stocke ses quantités dans un dictionnaire : chaque produit est associé à sa quantité. Quand un produit passe sous le seuil de 40 unités, on le recommande pour revenir à 50 unités.
stock = {"stylo": 120, "cahier": 35, "classeur": 8}
seuil = 40
cible = 50
commande = 0
for produit in stock:
if stock[produit] < seuil:
commande = commande + (cible - stock[produit])
print(commande)
Quelle quantité totale est affichée, en unités ?
Indice 1
stock[produit] donne la quantité du produit en cours de parcours.
Indice 2
Ne traite que les produits dont la quantité est strictement inférieure à 40.
Voir la correction pas à pas
Départ :
commande = 0.Produit "stylo" :
120 < 40est faux, rien n'est ajouté.Produit "cahier" :
35 < 40est vrai,commande = 0 + (50 - 35) = 15.Produit "classeur" :
8 < 40est vrai,commande = 15 + (50 - 8) = 15 + 42 = 57.Le dictionnaire est entièrement parcouru : le programme affiche 57.
Le programme affiche 57 unités : 15 cahiers et 42 classeurs à commander. Un dictionnaire convient bien quand on associe une information (la quantité) à un nom (le produit).
Exercice 8 Trouver l'erreur d'un calcul de moyenne
Un élève veut calculer le prix moyen de trois articles vendus 10, 20 et 30 euros. Son programme affiche un résultat faux.
prix = [10, 20, 30]
total = 0
for p in prix:
total = p
moyenne = total / 3
print(moyenne)
- Simule le programme et donne ce qu'il affiche.
- Repère l'erreur et corrige-la.
- Quelle valeur le programme corrigé affiche-t-il ? Donne-la en euros comme réponse numérique.
Indice 1
Regarde ce que devient total à chaque tour : est-il augmenté ou remplacé ?
Indice 2
Pour accumuler, la nouvelle valeur doit dépendre de l'ancienne.
Voir la correction pas à pas
Tour 1 :
total = 10. Tour 2 :total = 20. Tour 3 :total = 30. L'instructiontotal = premplace la valeur au lieu de l'additionner.Le programme affiche donc
30 / 3 = 10,0: c'est faux, car la moyenne de 10, 20 et 30 est supérieure à 10.L'erreur est dans l'accumulateur. La bonne ligne est
total = total + p.Programme corrigé : tour 1,
total = 0 + 10 = 10; tour 2,total = 10 + 20 = 30; tour 3,total = 30 + 30 = 60.moyenne = 60 / 3 = 20,0.Le programme corrigé affiche 20,0 (euros).
Le programme corrigé affiche 20 euros. Pour un accumulateur, écris toujours total = total + p (ou total += p). Autre amélioration : remplacer le 3 par len(prix) évite de modifier le programme si la liste change de taille.
Les questions qu'on se pose
Comment m'entraîner à lire un programme sans ordinateur ?
Dessine un tableau avec une colonne par variable et une ligne par étape. Exécute le programme instruction par instruction et note la nouvelle valeur à chaque affectation. Ce tableau de suivi est la méthode la plus fiable pour prévoir ce qu'un programme affiche, y compris dans une boucle.
Quelle est la différence entre une boucle for et une boucle while ?
La boucle for répète un bloc un nombre de fois connu, par exemple pour chaque élément d'une liste. La boucle while répète tant qu'une condition reste vraie : on ne sait pas toujours à l'avance combien de tours auront lieu. Avec while, vérifie que le corps de la boucle modifie bien la variable testée, sinon elle tourne sans fin.
Sources
Programme visé : Programmes et ressources en série STMG — Systèmes d'information de gestion · Éduscol — Ministère de l'Éducation nationale
- Programmes et ressources en série STMG — Systèmes d'information de gestion, Éduscol — Ministère de l'Éducation nationale. Consulté le 11 novembre 2026.
- Bulletin officiel spécial n°8 du 25 juillet 2019 — Programme de Terminale STMG (SIG), Bulletin officiel — Ministère de l'Éducation nationale. Consulté le 11 novembre 2026.
- Ressources Éduscol — SIG Terminale (Programmation et développement d'applications), Éduscol. Consulté le 11 novembre 2026.
- Ressources Éduscol — SIG Terminale (Fondamentaux et introduction à la programmation), Éduscol. Consulté le 11 novembre 2026.
- Lumni — Réviser vos spécialités — Ressources pédagogiques pour Terminale STMG, Ministère de l'Éducation nationale. Consulté le 11 novembre 2026.
- SIG Enseignement spécifique — Ressources académiques, Académie de Guadeloupe. 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.