Exercice 2 - Programmation orientée objet · Bac Numérique et Sciences Informatiques Amérique du Nord 2026 (jour 2)

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

Énoncé

Exercice 2 (6 points)

Cet exercice porte sur la programmation Python en général, la programmation orientée objet en particulier et la structure de données d'arbre.

La WTA (Women’s Tennis Association) est l’instance dirigeante du tennis professionnel international féminin, responsable de l’organisation du circuit « WTA Tour » et de l’établissement des classements mondiaux des joueuses. Dans cet exercice, on ne considère que des matchs de tennis en simple, c’est-à-dire des matchs qui opposent uniquement deux joueuses.

Partie A

On dispose d’une classe Joueuse pour modéliser une joueuse de tennis professionnelle du circuit WTA.

class Joueuse:

def __init__(self, nom, prenom, pays, age, point):

''' nom, prenom et pays sont de type str,

age et point de type int '''

self.nom = nom

self.prenom = prenom

self.pays = pays

self.age = age

# nombre de points WTA

self.point = point

# nombre de victoires

self.victoire = 0

# nombre de défaites

self.defaite = 0

On considère les objets déjà instanciés gauff, paloni, sabalenka et swiatek de la classe Joueuse représentant respectivement les joueuses:

Gauff Coco, américaine, âgée de 20 ans et ayant 6063 points WTA;

Paloni Marta, espagnole, âgée de 23 ans et ayant 4843 points WTA;

Sabalenka Aryna, biélorusse, âgée de 25 ans et ayant 10541 points WTA;

Swiatek Iga, polonaise, âgée de 22 ans et ayant 7470 points WTA.

1.

Instancier l'objet pegula de la classe Joueuse qui modélise la joueuse Pegula Jessica de nationalité américaine ( "USA"), âgée de 29 ans et ayant 6101 points WTA.

2.

Recopier et compléter le code ci-après de la méthode ajouter_victoire de la classe Joueuse permettant d'ajouter une victoire à la joueuse en question ainsi qu'une défaite à son adversaire objet de la classe Joueuse.

def ajouter_victoire(self, adversaire):

3.

Lors de la finale du dernier tournoi des masters Marta Paloni a été battue par Iga Swiatek.

Écrire une instruction utilisant la méthode ajouter_victoire pour prendre en compte l'issue de ce match.

Un match de tennis se déroule en plusieurs sets, et chaque set en plusieurs jeux. Ayant fixé qui est la joueuse 1 et qui est la joueuse 2, on peut décrire l'issue d'un set à l'aide d'un couple d'entier: le premier entier donne le nombre de jeux gagnés par la joueuse 1 lors de ce set, le second le nombre de jeux gagnés par la joueuse 2 lors de ce set. Le score d'un match est alors décrit par une liste de tuples.

Par exemple, en mai 2024, Swiatek affronte Sabalenka en finale du tournoi « WTA 1000 » de Madrid. Ce match s'est déroulé en 3 sets: 7-5, 4-6, 7-6. Swiatek remporte donc la finale 2 sets à 1. La liste de tuples représentant le score de ce match est [(7,5), (4,6), (7,6)].

Aucun cas d'égalité n'est possible.

Pour automatiser la gestion des tournois on crée une classe Match.

class Match:

def __init__(self, intitule, joueuse1, joueuse2):

self.intitule = intitule

self.joueuse1 = joueuse1

self.joueuse2 = joueuse2

self.gagnante = None

self.perdante = None

self.score = None

Cette classe est constituée de:

self.intitule, un intitulé du match sous la forme d'une chaîne de caractères;

self.joueuse1 et self.joueuse2, représentant les deux joueuses, deux objets de la classe Joueuse;

self.gagnante et self.perdante, représentant la joueuse victorieuse respectivement la joueuse perdante deux objets de la classe Joueuse;

self.score, représentant le score du match sous la forme d'une liste de tuples d'entiers.

Au terme d'un match une fois que le score est connu, on souhaite pouvoir le saisir à l'aide de la méthode resultat_match(self, score) de la classe Match. Cette méthode prend en paramètre un score sous la forme de liste de tuple de deux entiers et:

enregistre le score du match;

détermine la gagnante et la perdante en comptant le nombre de set(s) gagné(s) par chaque joueuse;

ajoute une victoire à la joueuse gagnante et une défaite à la joueuse perdante.

6.

Recopier et compléter le code de la méthode resultat_match de la classe Match. On ajoutera autant de lignes que nécessaire.

def resultat_match(self, score):

self.score = score

nb_set_joueuse1 = 0

nb_set_joueuse2 = 0

Énoncé: Exercice 2 - Programmation orientée objet · Bac Numérique et Sciences Informatiques Amérique du Nord 2026 (jour 2)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Instancier l'objet pegula de la classe Joueuse qui modélise la joueuse Pegula Jessica de nationalité américaine ("USA"), âgée de 29 ans et ayant 6101 points WTA.

Réponse : ```python pegula = Joueuse("Pegula", "Jessica", "USA", 29, 6101) ```

2. Recopier et compléter le code ci-après de la méthode ajouter_victoire de la classe Joueuse permettant d'ajouter une victoire à la joueuse en question ainsi qu'une défaite à son adversaire objet de la classe Joueuse.

Réponse : ```python self.victoire += 1 adversaire.defaite += 1 ```

Les réponses des 2 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 2 - Questions 9 à 11 · Amérique du Nord 2026 (jour 1) · Exercice 2 - Programmation orientée objet · Amérique du Nord 2025 (jour 1) ›

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