Algorithmique et programmation | Première technologique (enseignement commun) | Mathématiques
Dernière mise à jour : 21 octobre 2026
x = x + 1 se lit de droite à gauche.for i in range(n) (bornée) ; while condition (non bornée).[1,2,3], append, compréhension [x for x in ... if ...].1 if random() < p else 0 ; nombre de succès = sum(...).Que renvoie ce programme ?
s = 0
for k in range(1, 5):
s = s + k
print(s)
La boucle ajoute successivement \(1, 2, 3, 4\) à s (initialement 0). La sortie est 10.
Que contient la liste L ?
L = [3 * n for n in range(1, 6)]
print(L)
n parcourt \(1, 2, 3, 4, 5\), et on garde \(3n\). La sortie est [3, 6, 9, 12, 15].
Compléter les pointillés pour que la fonction compte, dans une liste, le nombre de valeurs strictement supérieures à 10.
def compter_grands(L):
c = ... # (a)
for x in L:
if ... : # (b)
c = ... # (c)
return c
print(compter_grands([5, 12, 8, 20, 10, 15])) # doit afficher 3
(a) c = 0 (compteur initialisé à 0) ; (b) if x > 10 : ; (c) c = c + 1. La liste contient 12, 20 et 15 au-dessus de 10, soit 3 valeurs.
Ce programme doit calculer le produit des entiers de 1 à 4 (soit \(4!=24\)), mais il renvoie 0. Trouver et corriger l'erreur.
p = 0
for k in range(1, 5):
p = p * k
print(p)
Un accumulateur de produit doit être initialisé à 1, pas à 0 (sinon tout produit reste nul). Il faut écrire p = 1. Le programme renvoie alors 24.
Traduire en Python l'algorithme suivant, qui cherche le plus petit entier \(n\) tel que \(3^n\) dépasse 500.
n ← 0
Tant que 3^n ≤ 500 :
n ← n + 1
Afficher n
n = 0
while 3 ** n <= 500:
n = n + 1
print(n) # affiche 6 (3**6 = 729, 3**5 = 243)
1. Écrire une fonction est_pair(n) qui renvoie True si n est pair, False sinon.
2. Utiliser une compréhension pour construire la liste des multiples de 5 compris entre 0 et 40 inclus.
def est_pair(n):
return n % 2 == 0
multiples = [x for x in range(41) if x % 5 == 0]
print(multiples) # [0, 5, 10, 15, 20, 25, 30, 35, 40]
Soit la suite définie par \(u(0)=3\) et \(u(n+1)=2\,u(n)-1\).
1. Compléter l'algorithme en langage naturel qui calcule \(u(5)\).
u ← 3
Pour i allant de 1 à 5 :
u ← 2 × u − 1
Afficher u
2. Le traduire en Python et donner la valeur affichée.
u = 3
for i in range(1, 6): # i prend 1, 2, 3, 4, 5
u = 2 * u - 1
print(u) # affiche 65
On calcule \(u(1)=5\), \(u(2)=9\), \(u(3)=17\), \(u(4)=33\), \(u(5)=65\). La sortie est 65.
On veut simuler \(n=100\) épreuves de Bernoulli de paramètre \(p=0{,}3\) et compter le nombre de succès (issue codée \(1\)).
1. Écrire une fonction bernoulli(p) qui renvoie \(1\) avec probabilité \(p\), \(0\) sinon.
2. Construire un échantillon de taille 100 dans une liste, puis compter les succès de deux façons (avec un compteur, puis avec sum).
3. Autour de quelle valeur le nombre de succès devrait-il se situer ? Pourquoi ?
from random import random
def bernoulli(p):
return 1 if random() < p else 0
# 2a. avec un compteur
succes = 0
for i in range(100):
if bernoulli(0.3) == 1:
succes = succes + 1
print(succes)
# 2b. avec sum sur une liste (compréhension)
echantillon = [bernoulli(0.3) for _ in range(100)]
print(sum(echantillon))
3. Chaque épreuve a une probabilité \(p=0{,}3\) de succès, donc sur 100 épreuves on attend environ \(100 \times 0{,}3 = 30\) succès. La valeur obtenue varie d'une exécution à l'autre mais reste proche de 30.