Aller au contenu

Ep 17

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Écrire une fonction moyenne(liste_notes) qui renvoie la moyenne pondĂ©rĂ©e des rĂ©sultats contenus dans la liste liste_notes, non vide, donnĂ©e en paramĂštre. Cette liste contient des couples (note, coefficient) dans lesquels :

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

Ainsi l’expression moyenne([(15,2),(9,1),(12,3)]) devra renvoyer 12.5.

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

RĂ©ponse

Complétez le code ci-dessous

###
# Mettre ici votre codebksl-nlbksl-nl



Solution

###
def moyenne(listepy-undnotes):bksl-nl sommepy-undnotes = 0bksl-nl sommepy-undcoeffs = 0bksl-nl for devoir in listepy-undnotes:bksl-nl note = devoir[0]bksl-nl coeff = devoir[1]bksl-nl sommepy-undnotes += note py-str coeffbksl-nl sommepy-undcoeffs += coeffbksl-nl return sommepy-undnotes / sommepy-undcoeffsbksl-nlbksl-nl



EXERCICE 2⚓

On cherche à déterminer les valeurs du triangle de Pascal (Figure 1).

Dans le triangle de Pascal, chaque ligne commence et se termine par le nombre 1. Comme l’illustre la Figure 2, on additionne deux valeurs successives d’une ligne pour obtenir la valeur qui se situe sous la deuxiùme valeur.

image

Compléter la fonction pascal ci-aprÚs prenant en paramÚtre un entier n supérieur ou égal à 2. Cette fonction doit renvoyer une liste correspondant au triangle de Pascal de la ligne 0 à la ligne n. Le tableau représentant le triangle de Pascal sera contenu dans la variable triangle.

RĂ©ponse

Complétez le code ci-dessous

###
def pascal(n):bksl-nl triangle = [[1]]bksl-nl for k in range(1,...):bksl-nl lignepy-undk = [...]bksl-nl for i in range(1,k):bksl-nl lignepy-undk.append(triangle[...][i-1]+triangle[...][...])bksl-nl lignepy-undk.append(...)bksl-nl triangle.append(lignepy-undk)bksl-nl return trianglebksl-nlbksl-nl



Solution

###
def pascal(n):bksl-nl triangle = [[1]]bksl-nl for k in range(1, n+1):bksl-nl lignepy-undk = [1]bksl-nl for i in range(1, k):bksl-nl lignepy-undk.append(triangle[k-1][i-1] + triangle[k-1][i])bksl-nl lignepy-undk.append(1)bksl-nl triangle.append(lignepy-undk)bksl-nl return trianglebksl-nlbksl-nl



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

🐍 Script Python
    >>> 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 :

🐍 Script Python
    >>> pascal(5)
    [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]]