Maths & NSI

Baccalauréat — Épreuve pratique — 2024 — NSI

Épreuve pratique NSI 2024 — Sujet 22 : classement des indices, moyenne à partir d'un dictionnaire

Sujet

Épreuve pratique de NSI, session 2024 — sujet n°22 de la banque nationale. Durée : 1 heure, sur ordinateur. Le candidat traite les deux exercices, notés chacun sur 10 points.

Exercice 1 — classer les indices par rapport à une valeur

Écrire une fonction recherche_indices_classement qui prend en paramètres un entier elt et un tableau d'entiers tab représenté par une liste Python, et qui renvoie trois listes Python d'entiers :

  • la première liste contient les indices des valeurs du tableau tab strictement inférieures à elt ;
  • la deuxième liste contient les indices des valeurs du tableau tab égales à elt ;
  • la troisième liste contient les indices des valeurs du tableau tab strictement supérieures à elt.

Exemples :

>>> recherche_indices_classement(3, [1, 3, 4, 2, 4, 6, 3, 0])
([0, 3, 7], [1, 6], [2, 4, 5])
>>> recherche_indices_classement(3, [1, 4, 2, 4, 6, 0])
([0, 2, 5], [], [1, 3, 4])
>>> recherche_indices_classement(3, [1, 1, 1, 1])
([0, 1, 2, 3], [], [])
>>> recherche_indices_classement(3, [])
([], [], [])

Exercice 2 — moyenne à partir d'un dictionnaire de résultats

Une professeure de NSI décide de gérer les résultats de sa classe sous la forme d'un dictionnaire :

  • les clefs sont les noms des élèves ;
  • les valeurs sont des dictionnaires dont les clefs sont les types d'épreuves sous forme de chaîne de caractères et les valeurs sont les notes obtenues associées à leurs coefficients dans une liste.

Avec :

resultats = {
    'Dupont': {
        'DS1': [15.5, 4],
        'DM1': [14.5, 1],
        'DS2': [13, 4],
        'PROJET1': [16, 3],
        'DS3': [14, 4]
    },
    'Durand': {
        'DS1': [6 , 4],
        'DS2': [8, 4],
        'PROJET1': [9, 3],
        'IE1': [7, 2],
        'DS3': [12, 4]
    }
}

L'élève dont le nom est Durand a ainsi obtenu au DS2 la note de 8 avec un coefficient 4.

La professeure crée une fonction moyenne qui prend en paramètre le nom d'un de ses élèves et renvoie sa moyenne arrondie au dixième. Si l'élève n'a pas de notes, on considère que sa moyenne est nulle. Si le nom donné n'est pas dans les résultats, la fonction renvoie None.

Compléter le code de la professeure ci-dessous :

def moyenne(nom, resultats):
    '''Renvoie la moyenne de l'élève nom, selon le dictionnaire
    resultats. Si nom n'est pas dans le dictionnaire,
    la fonction renvoie None.'''
    if nom in ...:
        notes = resultats[nom]
        if ...: # pas de notes
            return 0
        total_points = ...
        total_coefficients = ...
        for ...  in notes.values():
            note, coefficient = valeurs
            total_points = total_points + ... * coefficient
            ... = ... + coefficient
        return round( ... / total_coefficients, 1 )
    else:
        return None

Exemples :

>>> moyenne("Dupont", resultats)
14.5
>>> moyenne("Durand", resultats)
8.5

Corrigé

Corrigé réservé aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Sujet officiel de la banque nationale de sujets 2024 de l'épreuve pratique de NSI (ministère de l'Éducation nationale). Corrigé rédigé pour ce site.