Retour
2024

2024 Metropole Juin Sujet 1

Session 2024
Durée : 3h30
3 Exercices
"Sujet officiel."

EXERCICE 1 : (6 points)

Thème : NSI
6 points
(6 points) Cet exercice porte sur la programmation objet en Python et les graphes. Nous avons représenté sous la forme d’un graphe les liens entre cinq différents sites Web : Figure 1. Graphe avec 5 sites La valeur de chaque arête représente le nombre de citations (de liens hypertextes) d’un site vers un autre. Ainsi, le site site4 contient 6 liens hypertextes qui renvoient vers le site site5. Les sites sont représentés par des objets de la classe Site dont le code est partiellement donné ci-dessous. La complétion de la méthode calculPopularite fera l’objet d’une question ultérieure 1 class Site: 2 3 def __init__(self, nom): 4 self.nom = nom 5 self.predecesseurs = [] 6 self.successeurs = [] 7 self.popularite = 0 8 self.couleur = 'blanche' 9 10 def calculPopularite(self): 11 ... 24-NSIJ1ME1 Page : 3 / 15 Le graphe précédent peut alors être représenté ainsi : 1 # Description du graphe 2 s1, s2, s3, s4, s5 = Site('site1'), Site('site2'), Site('site3'), Site('site4'), Site('site5') 3 s1.successeurs = [(s3,3), (s4,1), (s5,3)] 4 s2.successeurs = [(s1,4), (s3,5), (s4,2)] 5 s3.successeurs = [(s5, 3)] 6 s4.successeurs = [(s1,2), (s5,6)] 7 s5.successeurs = [(s3,4)] 8 s1.predecesseurs = [(s2,4), (s4,2)] 9 s2.predecesseurs = [] 10 s3.predecesseurs = [(s1,3), (s2,5), (s5,4)] 11 s4.predecesseurs = ... 12 s5.predecesseurs = ...
1
Voir le sujet complet pour les détails.

EXERCICE 2 : (6 points)

Thème : NSI
6 points
(6 points) Cet exercice traite de protocoles de routage, de sécurité des communications et de base de données relationnelle. Une agence de voyage propose des croisières en bateau. Chaque croisière a un nom unique et passe par quatre escales correspondant à des villes qui ont elles aussi des noms différents. Pour gérer les réservations de ses clients, l’agence utilise une base de données. Voici la description des trois relations de cette base dont les clés primaires ont été soulignées et les clés étrangères indiquées par un # : Remarque : l’énoncé de cet exercice utilise tout ou une partie des mots suivants du langage SQL : SELECT, FROM, WHERE, JOIN ON, INSERT INTO, VALUES, UPDATE SET, OR, AND. Partie A L’agence de voyage possède deux bureaux distincts. Elle passe par un prestataire de service qui héberge sa base de données et utilise un système de gestion de base de données relationnelle. Vous trouverez ci-après un schéma du réseau entre les deux bureaux de l’agence de voyage et le prestataire. On peut y voir les différents routeurs (nommés de A à I) ainsi que le coût des liaisons entre eux. 24-NSIJ1ME1 Page : 7 / 15 Figure 1. Topologie du réseau
1
Voir le sujet complet pour les détails.

EXERCICE 3 : (8 points)

Thème : NSI
8 points
(8 points) Cet exercice porte sur la programmation orientée objet, sur les arbres binaires de recherche et la récursivité. Chaque année, plusieurs courses de chiens de traîneaux sont organisées sur les terrains enneigés. L’une d’elle, La Traversée Blanche, est une course se déroulant en 9 étapes. L’organisateur de cette course est chargé de créer un programme Python pour aider à la bonne gestion de l’événement. Partie A : la classe Chien Afin de caractériser un chien, l’organisateur décide de créer une classe Chien avec les attributs suivants : • id_chien, un nombre entier correspondant au numéro attribué au chien lors de son inscription à la course ; • nom, une chaîne de caractères correspondant au nom du chien ; • role, une chaîne de caractères correspondant au poste occupé par le chien : en fonction de sa place dans l’attelage, un chien a un rôle bien défini et peut être 'leader', 'swing dog', 'wheel dog' ou 'team dog'. • id_proprietaire, un nombre entier correspondant au numéro de l’équipe. Le code Python incomplet de la classe Chien est donné ci-dessous. 1 class Chien: 2 def __init__(self, id_chien, nom, role, id_prop): 3 self.id_chien = id_chien 4 self.nom = nom 5 self.role = role 6 self.id_proprietaire = id_prop 7 def changer_role(self, nouveau_role): 8 """Change le rôle du chien avec la valeur passée en paramètre.""" 9 ... 24-NSIJ1ME1 Page : 10 / 15 Voici un extrait des informations dont on dispose sur les chiens inscrits à la course. Chiens inscrits à la course id_chien nom role id_proprietraire 40 Duke wheel dog 10 41 Sadie team dog 10 42 Zeus swing dog 11 43 Roxie swing dog 11 44 Scout team dog 11 45 Ginger team dog 11 46 Helka team dog 11 Suite aux inscriptions, l’organisateur procède à la création de tous les objets de type Chien et les stocke dans des variables en choisissant un nom explicite. Ainsi, l’objet dont l’attribut id_chien a pour valeur 40 est stocké dans la variable chien40.
1
Voir le sujet complet pour les détails.