← Retour au sommaire

Devoir Surveillé – Chapitre 9

Algorithmique et programmation | Terminale technologique (enseignement commun) | Mathématiques

Dernière mise à jour : 21 octobre 2026

Nom : Prénom : Classe : Date : Note : / 20
🕑 Durée : 1 heure
🧮 Calculatrice : autorisée
✍ Barème : 20 points
📄 Documents : non autorisés
Rappels : accumulateur (init. S = 0 ou P = 1, boucler, accumuler) ; compteur (c = c + 1) ; listes (extension, append, compréhension, indices de \(0\) à len-1) ; fonction = entrées + return ; Bernoulli : succès si random() < p.

Exercice 1 — Compteur et accumulateur (7 points)

On considère la fonction suivante.

def analyse(liste, seuil):
    total = 0
    compteur = 0
    for x in liste:
        total = total + x
        if x > seuil:
            compteur = compteur + 1
    return total, compteur

1. Quel est le rôle de la variable total ? de la variable compteur ? (2 pts)

2. Que renvoie analyse([5, 12, 3, 20, 8], 10) ? Détailler. (3 pts)

3. Écrire une fonction somme_carres(n) qui renvoie \(1^2 + 2^2 + \dots + n^2\). (2 pts)

1. total est un accumulateur : il additionne tous les éléments. compteur est un compteur : il compte les éléments qui dépassent le seuil.

2. Somme : \(5 + 12 + 3 + 20 + 8 = 48\). Éléments \(\gt 10\) : \(12\) et \(20\), soit \(2\). La fonction renvoie (48, 2).

def somme_carres(n):
    S = 0
    for k in range(1, n + 1):
        S = S + k**2
    return S

Exercice 2 — Listes et fonctions (7 points)

1. Générer, en compréhension, la liste des multiples de \(3\) strictement inférieurs à \(30\). (2 pts)

2. On dispose de notes = [8, 15, 12, 6, 18]. Écrire une fonction moyenne(liste) renvoyant la moyenne des éléments (entrée : une liste ; sortie : un nombre). (2,5 pts)

3. Écrire une fonction nb_au_dessus(liste, m) qui renvoie le nombre d'éléments strictement supérieurs à m. Combien y a-t-il de notes au-dessus de la moyenne dans notes ? (2,5 pts)

1. [k for k in range(30) if k % 3 == 0] → [0, 3, 6, 9, 12, 15, 18, 21, 24, 27].

def moyenne(liste):
    return sum(liste) / len(liste)

def nb_au_dessus(liste, m):
    c = 0
    for x in liste:
        if x > m:
            c = c + 1
    return c

Moyenne de notes : \((8+15+12+6+18)/5 = 59/5 = 11{,}8\). Notes strictement au-dessus : \(15\), \(12\), \(18\), soit 3.

Exercice 3 — Simulation de Bernoulli (6 points)

On simule le lancer d'une pièce truquée qui tombe sur « pile » avec probabilité \(p = 0{,}4\).

1. Compléter la fonction pile(p) qui renvoie \(1\) (pile) avec probabilité \(p\), sinon \(0\). (2 pts)

from random import random

def pile(p):
    if random() < ... :
        return ...
    else:
        return ...

2. Écrire compte_piles(n, p) qui renvoie le nombre de « pile » sur \(n\) lancers. (2 pts)

3. Sur un très grand nombre de lancers, de quelle valeur la fréquence de « pile » sera-t-elle proche ? Justifier. (2 pts)

from random import random

def pile(p):
    if random() < p:
        return 1
    else:
        return 0

def compte_piles(n, p):
    total = 0
    for _ in range(n):
        total = total + pile(p)
    return total

3. Par la loi des grands nombres, la fréquence observée se rapproche de la probabilité \(p = 0{,}4\).