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.

Énoncé: Exercice 1 - Partie B · Bac Numérique et Sciences Informatiques Antilles-Guyane 2026 (jour 2)

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)

Plus d’exercices de Programmation orientée objet : classes, attributs, méthodes