Exercices du Bac
📝 Exercice 2
Exercice 2 Partie A du sujet Métropole Septembre 2022
Correction Q1.a
La liste v contient 5 éléments.
Correction Q1.b
v[1].nom() renvoie Les goélands.
la classe Villa possède un attribut nom ET une méthode nom(). Ceci est affreux et provoquerait une erreur lors de l'appel à la méthode nom().
Correction Q1.c
Pythondef surface(self):
return self.sejour.sup + self.ch1.sup + self.ch2.sup
Correction Q2
Pythonfor villa in v:
if villa.eqCuis == 'eq':
print(villa.nom)
ou bien, en utilisant les getters,
Pythonfor villa in v:
if villa.equip() == 'eq':
print(villa.nom())
Exercice 3
Exercice 5 du sujet Métropole J1 2022
Correction Q1
Instruction 3 : ```joueur1 = Joueur('Sniper', 319, 'A')
Correction Q2.a
| Python |
|---|
| def redevenir_actif(self):
if self.est_actif == False:
self.est_actif = True
|
ou mieux :
| Python |
|---|
| def redevenir_actif(self):
if not self.est_actif:
self.est_actif = True
|
Correction Q2.b
| Python |
|---|
| def nb_tirs_recus(self):
return len(self.liste_id_tirs_recus)
|
Correction Q3.a
Le test est le test 1.
Correction Q3.b
Si un joueur a été touché par un tir allié, son score diminue de 20 points.
Correction Q4
| Python |
|---|
| if participant.est_determine() == True:
self.incremente_score(40)
|
ou mieux :
| Python |
|---|
| if participant.est_determine():
self.incremente_score(40)
|
Exercice 4
Exercice 2 du sujet La Réunion J1 2022
Correction Q1.a
| Python |
|---|
| i = 0
while i < len(Mousse) and Mousse[i] != None:
i += 1
return i
|
Correction Q1.b
| Python |
|---|
| def placeBulle(B):
i = donnePremierIndiceLibre(Mousse)
if i != 6:
Mousse[i] = B
|
Correction Q2
| Python |
|---|
| def bullesEnContact(B1,B2):
return distanceEntreBulles(B1, B2) <= B1.rayon + B2.rayon
|
Correction Q3
| Python |
|---|
| def collision(indPetite, indGrosse, Mousse) :
\"\"\"
Absorption de la plus petite bulle d’indice indPetite
par la plus grosse bulle d’indice indGrosse. Aucun test
n’est réalisé sur les positions.
\"\"\"
# calcul du nouveau rayon de la grosse bulle
surfPetite = pi * Mousse[indPetite].rayon**2
surfGrosse = pi * Mousse[indGrosse].rayon**2
surfGrosseApresCollision = surfPetite + surfGrosse
rayonGrosseApresCollision = sqrt(surfGrosseApresCollision/pi)
#réduction de 50% de la vitesse de la grosse bulle
Mousse[indGrosse].dirx = 0.5 * Mousse[indGrosse].dirx
Mousse[indGrosse].diry = 0.5 * Mousse [indGrosse].diry
#suppression de la petite bulle dans Mousse
Mousse[indPetite] = None
|
exercice 5
Exercice 3 (partie A et B) du sujet Métropole J1 2024
Partie A
Correction Q1
Pythonchien40 = Chien(40, 'Duke', 'wheel dog', 10)
Correction Q2
| Python |
|---|
| def changer_role(self, nouveau_role):
self.role = nouveau_role
|
Correction Q3
Pythonchien40.changer_role('leader')
Partie B
Correction Q4
```python linenums='1'
def retirer_chien(self, numero):
nouvelle_liste = []
for chien in self.liste_chiens:
if chien.id_chien != numero:
nouvelle_liste.append(chien)
self.liste_chiens = nouvelle_liste
Correction Q5
Pythoneq11.retirer_chien(46)
Correction Q6
convert('4h36') va renvoyer le nombre 4.6
Correction Q7
| Python |
|---|
| def temps_course(equipe):
total = 0
for temps in equipe.liste_temps:
total += convert(temps)
return total
|
ou mieux :
| Python |
|---|
| def temps_course(equipe):
return sum([convert(t) for t in equipe.liste_temps])
|