Générateur d'Épreuves & Devoirs

Créez des devoirs d'examen et devoirs surveillés calibrés sur 20 points pour Terminale NSI, Première NSI et Seconde SNT par chapitre ou multi-chapitres avec barème officiel et corrigé complet.

Choisir un Modèle d'Épreuve Préconfiguré :

Sélection des Chapitres au Programme :

Choisissez 1 seul chapitre (évaluation thématique de 4 exercices), 2 chapitres (2+2 exercices) ou combinez librement : l'épreuve fait toujours 20 points.

Épreuve calibrée : 20 / 20 points· 4 exercices (5 pts chacun) · 4 chapitres retenus
Personnalisation de l'En-Tête Officiel & Paramètres

Lycée Général & Technologique — Académie de Paris

BACCALAURÉAT GÉNÉRAL · ÉPREUVE ÉCRITE DE SPÉCIALITÉ

Session Baccalauréat 2026 — Épreuve Blanche Officielle

NUMÉRIQUE ET SCIENCES INFORMATIQUES (NSI)

Durée de l'épreuve : 3 heures 30 minutes · L'usage de la calculatrice n'est pas autorisé.

Nom du candidat : ..............................
Prénom : ..............................................
Note : ...... / 20
Exercice 1

POO : Gestion d'une flotte de drones de livraison autonome

5 pointsDurée conseillée : 30 minutes

Cet exercice porte sur : Programmation Orientée Objet & Modélisation de Classes en Python.

Une entreprise de logistique urbaine déploie des drones pour acheminer des colis médicaux d'urgence. Chaque drone est modélisé par une classe Python 'DroneLivraison'.

Spécifications des Classes Python

La classe DroneLivraison

AttributDescriptionTypeInitialisation
identifiantNuméro de série unique du dronestrPassé en paramètre au constructeur
batteriePourcentage de batterie restante (0 à 100)intInitialisé à 100
charge_max_kgCharge utile maximale en kilogrammesfloatPassé en paramètre au constructeur
en_volIndique si le drone est actuellement en missionboolInitialisé à False
MéthodeDescriptionParamètresType retour
charger_colis(poids)Valide et charge un colis si le drone est au sol et le poids supportépoids (float)bool
decoller()Fait décoller le drone si batterie >= 20% et passe en_vol à TrueAucunNone
atterrir()Fait atterrir le drone et passe en_vol à FalseAucunNone

Partie A — Constructeur et encapsulation

Question 1. Écrire en Python le constructeur __init__ de la classe DroneLivraison en respectant scrupuleusement les spécifications ci-dessus.[1.5 pts]
Question 2. Écrire la méthode charger_colis(self, poids: float) -> bool. Elle renvoie True si le drone n'est pas en vol et que le poids est positif et inférieur ou égal à charge_max_kg, sinon elle renvoie False.[1.5 pts]
Question 3. Écrire la méthode decoller(self) en utilisant une assertion (assert) pour vérifier que la batterie est au moins de 20%, puis en modifiant l'attribut en_vol.[2 pts]
Exercice 2

BDD : Modélisation d'une clinique vétérinaire & Schéma relationnel

5 pointsDurée conseillée : 30 minutes

Cet exercice porte sur : Bases de Données : Modèle Relationnel, Clés et Contraintes d'Intégrité.

On modélise le système d'information d'une clinique vétérinaire à l'aide des tables 'Proprietaire' et 'Animal'.

Table Proprietaire

id_prop (INT PK)nom (VARCHAR)ville (VARCHAR)telephone (VARCHAR)
1DuboisLille0601020304
2MartinRoubaix0611223344
3BernardLille0699887766

Table Animal

id_animal (INT PK)nom_animal (VARCHAR)espece (VARCHAR)annee_naiss (INT)id_prop (INT FK)
101FilouChat20201
102RexChien20181
103CaramelLapin20222
104LunaChat20213

Partie A — Analyse du schéma et contraintes d'intégrité

Question 1. Définir la notion de clé primaire. Identifier la clé primaire de chacune des deux tables.[1.5 pts]
Question 2. Définir la notion de clé étrangère. Identifier la clé étrangère présente dans ce schéma et préciser la contrainte d'intégrité associée.[1.5 pts]
Question 3. Que se passe-t-il si un utilisateur tente d'exécuter la requête suivante : INSERT INTO Animal VALUES (105, 'Bulle', 'Poisson', 2023, 99) ? Justifier précisément.[2 pts]
Exercice 3

Arbres : Vocabulaire, Taille, Hauteur et Récursivité

5 pointsDurée conseillée : 30 minutes

Cet exercice porte sur : Structures de Données Hiérarchiques : Arbres Binaires.

On modélise un arbre binaire à l'aide de la classe Noeud ci-dessous. Un arbre vide est représenté par None.

class Noeud:
    def __init__(self, valeur, gauche=None, droite=None):
        self.valeur = valeur
        self.gauche = gauche
        self.droite = droite

Partie A — Définitions et calculs de caractéristiques

Question 1. Définir la taille et la hauteur d'un arbre binaire. On adopte la convention : la hauteur d'un arbre réduit à sa seule racine vaut 0, et un arbre vide a une hauteur de -1.[1.5 pts]
Question 2. Écrire une fonction récursive taille(arbre: Noeud | None) -> int qui renvoie la taille de l'arbre passé en paramètre.[1.5 pts]
Question 3. Écrire une fonction récursive nb_feuilles(arbre: Noeud | None) -> int qui calcule et renvoie le nombre de feuilles de l'arbre.[2 pts]
Exercice 4

Récursivité : Analyse de traces d'exécution et variant

5 pointsDurée conseillée : 30 minutes

Cet exercice porte sur : Algorithmique : Récursivité, Pile d'Exécution & Terminaison.

On étudie la fonction récursive suivante calculant la puissance d'un entier a élevé à l'exposant n.

def puissance(a: float, n: int) -> float:
    if n == 0:
        return 1.0
    else:
        return a * puissance(a, n - 1)

Partie A — Trace d'exécution et preuve de terminaison

Question 1. Donner l'état de la pile d'appels lors de l'exécution de puissance(2, 3). Préciser la valeur renvoyée par chaque appel lors de la phase de dépilement.[1.5 pts]
Question 2. Définir ce qu'est un variant de récursion. Identifier le variant de récursion de cette fonction et prouver rigoureusement que la fonction termine pour tout entier n >= 0.[2 pts]
Question 3. Que se passe-t-il si l'on appelle puissance(2, -1) ? Quelle erreur est levée par Python ?[1.5 pts]
— Fin du sujet d'évaluation · AcademyGilbak —