Seconde

Algorithmique et Python — 10 exercices corrigés de Seconde

Réviser algorithmique et python avec 10 exercices de types variés. Chaque exercice contient plusieurs questions et un corrigé détaillé, aéré et vérifiable. Nouveau programme français de Seconde générale et technologique applicable dès 2026-2027.

L'essentiel à retenir

  • En Python, range(a,b) exclut la borne bb.
  • Une boucle répète une instruction.
  • Un accumulateur est mis à jour à chaque itération.
  • L'image de xx est f(x)f(x).
  • Un antécédent résout une équation f(x)=yf(x)=y.

Exercice 1 — Fonction Python et expression

On définit :
def f(x):
    return 3*x**2 - 5*x + 2
  1. Calculer l'appel f(-2).
  2. Donner l'expression mathématique de f(x).
  3. Calculer f(1).
Corrigé détaillé
L'opérateur ** désigne la puissance. f(−2)=3(−2)2−5(−2)+2=12+10+2=24f(-2)=3(-2)^2-5(-2)+2=12+10+2=\boxed{24}. Expression f(x)=3x2−5x+2f(x)=3x^2-5x+2. f(1)=3−5+2=0f(1)=3-5+2=\boxed0.

Exercice 2 — Échanger les valeurs de deux variables

Exécuter les instructions :
a = 5
b = 3
a = a + b
b = a - b
a = a - b
print(a, b)
  1. Compléter les valeurs de a et b après chaque affectation.
  2. Donner l'affichage final.
Corrigé détaillé
Initialement (a,b)=(5,3)(a,b)=(5,3). Après a=a+b : (8,3)(8,3). Après b=a-b : (8,5)(8,5). Après a=a-b : (3,5)(3,5). Affichage final 3 5\boxed{\texttt{3 5}} : le programme échange les valeurs sans variable supplémentaire.

Exercice 3 — Compléter une fonction distance

Compléter le programme de distance entre A(xA,yA)A(x_A,y_A) et B(xB,yB)B(x_B,y_B) :
import math
def distance(xA,yA,xB,yB):
    return math.sqrt((xB-xA)**2 + ...)
  1. Compléter la formule.
  2. Donner distance(1,2,4,6).
Corrigé détaillé
La partie manquante est (yB-yA)**2. En coordonnées, AB=(xB−xA)2+(yB−yA)2AB=\sqrt{(x_B-x_A)^2+(y_B-y_A)^2}. Pour A(1,2)(1,2) et B(4,6)(4,6) : 32+42=5\sqrt{3^2+4^2}=\boxed5.

Exercice 4 — Condition sur le signe d'un produit

Étudier :
def signe_produit(x, y):
    if x*y > 0:
        return "Même signe"
    else:
        return "Signes contraires ou nul"
Donner les réponses pour (3,-4), (-2,-5) et (0,3).
Corrigé détaillé
(3)(−4)=−12<0(3)(-4)=-12<0 : « Signes contraires ou nul ». (−2)(−5)=10>0(-2)(-5)=10>0 : « Même signe ». 0×3=00\times3=0 : « Signes contraires ou nul ». La condition x*y > 0 exige un produit strictement positif.

Exercice 5 — Boucle for : somme de carrés

Exécuter mentalement :
s = 0
for i in range(1, 5):
    s = s + i**2
print(s)
  1. Quelles valeurs prend i ?
  2. Quels termes sont additionnés ?
  3. Quel est l'affichage ?
Corrigé détaillé
En Python range(1,5) parcourt 1, 2, 3, 4 (5 exclu). On ajoute 12+22+32+42=1+4+9+16=301^2+2^2+3^2+4^2=1+4+9+16=\boxed{30}. Affichage 30.

Exercice 6 — Boucle while et seuil d'une puissance

On exécute :
n = 0
while 2**n <= 1000:
    n = n + 1
print(n)
  1. Quelle est la condition d'arrêt ?
  2. Quel entier est affiché ?
  3. Comparer 292^9 et 2102^{10} à 1000.
Corrigé détaillé
On recommence tant que 2n≤10002^n\le1000. Or 29=512≤10002^9=512\le1000 et 210=1024>10002^{10}=1024>1000. La boucle s'arrête au premier dépassement : n=10\boxed{n=10}.

Exercice 7 — Tester la solution d'une équation

Écrire une fonction Python est_solution(x) qui retourne True si 2x−5=32x-5=3, sinon False. Donner les résultats pour x=4x=4 et x=5x=5.
Corrigé détaillé
Solution :
def est_solution(x):
    return 2*x - 5 == 3
Pour x=4x=4, 8−5=38-5=3 donc True\boxed{\texttt{True}}. Pour x=5x=5, 10−5=5≠310-5=5\ne3 donc False\boxed{\texttt{False}}. == sert à comparer, contrairement à = qui affecte.

Exercice 8 — Tester si un point appartient à un disque

Une fonction Python retourne True si x**2 + y**2 <= 25.
  1. Tester les points (3;4)(3;4) et (4;4)(4;4).
  2. Quelle figure est décrite par la condition ?
Corrigé détaillé
Pour (3;4)(3;4), 9+16=25≤259+16=25\le25 : True. Pour (4;4)(4;4), 16+16=32>2516+16=32>25 : False. L'ensemble des points vérifiant x2+y2≤25x^2+y^2\le25 est le disque fermé de centre l'origine et de rayon 5 (intérieur et bord).

Exercice 9 — Simuler une moyenne de lancers de dé

Compléter une fonction Python qui effectue N lancers de dé équilibré et renvoie la moyenne. Pourquoi faut-il interdire N=0N=0 ?
Corrigé détaillé
Une proposition :
import random
def moyenne_lances(N):
    if N <= 0:
        raise ValueError("N doit être positif")
    somme = 0
    for i in range(N):
        somme += random.randint(1, 6)
    return somme / N
On interdit N=0N=0 pour éviter une division par zéro. Pour un grand N, la moyenne simulée est généralement proche de 3,53{,}5.

Exercice 10 — Trouver le premier indice d'un seuil

On considère la suite un=2n+5u_n=2n+5 et le script :
n = 0
u = 5
while u < 100:
    n += 1
    u = 2*n + 5
print(n)
  1. Quel est le rôle de n et u ?
  2. Quel est le premier indice renvoyé ?
Corrigé détaillé
n est l'indice et u la valeur un=2n+5u_n=2n+5. On cherche 2n+5≥1002n+5\ge100, soit n≥47,5n\ge47{,}5. Premier entier possible n=48\boxed{n=48}. En effet u47=99<100u_{47}=99<100 et u48=101≥100u_{48}=101\ge100.