Aller au contenu

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

★☆☆Environ 5 min

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
  1. Après la ligne 1, prix_ht vaut 80.

  2. Après la ligne 2, taux_tva vaut 20.

  3. Ligne 3 : tva = 80 * 20 / 100 = 1600 / 100 = 16.

  4. Ligne 4 : prix_ttc = 80 + 16 = 96.

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

★☆☆Environ 5 min

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
  1. On divise 17 par 5 : 17 = 5 × 3 + 2.

  2. Donc 17 // 5 vaut 3 : il y a 3 cartons pleins.

  3. Et 17 % 5 vaut 2 : il reste 2 articles.

  4. resultat = 3 + 2 = 5.

  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

★☆☆Environ 7 min

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)
  1. Qu'affiche le programme ?
  2. Qu'afficherait-il avec montant = 90 au 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
  1. Au départ, montant vaut 120.

  2. La condition 120 >= 100 est vraie : on entre dans le bloc décalé.

  3. montant = 120 * 0.9 = 108.

  4. Le programme affiche 108 (euros).

  5. Question 2 : avec 90, la condition 90 >= 100 est 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

★★☆Environ 10 min

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
  1. Départ : total = 0.

  2. Tour 1 : v = 120, la condition 120 > 50 est vraie, total = 0 + 120 = 120.

  3. Tour 2 : v = 85, la condition est vraie, total = 120 + 85 = 205.

  4. Tour 3 : v = 40, la condition 40 > 50 est fausse, total reste 205.

  5. Tour 4 : v = 155, la condition est vraie, total = 205 + 155 = 360.

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

★★☆Environ 12 min

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
  1. Départ : capital = 1000, annees = 0. Condition 1000 <= 1200 vraie.

  2. Passage 1 : capital = 1050, annees = 1. Condition vraie.

  3. Passage 2 : capital = 1102,5, annees = 2. Condition vraie.

  4. Passage 3 : capital vaut environ 1157,63 euros, annees = 3. Condition vraie.

  5. Passage 4 : capital vaut environ 1215,51 euros, annees = 4. La condition 1215,51 <= 1200 est fausse : la boucle s'arrête.

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

★★☆Environ 10 min

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
  1. Appel ttc(49.90, 20) : ht prend la valeur 49,90 et taux la valeur 20.

  2. taux / 100 = 0,2, donc 1 + 0,2 = 1,2.

  3. ht * 1,2 = 49,90 × 1,2 = 59,88.

  4. round(59,88, 2) conserve 59,88 : il y a déjà deux décimales.

  5. return renvoie 59,88 et print l'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

★★★Environ 15 min

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
  1. Départ : commande = 0.

  2. Produit "stylo" : 120 < 40 est faux, rien n'est ajouté.

  3. Produit "cahier" : 35 < 40 est vrai, commande = 0 + (50 - 35) = 15.

  4. Produit "classeur" : 8 < 40 est vrai, commande = 15 + (50 - 8) = 15 + 42 = 57.

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

★★★Environ 15 min

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)
  1. Simule le programme et donne ce qu'il affiche.
  2. Repère l'erreur et corrige-la.
  3. 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
  1. Tour 1 : total = 10. Tour 2 : total = 20. Tour 3 : total = 30. L'instruction total = p remplace la valeur au lieu de l'additionner.

  2. Le programme affiche donc 30 / 3 = 10,0 : c'est faux, car la moyenne de 10, 20 et 30 est supérieure à 10.

  3. L'erreur est dans l'accumulateur. La bonne ligne est total = total + p.

  4. Programme corrigé : tour 1, total = 0 + 10 = 10 ; tour 2, total = 10 + 20 = 30 ; tour 3, total = 30 + 30 = 60.

  5. moyenne = 60 / 3 = 20,0.

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

  1. 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.
  2. 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.
  3. Ressources Éduscol — SIG Terminale (Programmation et développement d'applications), Éduscol. Consulté le 11 novembre 2026.
  4. Ressources Éduscol — SIG Terminale (Fondamentaux et introduction à la programmation), Éduscol. Consulté le 11 novembre 2026.
  5. Lumni — Réviser vos spécialités — Ressources pédagogiques pour Terminale STMG, Ministère de l'Éducation nationale. Consulté le 11 novembre 2026.
  6. 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.

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