Fiche d'exercices Logimaths | 1ère spécialité
Fiche d'exercices : Algo au lycée (Python)
8 exercices progressifs ⭐ → ⭐⭐⭐ : cherche d'abord, la correction est sous chaque énoncé
Échauffement
Exercice 1 : Dérouler des affectations⭐
On exécute :
a = 4, b = 3, a = a + b, b = a - b.- Donne les valeurs finales de a et b (tableau de suivi !).
- Pourquoi l'ordre des deux dernières lignes est-il crucial ?
👆 ▶ Correction de l'exercice 1
1. a : 4 → 7 ; b : 3 → 7 − 3 = 4 : a = 7, b = 4.
2. b se calcule avec le NOUVEL a (7) : en inversant les lignes, on obtiendrait d'autres valeurs. Chaque ligne lit l'état du moment.
2. b se calcule avec le NOUVEL a (7) : en inversant les lignes, on obtiendrait d'autres valeurs. Chaque ligne lit l'état du moment.
Exercice 2 : range et compte de tours⭐
- Que valent les k parcourus par
range(4)? Parrange(2, 7)? - Combien de tours fait
for k in range(3, 12):?
👆 ▶ Correction de l'exercice 2
1. 0, 1, 2, 3 ; puis 2, 3, 4, 5, 6 (7 exclu).
2. 12 − 3 = 9 tours.
2. 12 − 3 = 9 tours.
Le cœur du chapitre
Exercice 3 : Une somme en boucle⭐⭐
On exécute :
s = 0 puis for k in range(1, 6): s = s + k*k.- Déroule la boucle (valeurs successives de s).
- Quelle somme mathématique ce script calcule-t-il, et que vaut-elle ?
👆 ▶ Correction de l'exercice 3
1. s : 1, 5, 14, 30, 55.
2. 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55 (la somme des carrés de 1 à 5).
2. 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55 (la somme des carrés de 1 à 5).
Exercice 4 : Conditions⭐⭐
On considère :
def statut(note): if note >= 10: return "reçu" else: return "recalé".- Que renvoient statut(12), statut(10) et statut(9,5) ?
- Modifie mentalement la fonction pour ajouter « mention » à partir de 12 : quelle structure utiliser ?
👆 ▶ Correction de l'exercice 4
1. « reçu », « reçu » (10 ≥ 10 : le ≥ inclut l'égalité), « recalé ».
2. Un enchaînement
2. Un enchaînement
if note >= 12: … elif note >= 10: … else: … : les conditions se testent dans l'ordre, la première vraie l'emporte.
Exercice 5 : while : le script de seuil⭐⭐
On exécute :
u = 100, n = 0, puis while u > 40: u = 0.8*u ; n = n + 1.- Déroule : valeurs successives de u (arrondies) et de n.
- Que valent u et n à la sortie ? Interprète pour la suite u_{n+1} = 0{,}8\,u_n.
👆 ▶ Correction de l'exercice 5
1. u : 80 (n = 1), 64 (n = 2), 51,2 (n = 3), 40,96 (n = 4), 32,77 (n = 5) : on s'arrête car 32,77 ≤ 40.
2. Sortie : u ≈ 32,77 et n = 5 : le premier rang où la suite passe sous 40 est n = 5.
2. Sortie : u ≈ 32,77 et n = 5 : le premier rang où la suite passe sous 40 est n = 5.
Exercice 6 : Suites en Python⭐⭐
Soit la suite u_0 = 2,\ u_{n+1} = 3u_n - 4.
- Écris un script (3 lignes) qui calcule u_{10}.
- Écris une fonction
terme(n)qui renvoie u_n.
👆 ▶ Correction de l'exercice 6
1.
2.
u = 2 ; for k in range(10): u = 3*u - 4 ; print(u) (10 applications de la relation : de u₀ à u₁₀).2.
def terme(n): u = 2 ; for k in range(n): u = 3*u - 4 ; return u.
Pour aller plus loin
Exercice 7 : Listes⭐⭐⭐
On exécute :
L = [3, 8, 1, 8, 5].- Que valent
L[0],L[4]etlen(L)? - Que fait le script :
m = L[0]puisfor x in L: if x > m: m = x? Que vaut m à la fin ?
👆 ▶ Correction de l'exercice 7
1. L[0] = 3 (les indices partent de 0 !), L[4] = 5, len(L) = 5.
2. Il cherche le maximum de la liste : m finit à 8.
2. Il cherche le maximum de la liste : m finit à 8.
Exercice 8 : Synthèse type bac : lire un script de suite⭐⭐⭐
On donne :
def mystere(n): u = 800 ; for k in range(n): u = 0.7*u + 240 ; return u.- Que renvoient mystere(0) et mystere(1) ?
- Quelle suite ce script calcule-t-il ? (Tu l'as déjà croisée dans le chapitre Généralités sur les suites…)
- Que renvoie mystere(50) ? Justifie sans dérouler 50 tours.
👆 ▶ Correction de l'exercice 8
1. mystere(0) = 800 (zéro tour) ; mystere(1) = 0,7 × 800 + 240 = 800 aussi !
2. La suite des abonnés {a_{n+1} = 0{,}7\,a_n + 240} avec a_0 = 800.
3. 800 est la valeur d'équilibre (0,7 × 800 + 240 = 800) : la suite est constante, mystere(50) renvoie 800.
2. La suite des abonnés {a_{n+1} = 0{,}7\,a_n + 240} avec a_0 = 800.
3. 800 est la valeur d'équilibre (0,7 × 800 + 240 = 800) : la suite est constante, mystere(50) renvoie 800.