Exercice 1 - Partie B · Bac Numérique et Sciences Informatiques Antilles-Guyane 2026 (jour 2)
Thème : Programmation orientée objet : classes, attributs, méthodes · Tiré du sujet Jour 2 (2026)
Énoncé
Exercice 1 (6 points)
Cet exercice porte sur les bases de données relationnelles, les requêtes SQL et la programmation objet. Cet exercice comporte deux parties indépendantes.
Partie A
Dans cette partie, on pourra utiliser les clauses du langage SQL pour:
construire des requêtes d'interrogation à l'aide de SELECT, FROM, WHERE (avec les opérateurs logiques AND et OR) et JOIN... ON;
construire des requêtes d'insertion et de mise à jour à l'aide de UPDATE, INSERT et DELETE;
faire des alias avec AS;
affiner les recherches à l'aide de DISTINCT et ORDER BY;
réaliser des agrégations à l'aide de COUNT, AVG, MAX, MIN et SUM.
Une agence de location d'espaces de travail (coworking) a créé une base de données comprenant les relations suivantes:
salle (id_salle, intitule, type, nb_places, tarif_jour)
reservation (id, id_client, id_salle, date, duree)
client (id_client, societe, num_tel)
On donne ci-dessous des extraits des relations précédentes:
Partie B
On implémente maintenant ces données sous la forme d'une classe en Python donnée ci-dessous. Pour simplifier le code, on considère qu'il n'y a plus de date de réservation mais simplement un état de disponibilité. Lorsqu'une salle est disponible, l'attribut occupant prend pour valeur la chaîne vide.
class Salle:
def __init__(self, intitule, type_salle, nb_places, tarif_jour):
self.intitule = intitule
self.type_salle = type_salle
self.nb_places = nb_places
self.tarif = tarif_jour
self.dispo = True
self.occupant = ""
def reserver(self, client):
if self.dispo:
self.dispo = False
self.occupant = client
return self.tarif
return False 8.
Donner un exemple d'attribut et un exemple de méthode de la classe Salle.
9.
Écrire la méthode liberer qui modifie les attributs d'une salle de manière à la rendre disponible et sans occupant (chaîne de caractères vide).
def liberer(self):
Le code suivant crée et modifie une liste de salles:
S1 = Salle("B1", "Bureau", 3, 140)
S2 = Salle("RAVEL", "Amphi", 90, 2300)
S3 = Salle("RA", "Réunion", 10, 350)
S4 = Salle("B2", "Bureau", 4, 155)
S5 = Salle("RB", "Réunion", 8, 300)
S1.reserver("Dupont&co")
S2.reserver("FleursJ")
liste_salles = [S1, S2, S3, S4, S5] 10.
Recopier et compléter les lignes 3, 4 et 5 du code de la fonction salles_dispos qui prend en paramètre une liste de salles et renvoie la liste des intitulés de celles qui sont disponibles.
def salles_dispos(liste_salles):
res = []
for...:
if...:
res.append(...)
return res
On crée maintenant une classe Seminaire ayant pour attributs une liste de salles réservées, un prix total et un nom de client.
class Seminaire:
def __init__(self, client):
self.liste_salles = []
self.prix_total = 0
self.client = client
def ajouter_reservation(self, salle):
if salle.dispo:
...
...
return True
return False 11.
Recopier et compléter la méthode ajouter_reservation qui ajoute salle à la liste des salles réservées, puis réserve cette salle en modifiant le prix total. Elle renvoie True si la salle a pu être réservée car elle était libre, et False sinon.

Corrigé
Corrigé proposé par AprenAI (non officiel)
8. Exemple d'attribut de la classe Salle
Réponse : intitule / type_salle / nb_places / tarif / dispo / occupant
8. Exemple de méthode de la classe Salle
Réponse : __init__ / reserver
9. Écrire la méthode liberer qui modifie les attributs d'une salle de manière à la rendre disponible et sans occupant (chaîne de caractères vide).
Réponse : ```python self.dispo = True self.occupant = "" ```
Les réponses des 2 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 3 - Programmation orientée objet · Antilles-Guyane 2026 (jour 1)