Vous passez le bac de NSI cette année et souhaitez vous entraîner sur des annales ? Vous êtes au bon endroit : voici le corrigé complet du bac de NSI 2025 !
![[Bac NSI 2025] - Corrigé des exercises](/_next/image?url=https%3A%2F%2Fncd1.msnocookie.com%2Fimage%2Fms%2Fmsimages%2Fblog_gallery%2Fbac-nsi-2025-corrige-mystudies_87b76dbcf5.jpg&w=640&q=75)
Préparez les épreuves du bac avec un tuteur rédacteur
Sujet complet de l'épreuve disponible ici : https://www.education.gouv.fr/reussir-au-lycee/bac-2025-les-sujets-des-epreuves-ecrites-de-specialite-450514
Exercice 1
Partie A
1. L’attribut num_ser ne peut pas être une clé primaire car il ne peut pas être présent en double.
2. Voici le résultat de la requête :
ID | Marque | Modèle | Année | Num_ser | Prix |
1 | Gibson | Les Paul Goldtop | 1956 | @70562 | 100000 |
7 | Fender | Stratocaster | 1956 | 001359 | 200000 |
3. SELECT annee
FROM inventaire
WHERE modele= « Les Paul Standard » ;
4. SELECT modele
FROM inventaire
WHERE marque= « Gibson »
ORDER BY année ASC ;
5. UPDATE inventaire
SET année = 1957
WHERE id = 1 ;
Partie B
6. Il faut d’abord créer la marque, puis le modèle et enfin la guitare puisque la guitare utilise #id_modele et le modèle utilise #id marque.
7. SELECT g.num_ser, g_annee
FROM guitare g
JOIN modele m ON g.id_modele=m.id
WHERE m.nom= « Les Paul Standard » ;
8. DELETE FROM guitare
WHERE id = 3 ;
9. Voici les différentes requêtes SQL à effectuer (dans l’ordre) :
INSERT INTO marque (id, nom)
VALUES (3, « BC Rich ») ;
INSERT INTO modele (id, nom, id_marque)
VALUES (5, « Mockingbird », 3) ;
INSERT INTO guitare (id, id_modele, annee, num_ser, prix)
VALUES (9, 5, 1992, '92R', 5000) ;
10.
SELECT SUM(g.prix) AS valeur_totale
FROM guitare g
JOIN modele m ON g.id_modele = m.id
WHERE m.nom = « Stratocaster »;
Exercice 2
1. tache1 = Tache(1, « Répondre aux e-mails. », 45)
tache2 = Tache(2, « Ranger ma chambre. », 60)
2. def avancer (self, n) :
self.duree_restante -= n
(Équivalent à : self.duree_restante = self.duree_restante -n)
3. def est_terminee(self) :
return self.duree_restante <= 0
4. On aura : [début] (
5. La valeur de f.defiler()[0] sera
6. La valeur de f.examiner()[1] sera 4 et le contenu de la file : [début] (
7. def ajouter_file_prio(f, t, p) :
f_aux = File()
while (not f.est_vide()) and (f.examiner()[1] >=p) :
f_aux.enfiler(f.defiler())
f_aux.enfiler((t, p))
while not f.est_vide() :
f_aux.enfiler(f.defiler())
while not f_aux.est_vide() :
f.enfiler(f_aux.defiler())
8. Dans le pire des cas, le coût d’exécution temporel sera O(m) avec m le nombre d’éléments dans la file f.
9.
Bloc de 25 minutes | Numéro tâche |
1 | 3 |
2 | 7 |
3 | 3 |
4 | 3 |
5 | 3 |
6 | 1 |
7 | 2 |
8 | 1 |
9 | 2 |
10 | 2 |
11 | 6 |
12 | 6 |
13 | 6 |
14 | 4 |
15 | 5 |
16 | 4 |
17 | 5 |
10.
def planning(file) :
result = []
while not file.est_vide() :
t, p = file.defiler()
result.append(t)
t.avancer(25)
if not t.est_terminee() :
ajouter_file_prio(f, t, p)
return result
Exercice 3
Partie A
1. Les deux IP valides sont 192.168.20.2 et 192.168.20.157.
2. Son adresse de diffusion est 192.168.20.255.
3. Il y a 3 bornes de commandes + les 3 adresses réservées (routeur, broadcats et .0) font qu’il reste seulement 2^8 – 6 = 250 machines au maximum.
4. Pour encoder les 8 adresses, on utilise 3 bits. Il peut donc y avoir 32 – 3 soit 29 bits pour le masque de sous réseau.
Partie B
5.
Réseau destination | Interface de sortie | Prochain routeur | Nombre de sauts |
192.168.30.0 | 172.16.3.1 | 172.16.3.2 | 2 |
172.16.1.0 | 172.16.4.1 | 172.16.4.2 | 1 |
6. Le réseau pouvant être atteint d’une manière différente est 192.168.10.0 en passant par le routeur 172.16.4.2 (avec 2 « sauts »).
7.
Réseau destination | Interface de sortie | Prochain routeur |
autre | 172.16.3.1 | 172.16.3.1 |
Partie C
8. Ethernet : 10^9/10^7 = 100
Fast Ethernet : 10^9/10^8 = 10
Fibre optique : 10^9 /10^9 = 1
9. La route avec le coût minimal fait 1 -> 2 -> 3 -> 4.
Son coût serait donc de 10 + 10 + 1 = 21.
Partie D
10.
Ip_bin(« 192.168.20.12 ») va renvoyer : 11000000.10101000.00010100.00001100
11.
La dernière instruction return ne s’exécutera seulement lorsque tout le code aura été exécuter : cela signifie que les deux adresses ip sont identiques.
12.
def precede(ip_1, ip_2) :
for i in range(35) :
if ip_1[i] < ip_2[i] :
return True
elif ip_1[i] > ip_2[i] :
retrun False
return False
13.
self.passerelle est un attribut tandis que self.est_vide() est une méthode de la classe Abr.
14.
A la ligne 14, on a : return self.adresse_ip == «».
15.
L’utilité d’un arbre binaire de recherche pour représenter une table de routage est qu’il permet de rechercher très rapidement une adresse IP. C’est très utile quand il y a beaucoup de données à traiter.
16.
Voici le code réécrit en évitant la répétition :
def modifie(self, adresse_ip, interface, passerelle, cout) :
if self.est_vide() :
self.gauche = Abr(« », « », « », 0)
self.droite = Abr(« », « », « », 0)
self.adresse_ip = adresse_ip
self.interface = interface
self.passerelle = passerelle
self.cout = cout
17.
elif precede(ip_bin(adresse_ip), ip_bin(self.adresse_ip)) :
Autres corrigés de bac et autres exemples d'exercices corrigés
- [Bac EPPCS 2025] - Corrigé : dissertation - Le sport adapté favorise-t-il l'inclusion et le bien-être des personnes en situation de handicap ?
- [Bac EPPCS 2025] - Corrigé : étude de documents - Sujet 2 - faire progresser les sportifs avec les nouvelles technologies
- [Bac HGGSP 2025] - Corrigé Étude critique de documents - Juger les génocides
- MyStudies vous accompagne tout au long du lycée pour réussir le bac avec des fiches, des exemples de grand oral, des exercices corrigés
Besoin d'un tuteur ? Nous pouvons vous aider !
Obtenir de l'aide pour mon devoirMyStudies, le site qui t'aide à réviser
Fiches de révision instantanées, quiz personnalisés et entraînement sur mesure pour réussir tes examens, oraux et présentations.
Demande à l'assistant IA
Obtiens des explications et de l’aide pour progresser avec confiance.
Poser une questionCrée des fiches de révision
Apprends plus facilement avec des fiches claires et structurées.
Créer mes fiches