Exercice 2 - Programmation orientée objet · Bac Numérique et Sciences Informatiques Métropole 2025 (sujet 1)

Thème : Programmation orientée objet : classes, attributs, méthodes · Tiré du sujet Métropole France 1 (2025)

Énoncé

Exercice 2

Cet exercice porte sur l'algorithmique, les structures de données, et la gestion de processus.

On cherche à créer une application de type liste de tâches à faire pour aider Alice à planifier sa journée. Pour cela Alice saisit les informations concernant chacune des tâches qu'elle doit effectuer: elle indique un nom pour la tâche, ainsi que la durée qu'elle estime nécessaire afin de la réaliser. On représente une tâche saisie par Alice à l'aide d'un objet de type Tache, muni de quatre attributs:

le numero de la tâche, saisi par Alice;

le nom de la tâche, saisi par Alice;

la duree (un entier exprimé en minute) nécessaire à la réalisation de la tâche saisie par Alice;

la duree_restante (un entier exprimé en minute) avant la fin de la tâche. Cet attribut sera initialisé avec la durée totale nécessaire à la réalisation de la tâche.

Avancer de nn minutes (nn entier positif) dans une tâche consiste à diminuer de nn la durée restante de cette tâche. Une tâche est terminée si la durée restante est négative ou nulle.

Lors de la phase de planification de ses tâches (aucune d'entre elles n'est commencée), Alice liste les tâches suivantes qui doivent être effectuées:

Numéro · Nom · Durée · Durée restante

1 · Répondre aux e-mails · 45 · 45

2 · Ranger ma chambre · 60 · 60

3 · Réviser la NSI · 90 · 90

4 · S'entraîner aux échecs · 30 · 30

5 · Apprendre le vocabulaire de chinois · 30 · 30

6 · Lire Fondation · 60 · 60

7 · Écrire ma lettre au Père Noël · 20 · 20

On dispose de la classe Tache ci-dessous pour représenter les tâches:

class Tache:

def __init__(self, numero, nom, duree):

self.numero = numero

self.nom = nom

self.duree_initiale = duree

self.duree_restante = duree

def __repr__(self):

return '<t' + str(self.numero) + '>'

1.

Donner le code Python qui permet d'instancier deux variables tache1 et tache2 représentant les tâches:

tâche numéro 1: Répondre aux e-mails. Durée estimée: 45 minutes.

tâche numéro 2: Ranger ma chambre. Durée estimée: 60 minutes.

On supposera dans la suite que les variables tache1, tache2,..., tache7 représentent les tâches établies par Alice lors de la phase de planification.

La méthode __repr__ renvoie une représentation de l'instance sous forme d'une chaîne de caractères. La fonction print utilise cette méthode. Ainsi on a:

>>> print(tache1)

<t1>

2.

Recopier et compléter le code de la méthode avancer de la classe Tache qui permet d'avancer la tâche self de n minutes.

def avancer(self, n):

3.

Recopier et compléter le code de la méthode est_terminee de la classe Tache qui renvoie True si la tâche est terminée, ou False sinon.

def est_terminee(self):

Énoncé: Exercice 2 - Programmation orientée objet · Bac Numérique et Sciences Informatiques Métropole 2025 (sujet 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Donner le code Python qui permet d'instancier deux variables tache1 et tache2 représentant les tâches :

Réponse : ```python tache1 = Tache(1, "Répondre aux e-mails", 45) tache2 = Tache(2, "Ranger ma chambre", 60) ```

2. Recopier et compléter le code de la méthode avancer de la classe Tache qui permet d'avancer la tâche self de n minutes.

Réponse : ```python self.duree_restante -= n ``` ```python self.duree_restante = self.duree_restante - n ```

La réponse de la question restante 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 1 - Programmation orientée objet · Métropole 2026 (sujet 2) · Exercice 2 - Partie C · Métropole 2 remplacement 2025 ›

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