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 ;

MyStudies vous accompagne tout au long du lycée : corrigé du bac, rédaction de dissertation, relecture d'analyse, envoi de document

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] (, 4) (, 4) (, 3) (, 3) (, 2) (, 1) (, 1) [fin]

5.     La valeur de f.defiler()[0] sera  et le contenu de la file après : [début] (, 3) (, 3) (, 1) (, 1) [fin]

6.     La valeur de f.examiner()[1] sera 4 et le contenu de la file : [début] (, 4) (, 3) (, 3) (, 1) (, 1) [fin]

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