← Retour au sommaire

Devoir Surveillé – Chapitre 7

Algorithmique et programmation | Première 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 : l'affectation = se lit de droite à gauche ; range(n) parcourt \(0\) à \(n-1\) ; somme init à 0, produit init à 1, compteur init à 0 ; une fonction renvoie sa sortie avec return ; Bernoulli : 1 if random() < p else 0.

Exercice 1 — Lire des programmes (7 points)

1. Que renvoie ce programme ? (2 pts)

x = 5
x = 2 * x + 1
print(x)

2. Que renvoie ce programme ? (2,5 pts)

s = 0
for k in range(1, 6):
    s = s + k
print(s)

3. Que contient la liste affichée ? (2,5 pts)

L = [2 * n for n in range(5)]
print(L)

1. \(x=5\), puis \(x=2\times 5+1=11\). Affiche 11.

2. On additionne \(1+2+3+4+5=15\). Affiche 15.

3. n parcourt \(0,1,2,3,4\) et on garde \(2n\) : [0, 2, 4, 6, 8].

Exercice 2 — Écrire un algorithme (7 points)

On considère la suite définie par \(u(0)=200\) et \(u(n+1)=0{,}8\,u(n)\).

1. Calculer \(u(1)\) et \(u(2)\). (2 pts)

2. On veut le plus petit rang \(n\) tel que \(u(n) \lt 50\). Compléter l'algorithme en langage naturel. (2 pts)

u ← 200
n ← 0
Tant que ......... :
    u ← .........
    n ← n + 1
Afficher n

3. Traduire cet algorithme en Python. (3 pts)

1. \(u(1)=0{,}8\times 200=160\) ; \(u(2)=0{,}8\times 160=128\).

2. Condition : u ≥ 50 ; instruction : u ← 0,8 × u.

3.

u = 200
n = 0
while u >= 50:
    u = 0.8 * u
    n = n + 1
print(n)              # affiche 7

Exercice 3 — Fonction, compteur et liste (6 points)

1. Écrire une fonction carre(x) qui renvoie \(x^2\). (1,5 pt)

2. À l'aide de carre et d'une compréhension, construire la liste des carrés des entiers de 0 à 5 inclus. (2 pts)

3. Écrire un programme qui compte, dans la liste notes = [8, 12, 15, 9, 11, 6], le nombre de notes supérieures ou égales à 10. (2,5 pts)

1.

def carre(x):
    return x ** 2

2.

carres = [carre(x) for x in range(6)]
print(carres)         # [0, 1, 4, 9, 16, 25]

3.

notes = [8, 12, 15, 9, 11, 6]
c = 0
for note in notes:
    if note >= 10:
        c = c + 1
print(c)              # affiche 3

Les notes 12, 15 et 11 sont \(\geq 10\) : le compteur vaut 3.