Exercice 4 · Bac Numérique et Sciences Informatiques Asie 2022 (jour 1)

Thème : Programmation orientée objet : classes, attributs, méthodes · Tiré du sujet Jour 1 (2022)

Énoncé

Exercice 4

Thème abordé: programmation objet en langage Python

Un fabricant de brioches décide d'informatiser sa gestion des stocks. Il écrit pour cela un programme en langage Python. Une partie de son travail consiste à développer une classe Stock dont la première version est la suivante:

class Stock:

def __init__(self):

self.qt_farine = 0 # quantité de farine initialisée à 0 g

self.nb_oeufs = 0 # nombre d'œufs (0 à l'initialisation)

self.qt_beurre = 0 # quantité de beurre initialisée à 0 g

1.

Écrire une méthode ajouter_beurre(self, qt) qui ajoute la quantité qt de beurre à un objet de la classe Stock.

def ajouter_beurre(self, qt):

On admet que l'on a écrit deux autres méthodes ajouter_farine et ajouter_oeufs qui ont des fonctionnements analogues.

2.

Écrire une méthode afficher(self) qui affiche la quantité de farine, d'œufs et de beurre d'un objet de type Stock. L'exemple ci-dessous illustre l'exécution de cette méthode dans la console:

>>> mon_stock = Stock()

>>> mon_stock.afficher()

farine: 0

oeuf: 0

beurre: 0

>>> mon_stock.ajouter_beurre(560)

>>> mon_stock.afficher()

farine: 0

oeuf: 0

beurre: 560

def afficher(self):

3.

Pour faire une brioche, il faut 350 g de farine, 175 g de beurre et 4 œufs. Écrire une méthode stock_suffisant_brioche(self) qui renvoie un booléen: VRAI s'il y a assez d'ingrédients dans le stock pour faire une brioche et FAUX sinon.

def stock_suffisant_brioche(self):

4.

On considère la méthode supplémentaire produire(self) de la classe Stock donnée par le code suivant:

def produire(self):

res = 0

while self.stock_suffisant_brioche():

self.qt_beurre = self.qt_beurre - 175

self.qt_farine = self.qt_farine - 350

self.nb_oeufs = self.nb_oeufs - 4

res = res + 1

return res

On considère un stock défini par les instructions suivantes:

>>> mon_stock=Stock()

>>> mon_stock.ajouter_beurre(1000)

>>> mon_stock.ajouter_farine(1000)

>>> mon_stock.ajouter_oeufs(10)

a.

On exécute ensuite l'instruction >>> mon_stock.produire().

b.

On exécute ensuite l'instruction >>> mon_stock.afficher(). Que s'affiche-t-il dans la console ?

5.

L'industriel possède nn lieux de production distincts et donc nn stocks distincts. On suppose que ces stocks sont dans une liste dont chaque élément est un objet de type Stock. Écrire une fonction Python nb_brioches(liste_stocks) possédant pour unique paramètre la liste des stocks et renvoie le nombre total de brioches produites.

def nb_brioches(liste_stocks):

Énoncé: Exercice 4 · Bac Numérique et Sciences Informatiques Asie 2022 (jour 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Écrire une méthode ajouter_beurre(self, qt) qui ajoute la quantité qt de beurre à un objet de la classe Stock.

Réponse : ```python self.qt_beurre = self.qt_beurre + qt ``` ```python self.qt_beurre += qt ```

2. Écrire une méthode afficher(self) qui affiche la quantité de farine, d'œufs et de beurre d'un objet de type Stock.

Réponse : ```python print("farine:", self.qt_farine) print("oeuf:", self.nb_oeufs) print("beurre:", self.qt_beurre) ```

3. Écrire une méthode stock_suffisant_brioche(self) qui renvoie un booléen : VRAI s'il y a assez d'ingrédients dans le stock pour faire une brioche et FAUX sinon.

Réponse : ```python return self.qt_farine >= 350 and self.qt_beurre >= 175 and self.nb_oeufs >= 4 ```

4. a. Quelle valeur s'affiche dans la console ?

Réponse : 2

Les réponses des 3 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 - Partie A · Asie 2024 (jour 1)

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