Bac Général
Classe : Terminale
Centre d’examen : Métropole
Matière : Numérique et Sciences Informatiques
Année : 2022
Session : Normale
Durée de l’épreuve : 3 heures 30
Repère de l’épreuve : 22-NSIJ2ME1
L’usage de la calculatrice n’est pas autorisé.
Le candidat traite au choix 3 exercices parmi les 5 exercices proposés
Chaque exercice est noté sur 4 points.
Exercice 1 (4 points)
Cet exercice porte sur les arbres binaires de recherche, la programmation orientée objet et la récursivité.
Dans cet exercice, la taille d’un arbre est le nombre de nœuds qu’il contient. Sa hauteur est le nombre de nœuds du plus long chemin qui joint le nœud racine à l’une des feuilles (nœuds sans sous-arbres). On convient que la hauteur d’un arbre ne contenant qu’un nœud vaut 1 et la hauteur de l’arbre vide vaut 0.
Exercice 2 (4 points)
Cet exercice porte sur les structures de données.
La poussette est un jeu de cartes en solitaire. Cet exercice propose une version simplifiée de ce jeu basée sur des nombres.
On considère une pile constituée de nombres entiers tirés aléatoirement. Le jeu consiste à réduire la pile suivant la règle suivante : quand la pile contient du haut vers le bas un triplet dont les termes du haut et du bas sont de même parité, on supprime l’élément central.
Exercice 3 (4 points)
Cet exercice porte sur les réseaux et les protocoles de routages.
Rappels :
Une adresse IPv4 est composée de 4 octets, soit 32 bits. Elle est notée a.b.c.d, où a, b, c et d sont les valeurs des 4 octets.
La notation a.b.c.d/n signifie que les n premiers bits de l’adresse IP représentent la partie « réseau », les bits qui suivent représentent la partie « machine ».
L’adresse IPv4 dont tous les bits de la partie « machine » sont à 0 est appelée
« adresse du réseau ».
L’adresse IPv4 dont tous les bits de la partie « machine » sont à 1 est appelée « adresse de diffusion ».
Exercice 4 (4 points)
Cet exercice porte sur les bases de données relationnelles et le langage SQL.
L’énoncé de cet exercice utilise les mots clefs du langage SQL suivants : SELECT, FROM, WHERE, JOIN ON, UPDATE, SET, INSERT INTO VALUES, COUNT, ORDER BY.
• La clause ORDER BY suivie d’un attribut permet de trier les résultats par ordre croissant de l’attribut ;
• COUNT(*) renvoie le nombre de lignes d’une requête ;
Un musicien souhaite créer une base de données relationnelle conten
Exercice 5 (4 points)
SCet exercice aborde la programmation objet et la méthode diviser pour régner.
Un labyrinthe est composé de cellules possédant chacune quatre murs (voir cidessus). La cellule en haut à gauche du labyrinthe est de coordonnées (0, 0). On définit la classe Cellule ci-dessous. Le constructeur possède un attribut murs de type dict dont les clés sont ’N’, ’E’, ’S’ et ’O’ et dont les valeurs sont des booléens (True si le mur est présent et False sinon).