Aller au contenu

Sujet NSI 2022 - Sujet 2

Exercice 1

Exercice 1

Soit le couple (note,coefficient):

  • note est un nombre de type flottant (float) compris entre 0 et 20 ;
  • coefficient est un nombre entier positif.

Les résultats aux évaluations d'un élève sont regroupés dans une liste composée de couples (note,coefficient).

Écrire une fonction moyenne qui renvoie la moyenne pondérée de cette liste donnée en paramètre.

Par exemple, l’expression moyenne([(15,2),(9,1),(12,3)]) devra renvoyer le résultat du calcul suivant :

\(\dfrac{2 \times 15 + 1 \times 9 + 3 \times 12 }{2+1+3}=12,5\)

=== "Correction"
    ```python linenums='1'
    def moyenne(tab):
        somme_notes = 0
        somme_coeffs = 0
        for devoir in tab:
            note = devoir[0]
            coeff = devoir[1]
            somme_notes += note * coeff
            somme_coeffs += coeff
        return somme_notes / somme_coeffs
    ```

Exercice 2

Exercice 2

On cherche à déterminer les valeurs du triangle de Pascal. Dans ce tableau de forme triangulaire, chaque ligne commence et se termine par le nombre 1. Par ailleurs, la valeur qui occupe une case située à l’intérieur du tableau s’obtient en ajoutant les valeurs des deux cases situées juste au-dessus, comme l’indique la figure suivante :

image

Compléter la fonction pascal ci-après. Elle doit renvoyer une liste correspondant au triangle de Pascal de la ligne 1 à la ligne nn est un nombre entier supérieur ou égal à 2 (le tableau sera contenu dans la variable C). La variable Ck doit, quant à elle, contenir, à l’étape numéro k, la k-ième ligne du tableau.

1
2
3
4
5
6
7
8
9
def pascal(n):
    C= [[1]]
    for k in range(1,...):
        Ck = [...]
        for i in range(1,k):
            Ck.append(C[...][i-1]+C[...][...] )
        Ck.append(...)
        C.append(Ck)
    return C

Pour n = 4, voici ce qu'on devra obtenir :

>>> pascal(4)
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]

Pour n = 5, voici ce qu'on devra obtenir :

>>> pascal(5)
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]]
=== "Correction"
    ```python linenums='1'
    def pascal(n):
        C = [[1]]
        for k in range(1,n+1):
            Ck = [1]
            for i in range(1,k):
                Ck.append(C[k-1][i-1]+C[k-1][i] )
            Ck.append(1)
            C.append(Ck)
        return C
    ```

Dernière mise à jour: 2022-09-04