Exercices du Bac

Exercice 1

Exercice 14.2 de la BNS 2024.

📝 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
Python
def surface(self):
    return self.sejour.sup + self.ch1.sup + self.ch2.sup
Correction Q2
Python
for villa in v:
    if villa.eqCuis == 'eq':
        print(villa.nom)

ou bien, en utilisant les getters,

Python
for 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
1
2
3
def redevenir_actif(self):
    if self.est_actif == False:
        self.est_actif = True
ou mieux :
Python
1
2
3
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
1
2
3
4
i = 0
while i < len(Mousse) and Mousse[i] != None:
    i += 1
return i
Correction Q1.b
Python
1
2
3
4
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 dindice indPetite
    par la plus grosse bulle dindice indGrosse. Aucun test
    nest 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
Python
chien40 = Chien(40, 'Duke', 'wheel dog', 10)
Correction Q2
Python
def changer_role(self, nouveau_role):
    self.role = nouveau_role
Correction Q3
Python
chien40.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
Python
eq11.retirer_chien(46)
Correction Q6

convert('4h36') va renvoyer le nombre 4.6

Correction Q7

Python
1
2
3
4
5
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])