[latex]
Bac General
Centre d’examen : Metropole
Matiere : NSI
Annee : 2026
Session : Normale
Duree : 3 heures 30
Repere : 26-NSIJ2ME1
Calculatrice : non autorisée
Le sujet comporte trois exercices indépendants.
Exercice 1 (6 points) – Réseaux et programmation orientée objet
Une entreprise dispose d’une infrastructure réseau répartie sur plusieurs sites interconnectés par des routeurs R1 à R5. L’exercice porte sur :
– Configuration d’adresses IPv4 (format IP/S avec masque de sous-réseau)
– Protocoles de routage RIP (minimise le nombre de sauts) et OSPF (minimise la somme des coûts selon la formule Coût = 10^8/Débit)
– Calcul d’adresses réseau et broadcast pour le réseau 172.16.2.1/16
– Complétion de tables de routage
– Détermination de chemins entre routeurs selon les protocoles
– Calcul de coûts OSPF pour différents types de connexion (Ethernet 10^7 bit/s, Fast Ethernet 10^8 bit/s, Fibre 10^9 bit/s)
– Implémentation Python d’une classe Routage avec gestion de capacité maximale de routes
– Méthodes ajouter (avec vérification de capacité) et afficher pour gérer les routes
Exercice 2 (6 points) – Mise au point de programmes et graphes
Le jeu du taquin : 15 tuiles numérotées dans une grille 4×4. L’exercice couvre :
Partie A – Mélange aléatoire
– Représentation d’une grille par une liste de listes Python
– Correction de bugs dans la création de listes avec range()
– Utilisation correcte de random.shuffle (fonction modifiant en place)
– Fonction en_grille convertissant une liste aplatie en grille n×n avec assertion de vérification
– Correction d’erreurs d’indexation (inversion lignes/colonnes)
Partie B – Grille résoluble
– Calcul du nombre d’inversions dans une liste aplatie (couples (i,j) avec i
– Calcul de la distance Manhattan de la tuile vide à sa position finale
– Critère de résolution : somme (inversions + distance) paire
– Correction de la fonction compte_inversions (condition i – Fonction distance_tuile_vide calculant la distance de la tuile 16 – Fonction est_resoluble utilisant l’opérateur modulo Partie C – Mélange réaliste – Représentation par graphe des déplacements possibles – Liste d’adjacence pour un taquin 3×3 (9 sommets) – Fonction melange_graphe effectuant nb_dep déplacements aléatoires avec random.choice – Échange de la tuile vide avec ses voisins selon le graphe Exercice 3 (8 points) – Bases de données et structures de file/graphe Partie A – Base de données de covoiturage Schéma relationnel avec trois tables : – utilisateur(id_utilisateur, nom, prenom) – trajet(id_trajet, depart, arrivee, heure, nb_places, #conducteur) – inscription(#trajet, #passager) Requêtes SQL : – SELECT avec WHERE, AND, OR pour filtrer les trajets du 19/06/2026 – COUNT pour compter les passagers inscrits – ORDER BY pour trier par heure – INSERT INTO pour ajouter un trajet – UPDATE pour modifier l’heure d’un trajet – DELETE avec contrainte d’intégrité référentielle (erreur foreign key) – JOIN pour obtenir noms et prénoms des passagers transportés par un conducteur Partie B – Graphe des points de rendez-vous – Graphe avec sommets A, M, C, V (domiciles) et P1, P2, P3 (points de rendez-vous) – Représentation par dictionnaire Python {sommet: [voisins]} – Fonction dico_distance calculant toutes les distances depuis un sommet de départ – Implémentation d’une file (FIFO) avec classe File – Méthodes : __init__, est_vide, inserer, extraire, consulter – Parcours en largeur (BFS) du graphe – Calcul de l’excentricité d’un sommet (distance maximale vers les autres sommets) – Détermination du meilleur point de rendez-vous par excentricité minimale
