Exercice 2 · Bac Numérique et Sciences Informatiques La Réunion 2023 (jour 1)
Thème : Programmation orientée objet : classes, attributs, méthodes · Tiré du sujet Jour 1 (2023)
Énoncé
EXERCICE 2 (4 points)
Cet exercice porte sur la programmation orientée objet et les dictionnaires.
Dans le tableau ci-dessous, on donne les caractéristiques nutritionnelles, pour une quantité de 100 grammes, de quelques aliments.
Lait entier UHT
Farine de blé
Huile de tournesol
Énergie (kcal)
65.1
343
900
Protéines (grammes)
3.32
11.7
0
Glucides (grammes)
4.85
69.3
0
Lipides (grammes)
3.63
0.8
100
Figure 1: Caractéristiques nutritionnelles
Pour chaque aliment, on souhaite stocker les informations dans un objet de la classe Aliment définie ci-dessous, où e, p, g et l sont de type float et désignent respectivement les quantités d'énergie, de protéines, de glucides et de lipides de l'aliment.
class Aliment:
def __init__(self, e, p, g, l):
self.energie = e
self.proteines = p
self.glucides = g
self.lipides = l
1.
a.
Écrire, à l'aide du tableau des caractéristiques nutritionnelles de la Figure 1, l'instruction en langage Python pour instancier l'objet lait.
b.
Donner l'instruction qui permet d'obtenir la valeur 65.1 de l'objet lait instancié dans la question précédente.
c.
Une erreur s'est introduite dans le tableau de la Figure 1: la masse de protéines dans le lait est 3.4 au lieu de 3.32.
Donner l'instruction qui modifie la masse de protéines de l'objet lait instancié dans la question 1.a.
2.
On souhaite ajouter une méthode energie_reelle à la classe Aliment qui calcule l'énergie en kcal d'un aliment en fonction d'une masse donnée.
Par exemple:
Pour 245 grammes de lait, l'énergie réelle sera kcal.
L'instruction lait.energie_reelle(245) renvoie alors 159.495.
Recopier et compléter les lignes n°1 et n°2 dans la méthode ci-dessous:
1. def energie_reelle(.........., masse):
2. return................
3.
On regroupe les caractéristiques nutritionnelles du tableau de la Figure 1 dans le dictionnaire suivant, les clés étant des chaînes de caractères donnant le nom de l'aliment et les valeurs associées des objets de la classe Aliment:
nutrition = {'lait': Aliment(65.1, 3.4, 4.85, 3.63),
'farine': Aliment(343, 11.7, 69.3, 0.8),
'huile': Aliment(900, 0, 0, 100)
}
a.
Donner l'instruction qui permet d'obtenir la valeur énergétique en kcal du lait à partir des données de ce dictionnaire.
b.
Donner l'instruction qui permet d'obtenir la valeur énergétique réelle de 220 grammes de lait à partir des données de ce dictionnaire.
4.
Une recette de gâteau (sans œuf) utilise les ingrédients suivants:
230 g de farine;
220 g de lait;
100 g d'huile.
Les quantités d'ingrédients, en grammes, sont regroupées dans le dictionnaire suivant:
recette_gateau = {'lait': 220, 'farine': 230, 'huile': 100}
Écrire, en utilisant la classe Aliment et la méthode energie_reelle, les instructions nécessaires pour calculer l'énergie réelle totale du gâteau.

Corrigé
Corrigé proposé par AprenAI (non officiel)
1. a. Ecrire, à l'aide du tableau des caractéristiques nutritionnelles de la Figure 1, l'instruction en langage Python pour instancier l'objet lait.
Réponse : ```python lait = Aliment(65.1, 3.32, 4.85, 3.63) ```
1. b. Donner l'instruction qui permet d'obtenir la valeur 65.1 de l'objet lait instancié dans la question précédente.
Réponse : ```python lait.energie ```
1. c. Donner l'instruction qui modifie la masse de protéines de l'objet lait instancié dans la question 1.a.
Réponse : ```python lait.proteines = 3.4 ```
2. Recopier et compléter les lignes n°1 et n°2 dans la méthode ci-dessous.
Réponse : ```python def energie_reelle(self, masse): return self.energie * masse / 100 ```
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é.