Docsity
Docsity

Prépare tes examens
Prépare tes examens

Étudies grâce aux nombreuses ressources disponibles sur Docsity


Obtiens des points à télécharger
Obtiens des points à télécharger

Gagnz des points en aidant d'autres étudiants ou achete-les avec un plan Premium


Guides et conseils
Guides et conseils

Sujet BAC 2024 NSI jour 1, maturité tests effectués de Informatique

Sujet officiel du baccalauréat 2024 en FRANCE Métropole (NSI jour 1)

Typologie: maturité tests effectués

2023/2024

Téléchargé le 19/06/2024

evan-sarrazin
evan-sarrazin 🇫🇷

Aperçu partiel du texte

Télécharge Sujet BAC 2024 NSI jour 1 et plus maturité tests effectués au format PDF de Informatique sur Docsity uniquement! 24-NSIJ1ME1 Page : 1 / 15 BACCALAURÉAT GÉNÉRAL ÉPREUVE D’ENSEIGNEMENT DE SPÉCIALITÉ SESSION 2024 NUMÉRIQUE ET SCIENCES INFORMATIQUES ÉPREUVE DU MERCREDI 19 JUIN 2024 Durée de l’épreuve : 3 heures 30 L’usage de la calculatrice n’est pas autorisé. Dès que ce sujet vous est remis, assurez-vous qu’il est complet. Ce sujet comporte 15 pages numérotées de 1 / 15 à 15 / 15 Le sujet est composé de trois exercices indépendants. Le candidat traite les trois exercices. 24-NSIJ1ME1 Page : 2 / 15 EXERCICE 1 (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 : 5 / 15 On cherche maintenant le site le plus populaire, celui dont la valeur de popularité est la plus grande. Voici le code de la fonction qui renvoie le site le plus populaire, elle prend comme argument une liste non vide contenant des instances de la classe Site. 1 def lePlusPopulaire(listeSites): 2 maxPopularite = 0 3 siteLePlusPopulaire=listeSites[0] 4 for site in listeSites: 5 if site.popularite > maxPopularite: 6 ... 7 ... 8 return siteLePlusPopulaire 9. Copier et compléter les lignes 6 et 7 de cette fonction. 10. Donner ce que renvoie la ligne de code suivante : lePlusPopulaire(parcoursGraphe(s1)).nom 11. On envisage d’utiliser l’ensemble des fonctions proposées ci-dessus pour rechercher le site le plus populaire parmi un très grand nombre de sites (quelques milliers de sites). Expliquer si ce code est adapté à une telle quantité de sites à traiter. Justifier votre réponse. 24-NSIJ1ME1 Page : 6 / 15 EXERCICE 2 (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. Donner deux services rendus par un système de gestion de bases de données relationnelles. Le protocole RIP (Routing Information Protocol) est un protocole de routage qui minimise le nombre de routeurs par lesquels les paquets transitent. Le protocole OSPF (Open Shortest Path First) est un protocole de routage qui minimise le coût du transit des paquets. 2. Donner la route suivie par une requête issue du bureau numéro 1 jusqu’au prestataire si on utilise le protocole RIP. 3. Donner les deux routes que pourrait suivre une requête issue du bureau numéro 2 jusqu’au prestataire si on utilise le protocole OSPF. Donner le coût de chaque route. Partie B 4. Expliquer pourquoi l’attribut id_client a été choisi comme clé primaire dans la relation clients. 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. Écrire l’instruction permettant d’instancier l’objet chien40 caractérisant le chien ayant le numéro d’inscription 40. 2. Selon l’état de fatigue de ses chiens ou du profil de l’étape, le musher (nom donné à la personne qui conduit le traîneau) peut décider de changer le rôle des chiens dans l’attelage. Recopier et compléter la méthode changer_role de la classe Chien. 3. Le propriétaire de Duke décide de lui attribuer le rôle de 'leader'. Écrire l’instruction permettant d’effectuer cette modification. Partie B : la classe Equipe On souhaite à présent créer une classe Equipe ayant les attributs suivants : • num_dossard, un nombre entier correspondant au numéro inscrit sur le dossard du musher ; • nom_equipe, une chaîne de caractères correspondant au nom de l’équipe ; • liste_chiens, une liste d’objets de type Chien dont chaque élément correspond à un chien au départ de l’étape du jour ; • temps_etape, une chaîne de caractères (par exemple '2h34') représentant le temps mis par l’équipe pour parcourir l’étape du jour ; • liste_temps, une liste de chaînes de caractères permettant de stocker les temps de l’équipe pour chacune des 9 étapes. Cet attribut peut, par exemple, contenir la liste : ['4h36', '3h57', '3h09', '5h49', '4h45', '3h26', '4h57', '5h52', '4h31']. 24-NSIJ1ME1 Page : 11 / 15 On donne le code Python suivant de la classe Equipe. 1 class Equipe: 2 def __init__(self, num_dossard, nom_equipe): 3 self.num_dossard = num_dossard 4 self.nom_equipe = nom_equipe 5 self.liste_chiens = [] 6 self.temps_etape = '' 7 self.liste_temps = [] 8 9 def ajouter_chien(self, chien): 10 self.liste_chiens.append(chien) 11 12 def retirer_chien(self, numero): 13 ... 14 15 def ajouter_temps_etape(self, temps): 16 self.liste_temps.append(temps) Pour la première étape, le musher de l’équipe numéro 11, représentée en Python par l’objet eq11, décide de constituer une équipe avec les quatre chiens identifiés par les numéros 42, 44, 45 et 46. On donne ci-dessous les instructions Python permettant de créer l’équipe eq11 et l’attelage constitué des 4 chiens précédents. 1 eq11 = Equipe(11, 'Malamutes Endurants') 2 eq11.ajouter_chien(chien42) 3 eq11.ajouter_chien(chien44) 4 eq11.ajouter_chien(chien45) 5 eq11.ajouter_chien(chien46) Malheureusement, le musher s’aperçoit que sa chienne Helka, chien numéro 46, n’est pas au mieux de sa forme et il décide de la retirer de l’attelage. 4. Recopier et compléter la méthode retirer_chien ayant pour paramètre numero, un entier correspondant au numéro attribué au chien lors de l’inscription, et permettant de mettre à jour l’attribut liste_chiens après retrait du chien dont la valeur de l’attribut id_chien est numero. 5. En vous aidant de la fonction précédente, écrire l’instruction qui permet de retirer Helka de l’attelage de l’équipe eq11. On donne à présent le code Python d’une fonction convert prenant pour paramètre chaine, une chaîne de caractères représentant une durée, donnée en heure et minute. On supposera que cette durée est toujours strictement inférieure à 10 heures, temps maximal fixé par le règlement pour terminer une étape. 1 def convert(chaine): 2 heure_dec = int(chaine[0]) + int(chaine[2] + chaine[3])/60 3 return heure_dec 24-NSIJ1ME1 Page : 12 / 15 6. Indiquer le résultat renvoyé par l’appel convert('4h36'). 7. Écrire une fonction temps_course qui prend pour paramètre equipe de type Equipe et qui renvoie un nombre flottant correspondant au cumul des temps de l’équipe equipe à l’issue des 9 étapes de la course. On rappelle que la classe Equipe dispose d’un attribut liste_temps. Partie C : classement à l’issue d’une étape Chaque jour, à la fin de l’étape, on décide de construire un Arbre Binaire de Recherche (ABR) afin d’établir le classement des équipes. Chaque nœud de cet arbre est un objet de type Equipe. Dans cet arbre binaire de recherche, en tout nœud : • toutes les équipes du sous-arbre gauche sont strictement plus rapides que ce nœud ; • toutes les équipes du sous-arbre droit sont moins rapides ou sont à égalité avec ce nœud. Voici les temps, en heure et minute, relevés à l’issue de la première étape : Temps à l’arrivée de la première étape Equipe eq1 eq2 eq3 eq4 eq5 eq6 eq7 eq8 eq9 eq10 eq11 Temps 4h36 3h57 3h09 5h49 4h45 3h26 4h51 5h52 4h31 3h44 4h26 Dans l’arbre binaire de recherche initialement vide, on ajoute successivement, dans cet ordre, les équipes eq1, eq2, eq3, …, eq11, 11 objets de la classe Equipe tous construits sur le même modèle que l’objet eq11 précédent. 8. Dans l’arbre binaire de recherche ci-dessous, les nœuds eq1 et eq2 ont été insérés. Recopier et compléter cet arbre en insérant les 9 nœuds manquants. Figure 1. Premiers éléments de l’ABR 9. Indiquer quel parcours d’arbre permet d’obtenir la liste des équipes classées de la plus rapide à la plus lente.
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved