Aller au contenu

Correction du sujet 0 version B / 2023⚓︎

➡ Sujet

Exercice 1⚓︎

correction Q1.a.

Commande 1 : cd /home/documents/collections/timbres (chemin absolu)
Commande 2 : cd ../collections/timbres (chemin relatif)

correction Q1.b.

cd /home/documents/collections/timbres

correction Q2.a.

\(C = \dfrac{10^8}{100 \times 10^6} = 1\)

Correction Q2.b.

image La route minimale est donc A-B-C-E-F-G (coût total de 1,04)

Correction Q3.

Les descripteurs de ce fichier sont :

  • nom_timbre (valeurs associées : Gustave Eiffel, Marianne, Alan Turing)
  • annee_fabrication (valeurs associées : 1950, 1989, 2012)
  • nom_collectionneur (valeurs associées : Dupont, Durand)
Correction Q4.a.

Une clé primaire est attribut qui désigne de manière unique un enregistrement.

Correction Q4.b.

Non, car deux enregistrements possèdent le nom «Gustave Eiffel».

Correction Q4.c.

Non, car deux enregistrements ont pour année de fabrication 1989. (merci Vincent)

Correction Q4.d.

On peut créer une clé primaire artificielle (un nombre entier), ou bien considérer le couple (nom, annee_fabrication) comme clé primaire.

Correction Q5.a.

Cette requête va modifier l'attribut ref_licence de Jean-Pierre Dupond ET de Alexandra, qui auront donc la même référence de licence 'Ythpswz'.

Correction Q5.b.

L'attribut ref_licence ne peut plus être une clé primaire car deux enregistrements différents auront la même valeur pour cet attribut.

Correction Q6.
SELECT nom, prenom, nbre_timbres
FROM collectionneurs
WHERE annee_naissance >= 1963;

Exercice 2⚓︎

Correction Q1.a.

Une fonction récursive est une fonction qui fait appel à elle-même dans sa propre définition.

Correction Q1.b.

Lors du premier appel de la fonction, le paramètre n vaut 3. Lors des appels récursifs, ce paramètre va décroître à 2, 1 puis 0 puisque l'appel se fait sous condition que n >= 0. Le dernier appel se fait avec la valeur n = -1. Lors de l'exécution de compte_rebours(n-1), rien ne se passe. La dernière valeur affichée est donc 0.

Correction Q2.
1
2
3
4
5
6
7
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)
Correction Q3.a.

L'affichage en console sera :

3
2
1

Correction Q3.b.

La variable res contiendra la valeur 6.

Correction Q4.
1
2
3
4
5
def somme_entiers(n):
    somme = 0
    for nb in range(n+1):
        somme += nb
    return somme

Exercice 3⚓︎

Correction Q1.a.

Exemple d'attribut : valeur
Exemple de méthode : get_valeur

Correction Q1.b

Après exécution, a vaut 15 et b vaut 6.

Correction Q2.

image

Correction Q3.

Ce n'est pas un ABR car la valeur 13 est censée être plus petite que la valeur 12. image

Correction Q4.

La liste renvoyée est [1, 6, 10, 15, 16, 18, 16, 25].