Première · NSI

Contrôle n°5 — Langages et programmation : instructions élémentaires

Contrôle évaluant la maîtrise des structures de contrôle séquentielles et conditionnelles en Python.

1h30 · Moyen · 3 exercices · Barème sur 20 points

Entraînement généré par IA — vérification pédagogique complète non acquise.

Ce sujet n’est pas une annale officielle. La présence d’un corrigé ne garantit pas son exactitude. Vérifie les méthodes avec ton cours ; une note d’entraînement n’est pas une note officielle. Signaler une erreur.

La fenêtre d’impression de ton navigateur permet aussi d’enregistrer en PDF. Aucun téléchargement de PDF officiel n’est annoncé ici.

Sujet

Travaille d’abord sans consulter le corrigé. Note tes réponses et les étapes de ton raisonnement.

Exercice 1Structures conditionnelles (7 points)

1. Quelle est la différence entre une instruction conditionnelle simple (`if`) et une instruction conditionnelle multiple (`if`/`elif`/`else`) ? Illustrez avec un exemple concret. 2. Écrivez le code Python d'une structure conditionnelle qui affecte à une variable `message` la valeur : - "Tarif réduit" si la variable `age` est strictement inférieure à 18 OU si la variable `etudiant` est `True`. - "Tarif plein" dans tous les autres cas. 3. Pourquoi est-il important d'utiliser l'opérateur de comparaison `==` et non l'opérateur d'affectation `=` dans une condition ?

Exercice 2Problème : Calcul d'une remise (8 points)

Une boutique en ligne applique une remise sur le prix total d'un panier selon les règles suivantes : - Aucune remise si le total est inférieur à 50 €. - Une remise de 5% si le total est entre 50 € (inclus) et 100 € (exclus). - Une remise de 10% si le total est entre 100 € (inclus) et 200 € (exclus). - Une remise de 15% si le total est supérieur ou égal à 200 €. 1. Écrivez un code Python qui, à partir d'une variable `total_avant_remise` (supposée positive), calcule et affiche le `montant_remise` et le `total_a_payer`. 2. Testez mentalement votre code avec un total de 75 €. Quel est le montant de la remise et le total à payer ?

Exercice 3Analyse et correction de code (5 points)

Un élève a écrit le code suivant pour classer un nombre `n` comme "Positif", "Négatif" ou "Nul". Le code contient des erreurs. python n = int(input("Donnez un nombre : ") if n > 0 print("Positif") elif n = 0: print("Nul") else n < 0: print("Négatif") 1. Relevez et corrigez toutes les erreurs de syntaxe et de logique dans ce code. 2. Réécrivez le code correctement.

Corrigé et barème

Le total du barème est de 20 points. Les réponses rédigées admettent plusieurs formulations pertinentes ; compare le raisonnement, pas seulement les mots.

Exercice 1Structures conditionnelles : 7 points
1. Une condition simple (`if`) permet d'exécuter un bloc de code si une condition est vraie. Une condition multiple permet de tester plusieurs conditions exclusives les unes des autres. Exemple : Notation d'un devoir. Simple : `if note >= 10: print("Validé")`. Multiple : `if note >= 16: mention="TB" elif note >= 14: mention="B" ...` 2. python if age < 18 or etudiant: message = "Tarif réduit" else: message = "Tarif plein" 3. L'opérateur `=` est utilisé pour l'affectation (stocker une valeur). L'opérateur `==` est utilisé pour la comparaison (tester l'égalité). Utiliser `=` dans une condition provoquerait une erreur de syntaxe ou une affectation non désirée, faussant la logique du programme.
Exercice 2Problème : Calcul d'une remise : 8 points
1. python total_avant_remise = float(input("Total ? ")) if total_avant_remise >= 200: taux = 0.15 elif total_avant_remise >= 100: taux = 0.10 elif total_avant_remise >= 50: taux = 0.05 else: taux = 0.0 montant_remise = total_avant_remise * taux total_a_payer = total_avant_remise - montant_remise print("Remise :", montant_remise, "€") print("À payer :", total_a_payer, "€") 2. Pour 75 € : on est dans la tranche 50-100, donc taux = 5%. Remise = 75 * 0.05 = 3.75 €. Total à payer = 75 - 3.75 = 71.25 €.
Exercice 3Analyse et correction de code : 5 points
1. Erreurs : - Ligne 1 : Parenthèse fermante manquante après `input(...)`. - Ligne 2 : Deux-points `:` manquant après la condition `if n > 0`. - Ligne 4 : Opérateur d'affectation `=` au lieu de l'opérateur de comparaison `==`. - Ligne 6 : `else` ne prend pas de condition. Il faut utiliser `elif n < 0:` ou simplement `else:`. 2. Code corrigé : python n = int(input("Donnez un nombre : ")) if n > 0: print("Positif") elif n == 0: print("Nul") else: # ou elif n < 0: print("Négatif")

Comprendre, puis réessayer

Repère une erreur précise, explique ce qui t’a manqué et refais l’exercice sans le corrigé. Reprends la notion dans ton cours avant de passer à un autre sujet.

Planifier une révision · Chercher un autre entraînement

Nyms