23-NSIZERO-B : Corrigé
Année : 2023
Centre : Sujet Zéro-B
Jour : x
Enoncé :
Exercice 1 (4 points)
ligne de commande sous Linux, traitement de données en tables et bases de données
-
a. Les commandes permettant de se positionner dans
timbresdepuisfichessont : commande 1 et commande 5b. Pour accéder au répertoire
timbresdepuis la racine, on peut écrire :cd /home/document/collections/timbres -
a. On applique la formule \(C = \dfrac{10^8}{d}\) avec \(d = 100\)Mbit/s c'est à dire le coût d'une liaison FastEthernet : \(C = \dfrac{10^8}{100\times 10^6} = 1\). Donc le coût d'une liaison FastEthernet est 1.
b. On a reproduit ci-dessous le schéma du réseau, en faisant figurer le coût des liaisons (le coût d'une liaison FFTH est \(\dfrac{10^8}{10 \times 10^9}=0,01\)) :
Selon le protocole OSPF (minimisation des coûts), le chemin suivi sera donc : A B C E F G pour un coût total de 1,04. -
Les descripteurs de ce fichier sont :
nom_timbreavec pour valeursGustave Eiffel,MarianneetAlan Turing,annee_fabricationavec pour valeurs1950,1989et2021,nom_collectionneuravec pour valeursDupont,Durandet ̀Dupont.
-
a. La clé primaire d'une relation est un attribut (ou ensemble d'attributs) permettant d'identifier de façon unique chaque enregistrement.
b. L'attribut
nomne peut pas servir de clé primaire car il n'est pas unique pour chaque enregistrement. Dans l'exemple proposé plusieurs timbres ont pour nomGustave Eiffel.c. Pour la même raison, l'attribut
annee_fabricationne peut pas servir de clé primaire non plus. Dans l'exemple proposé plusieurs timbres ont pour année de fabrication 1989.d. On peut ajouter un attribut
id_timbrequi est différent pour chaque enregistrement (par exemple en l'incrémentant de 1 à chaque ajout d'un timbre) -
a. Cette requête modifie l'attribut
ref_licenceenYthpswzpour les enregistrements dont l'attributnomestDupond. Après cette requête la relation devient (en italique, les valeurs modifiées):ref_licence nom prenom annee_naissance nbre_timbres Hqdfapo Dupuis Daniel 1953 53 Ythpswz Dupond Jean-Pierre 1961 157 Qdfqnay Zaouï Jamel 1973 200 Aerazri Pierre Jean 1967 130 Ythpswz Dupond Alexandra 1960 61 b. L'attribut
ref_licencene peut plus être une clé primaire puisqu'il est n'est plus unique (la valeurYthpswzapparaît pour deux enregistrement) -
SELECT nom, prenom, nbre_timbres FROM collectionneurs WHERE annee_naissance >= 1963;
Exercice 2 (4 points)
analyse et écriture de programmes récursifs
-
a. Une fonction récursive qui est une fonction qui s'appelle elle-même.
b. La fonction
compte_reboursne fait rien si l'argumentnpassé en paramètre est négatif. Après l'affichage de0,compte_reboursest appelé avec la valeur-1et donc le programme s'arrête. -
def fact(n): """ Renvoie le produit des nombres entiers strictement positifs inférieurs à n """ if n == 0: return 1 else: return n * fact(n-1) -
a. Dans la console l'affichage produit sera :
En effet,3 2 1somme_entiers_rec(3)va afficher 3 et appelersomme_entiers(2)qui va afficher 2 et appelersomme_entiers(1)qui va afficher 1.b. La valeur 6 sera affecté à la variable
res(\(3 + 2 + 1\))
4.
def somme_entiers(n):
somme = 0
for k in range(1,n+1):
somme = somme + k
return somme
Exercice 3 (4 points)
arbres binaires de recherche et notion d'objet
-
a. Un exemple d'attribut de la classe
ArbreBinaireestvaleur. Un exemple de méthode estinsert_gauche.b.
aaura le valeur 15 etcla valeur 6. -
graph TD S15["15"] --> S6["6"] S15 --> S18["18"] S6 --> S3["3"] S6 --> S7["7"] S18 --> S17["17"] S18 --> S20["20"] S3 --> S2["2"] S3 --- V1[" "] style V1 fill:#FFFFFF, stroke:#FFFFFF linkStyle 7 stroke:#FFFFFF,stroke-width:0px -
La valeur
13figure dans le sous arbre gauche du noeud12qui ne doit contenir que des valeurs plus petites que 12 si l'arbre était binaire. On obtient un arbre binaire de recherche en inversant les positions du13et du11.
graph TD
S10["10"] --> S3["3"]
S10 --> S12["12"]
S3 --> S2["2"]
S3 --> S5["5"]
S12 --> S11["11"]
S12 --> S13["13"]
4.
La liste renvoyée sera : [1,6,10,15,16,18,25]. On rappelle que dans un parcours infixe, on parcourt d'abord le sous arbre gauche, puis la racine puis le sous arbre droit. Et que dans le cas d'un arbre binaire de recherche ce parcours permet d'obtenir les valeurs dans l'ordre croissant.