Correction Bac Blanc 25 janvier
Exerice 1âïž
1.
Le trajet le plus court est Mp -> Ar -> Ax -> Nc. La distance est de 332km (80 + 76 + 176)
2.
Il y'a deux chemins possibles en passant par 2 villes intermédiaires.
Le plus court en distance : Mp -> Ar -> Ax -> Nc et Mp -> Ar -> Mr -> Nc
3.
Voici la liste d'adjacence
| Python | |
|---|---|
4.
LIFO et FIFO sont des acronymes qui représentent respectivement le fonctionnement des piles et des files. LIFO : Last In, First Out, premier rentré, dernier sorti FIFO : First In, First Out, premier rentré, dernier sorti.
5.
Une file fonctionne selon le principe FIFO.
6.
Le parcours de cette fonction retourne
| Python | |
|---|---|
7.
Ce code effectue un parcours en largeur.
8.
Nous reprenons le parcours en largeur en incrémentant de 1 les distances à chaque voisin d'un sommet. Voici le code de la fonction:
9.
Voici le retour de distance(G, 'Av')
| Python | |
|---|---|
10.
11.
C'est un parcours en profondeur.
Exercice 2âïž
1.
- Le noeud initial est appelé racine
- Un noeud qui nâa pas de fils est appelĂ© feuille
- Un arbre binaire est un arbre dans lequel chaque noeud a au maximum deux fils.
- Un arbre binaire de recherche est un arbre binaire dans lequel tout nĆud est
associé à une clé qui est :
- supĂ©rieure Ă chaque clĂ© de tous les nĆuds de son sous-arbre gauche
- infĂ©rieure Ă chaque clĂ© de tous les nĆuds de son sous-arbre droit
2.
Le parcours préfixe donne: 1 - 0 - 2 - 3 - 4 - 5 - 6
3.
Le parcours suffixe donne : 0 - 1 - 2 - 6 - 5 - 4 - 3
4.
Le parcours infixe donne: 0 - 1 - 2 - 3 - 4 -5 - 6
5.
Voici le code correspondant Ă l'instanciation des abres 1, 2 et 3.
| Python | |
|---|---|
6.
En utilisant la méthdode donnée, nous avons les hauteurs :
arbre_no1 : 5
arbre_no2 : 3
arbre_no3 : 2
7.
Voici le code complété
| Python | |
|---|---|
8.
Erreur: la méthode est est_present et non est_presente.
Le code effectue une recherche dans un ABR en cherchant dans le sous-arbre gauche quand la valeur est strictement inférieure au noued et dans le sous-arbre droit.
Le code qui effectue le moins d'appels rĂ©cursifs est celui qui s'arrĂȘte Ă la prodondeur la plus faible. Ici pour arbre_no3
9.
Le code de est_partiellement_equilibre, indique quâun
arbre est partiellement Ă©quilibrĂ© sâil est vide ou si la diffĂ©rence de hauteur entre son
sous arbre gauche et son sous-arbre droit est comprise entre -1 et 1.
10.
En vérifiant la propriété est_partiellement_equilibre à la racine des 3 arbres, nous avons bien 2 arbres sur 3 partiellement équilibrés :
arbre_no1 : sad().hauteur() : 4, sag().hauteur(): 0, abs(différence) : 4. l'arbre arbre_no1 n'est pas partiellement équilibré.
arbre_no2 : sad().hauteur() : 2, sag().hauteur(): 2, abs(différence) : 0. l'arbre arbre_no2 est partiellement équilibré.
arbre_no3 : sad().hauteur() : 1, sag().hauteur(): 1, abs(différence) : 0. l'arbre arbre_no3 est partiellement équilibré.
11.
Les sous-arbre de gauche, comme celui de doite de l'arbre arbre_no2 ne sont pas eux mĂȘmes partiellement Ă©quilibrĂ©s. Donc l'arbre arbre_no2 n'est pas Ă©quilibrĂ©.
| Text Only | |
|---|---|
1 | |
12.
Voici le code:
Exercice 3 SQLâïž
1.
a. La clé primaire de la relation matchs est id_match
b. La relation matchs possÚde plusieurs clés étrangÚres : id_creneau pointe vers la clé primaire de creneaux,
id_terrain pointe ers la clé primaire de terrains,
id_joueur1 et id_joueur2 qui pointent vers la clé primaire de `joueurs
2.
a. DĂ©terminer le jour et la plage horaire du match entre Durand Belina et Caron Camiliaâïž
Dans la relation matchs, le match 2 oppose les joueuses avec les id_joueurs 2 et 3, il a lieu le 1er août 2020 sur le créneau 3, c'est a dire de 10h à 11h.
b. DĂ©terminer le nom des deux joueurs qui sont les seuls Ă avoir jouĂ© dans le hangarâïž
Pour identifier les joueurs ayant joué uniquement sur le terrain "hangar", nous cherchons le match avec id_terrain 3, c'est le match 5. Donc Dupont Alice et Durand Belina.
3.
a. Ecrire une requĂȘte qui renvoie les prĂ©noms des joueurs dont le nom est âDupontââïž
b. Ecrire une requĂȘte qui modifie le mot de passe de Dorine Dupont, son nouveau mot de passe Ă©tant 1976âïž
4.
Ajouter un nouveau membre
Pour ajouter un nouveau membre « Zora MAGID » avec le login « zora » et le mot de passe 2021, et dans le cas oĂč la clĂ© primaire est auto-incrĂ©mentĂ©e :
| SQL | |
|---|---|
5.
Pour obtenir les jours oĂč Alice Dupont joue :
| SQL | |
|---|---|
Exercice 3 Non SQLâïž
1 a.
A partir de la liste jours, comment obtenir lâĂ©lĂ©ment "lundi" ?
Pour obtenir l'élément "lundi" dans la liste jours, on utilise l'indice 1 :
| Python | |
|---|---|
1 b.
Que renvoie lâinstruction jours[18%7] ?
L'instruction 18 % 7 renvoie 4 (le reste de la division de 18 par 7). Ainsi, jours[18%7] renvoie l'élément à l'indice 4 dans la liste jours, soit "jeudi".
2.
ComplĂ©ter lâinstruction permettant dâobtenir le numĂ©ro du jour de la semaine n jours plus tardâïž
L'instruction complĂšte est :
| Python | |
|---|---|
3.
a. A partir du dictionnaire mois, comment obtenir le nombre de jours du mois de mars ?âïž
Pour obtenir le nombre de jours du mois de mars, on utilise la clé 3 et accÚde au deuxiÚme élément du tuple :
| Python | |
|---|---|
b. Obtenir le nom du mois quâil sera x mois plus tardâïž
Pour obtenir le nom du mois quâil sera x mois plus tard :
| Python | |
|---|---|
Explications :âïž
(numero_mois + x - 1)ajuste pour les indices 1 à 12.% 12permet de boucler sur l'année.+ 1recentre sur la plage 1 à 12.[0]récupÚre le nom du mois.
Exemple :âïž
| Python | |
|---|---|
4.
a. Que renvoie mois[date[2]][1] si date = ("samedi", 21, 10, 1995) ?âïž
L'instruction mois[date[2]][1] accÚde au nombre de jours du mois d'octobre (clé 10) dans le dictionnaire mois. Elle renvoie : 31
b. Fonction jour_suivant(date)âïž
Voici le code de la fonction jour_suivant :