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.
  1. Donne les valeurs finales de a et b (tableau de suivi !).
  2. 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.
Exercice 2 : range et compte de tours
  1. Que valent les k parcourus par range(4) ? Par range(2, 7) ?
  2. 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.

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.
  1. Déroule la boucle (valeurs successives de s).
  2. 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).
Exercice 4 : Conditions⭐⭐ On considère : def statut(note): if note >= 10: return "reçu" else: return "recalé".
  1. Que renvoient statut(12), statut(10) et statut(9,5) ?
  2. 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 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.
  1. Déroule : valeurs successives de u (arrondies) et de n.
  2. 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.
Exercice 6 : Suites en Python⭐⭐ Soit la suite u_0 = 2,\ u_{n+1} = 3u_n - 4.
  1. Écris un script (3 lignes) qui calcule u_{10}.
  2. Écris une fonction terme(n) qui renvoie u_n.
👆 Correction de l'exercice 6
1. 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].
  1. Que valent L[0], L[4] et len(L) ?
  2. Que fait le script : m = L[0] puis for 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.
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.
  1. Que renvoient mystere(0) et mystere(1) ?
  2. Quelle suite ce script calcule-t-il ? (Tu l'as déjà croisée dans le chapitre Généralités sur les suites…)
  3. 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.