Algorithmique et programmation | Terminale technologique (enseignement commun) | Mathématiques
Dernière mise à jour : 21 octobre 2026
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.
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
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.
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\).