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








