Algorithmes et programmes en seconde : corrigé détaillé des exercices 1 à 10
Ce corrigé des exercices d’algorithmes en seconde reprend les dix premiers exercices de la fiche « algorithmes et programmes ». Ils couvrent les notions du programme d’algorithmique : le type d’une variable (entier, flottant, chaîne de caractères), l’affectation et l’exécution pas à pas d’un programme, l’instruction conditionnelle if … else, la boucle bornée for, l’écriture d’une fonction Python et la simulation d’une expérience aléatoire avec random().
Pour chaque exercice, la résolution donne d’abord le résultat attendu, puis un programme Python complet et commenté que tu peux recopier dans un éditeur (Thonny, EduPython, la calculatrice) pour le tester. Le bon réflexe : faire tourner l’algorithme « à la main » en écrivant l’état des variables dans un tableau, puis vérifier sur machine. Les deux graphiques aident à relier programmes et fonctions, ce qui prépare aux fonctions définies par morceaux.
Les énoncés se trouvent sur la fiche Algorithmes et programmes : exercices de maths en 2de corrigés en PDF. (31 exercices au total). Cherchez d’abord chaque exercice au brouillon, puis comparez avec la correction.
Corrigé des exercices 1 à 10 sur les algorithmes et la programmation en seconde
Exercice 1 : Programme avec le langage Python
Revoir l’énoncé de l’exercice 1

a) La valeur saisie est convertie par int( ) : \(x\) est une variable de type entier (int).
b) Le programme calcule successivement \(4x\), puis \(4x+1\), puis le carré.
| \(x\) | \(y=4x\) | \(y=y+1\) | \(y=y^2\) (affiché) |
|---|---|---|---|
| 3 | 12 | 13 | 169 |
| −1 | −4 | −3 | 9 |
| 11 | 44 | 45 | 2 025 |
c) En suivant les affectations : \(f(x)=(4x+1)^2\) (que l’on peut développer en \(16x^2+8x+1\)).
Exercice 2 : Décrire le rôle et fonctionnement de l’algorithme
Revoir l’énoncé de l’exercice 2

Fonctionnement. L’algorithme demande une chaîne de caractères \(C\) non vide. Il range dans \(\ell\) le nombre de caractères de \(C\) : \(\ell\) est donc la position du dernier caractère. Il extrait ensuite de \(C\) la sous-chaîne qui commence au caractère numéro \(\ell\) et qui contient 1 caractère, et l’affiche.
Exemple. Avec \(C=\) « algorithme » : \(\ell=10\) et Sch(« algorithme », 10, 1) = « e ».
Rôle. L’algorithme affiche le dernier caractère de la chaîne saisie. En Python, on écrirait simplement C[len(C)-1] ou C[-1] (attention, en Python la numérotation commence à 0).
Exercice 3 : Programme et magasin de reprographie
Revoir l’énoncé de l’exercice 3
.png)
a) Jusqu’à 50 photocopies, chacune coûte 0,15 € : \(\text{Prix}=0{,}15\times N\). Au-delà, les 50 premières coûtent \(50\times0{,}15=7{,}50\) € et chacune des \(N-50\) suivantes coûte 0,10 €.
Ligne ① : Prix=0.15*N
Ligne ② : Prix=0.15*50+0.10*(N-50) (soit Prix=7.5+0.1*(N-50))
b) Le programme complet :
print(« Entrer N : »)
N=int(input())
if N<=50:
Prix=0.15*N
else:
Prix=0.15*50+0.10*(N-50)
print(« Prix= »,Prix)
c) Contrôles : pour \(N=30\), \(30\times0{,}15=4{,}50\) € ; pour \(N=50\), \(7{,}50\) € ; pour \(N=80\), \(7{,}50+30\times0{,}10=10{,}50\) €. Remarque : si l’on comprend que toutes les copies passent à 0,10 € au-delà de 50, la ligne ② devient Prix=0.10*N ; mais alors 51 copies (5,10 €) coûteraient moins cher que 50 (7,50 €), ce qui est peu vraisemblable.
Exercice 4 : Algorithme qui affiche la distance
Revoir l’énoncé de l’exercice 4

a) Durée = distance ÷ vitesse.
\[ t_1=\frac{5}{15}=\frac{1}{3}\text{ h}=20\text{ min} \qquad t_2=\frac{7-5}{12}=\frac{1}{6}\text{ h}=10\text{ min} \]
Louise met 30 minutes au total.
b) À 15 km/h, on parcourt \(\frac{15}{60}=0{,}25\) km par minute ; à 12 km/h, \(\frac{12}{60}=0{,}2\) km par minute. Donc :
- si \(0\leqslant t\leqslant20\) : \(d(t)=0{,}25\,t\) ;
- si \(20\lt t\leqslant30\) : \(d(t)=5+0{,}2\,(t-20)\) ;
- si \(t\gt30\) : la course est finie, \(d(t)=7\).
t=float(input(« t en minutes : « ))
if t<=20:
d=0.25*t
elif t<=30:
d=5+0.2*(t-20)
else:
d=7
print(« d(t) = »,d, »km »)
Par exemple, pour \(t=25\) min, le programme affiche \(5+0{,}2\times5=6\) km.
Exercice 5 : Un algorithme à étudier
Revoir l’énoncé de l’exercice 5

a) On suit l’évolution de \(S\) pour \(n=5\) :
| \(i\) | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| \(S\) | 1 | 5 | 14 | 30 | 55 |
Le résultat affiché est 55.
b) À chaque tour, on ajoute \(i^2\) à \(S\). L’algorithme calcule donc la somme des carrés des entiers de 1 à \(n\) : \(S=1^2+2^2+\dots+n^2\).
Exercice 6 : Un algorithme qui donne l’image par une fonction
Revoir l’énoncé de l’exercice 6

On traduit les trois cas par une instruction conditionnelle à trois branches :
def f(x):
if x<=0:
return x**2
elif x<=1:
return x
else:
return -2*x+3
Le elif n’est examiné que si \(x\gt0\) : la condition x<=1 correspond donc bien au cas \(0\lt x\leqslant1\). Tests : \(f(-2)=4\), \(f(0{,}5)=0{,}5\), \(f(3)=-3\).
Exercice 7 : Simuler 100 lancers avec Python
Revoir l’énoncé de l’exercice 7

a) Rôle des variables :
- n est un compteur : il vaut 0 au départ et augmente de 1 à chaque « Pile » ; à la fin, il contient le nombre de Pile obtenus ;
- i est la variable de la boucle : elle prend les valeurs 1, 2, …, 100 et compte les lancers ;
- x est un nombre aléatoire de \([0\,;1[\) tiré à chaque lancer ; x<0.5 arrive avec une probabilité \(\frac{1}{2}\) et représente « Pile ».
b) Il suffit d’englober la simulation dans une seconde boucle qui se répète M fois (et de remettre n à 0 à chaque simulation) :
from random import random
M=int(input(« M = « ))
for k in range(1,M+1):
n=0
for i in range(1,101):
x=random()
if x<0.5:
n=n+1
print(« simulation »,k, »: n= »,n)
Exercice 8 : Donner un programme qui fournit les 100 premiers entiers
Revoir l’énoncé de l’exercice 8

a) Pour chaque entier \(k\) de 1 à \(N\), on ajoute 1 à \(x\) lorsque \(k\) divise \(N\). La fonction renvoie donc le nombre de diviseurs de \(N\). Par exemple, diviseurs(12) = 6 (1, 2, 3, 4, 6, 12).
b) On réutilise cette fonction dans une boucle de 1 à 100 (en Python, « \(k\) divise \(N\) » s’écrit N%k==0) :
def diviseurs(N):
x=0
for k in range(1,N+1):
if N%k==0:
x=x+1
return x
for n in range(1,101):
if diviseurs(n)>=10:
print(n)
Le programme affiche 48, 60, 72, 80, 84, 90 et 96 (par exemple 60 a 12 diviseurs : 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60).
Exercice 9 : Un programme écrit en Python
Revoir l’énoncé de l’exercice 9

a) \(x\) est converti par int( ) : c’est un entier.
b) Le programme calcule \(x^2\), puis \(-x^2+3x\), puis \(-x^2+3x+4\).
- \(x=1\) : \(y=1\), puis \(-1+3=2\), puis \(2+4=\) 6 ;
- \(x=-2\) : \(y=4\), puis \(-4-6=-10\), puis −6 ;
- \(x=12\) : \(y=144\), puis \(-144+36=-108\), puis −104.
c) Attention à la ligne y=-y+3*x : c’est l’opposé de \(y\) qui est utilisé. On obtient \(f(x)=-x^2+3x+4\).
Exercice 10 : Un programme écrit avec le langage Python
Revoir l’énoncé de l’exercice 10

a) Pour \(n=4\), la boucle prend \(j=1,2,3,4\) (range(1,n+1) s’arrête avant \(n+1\)) :
\[ S=0+2+4+6+8=20 \]
Le programme affiche S= 20.
b) Le programme ajoute \(2j\) pour \(j\) allant de 1 à \(n\) : il calcule la somme des \(n\) premiers nombres pairs non nuls, \(S=2+4+\dots+2n\). Comme \(1+2+\dots+n=\frac{n(n+1)}{2}\), on a \(S=n(n+1)\) ; pour \(n=4\), \(4\times5=20\).
La méthode à retenir sur les algorithmes et la programmation
- Exécuter à la main : faire un tableau avec une colonne par variable et une ligne par instruction ou par tour de boucle.
- Affectation : dans y=y+1, on calcule d’abord le membre de droite avec l’ancienne valeur, puis on la remplace.
- Boucle bornée : for i in range(a,b) fait prendre à \(i\) les valeurs \(a, a+1, \dots, b-1\) (la borne \(b\) est exclue).
- Conditionnelle : if / elif / else ; les cas sont examinés dans l’ordre, le premier vrai est exécuté.
- Compteur et accumulateur : on initialise à 0 avant la boucle, on ajoute 1 (compteur) ou une quantité (somme) à chaque tour.
- Simulation : random()<p se produit avec une probabilité \(p\).
Les erreurs fréquentes
- Oublier que range(1,n+1) s’arrête à \(n\), ou croire que range(1,n) va jusqu’à \(n\).
- Lire y=-y+3*x comme \(y=y+3x\) : le signe moins change l’opposé de \(y\).
- Écrire x**2 pour un nombre négatif et se tromper de signe à la main : \((-2)^2=4\).
- Placer l’initialisation n=0 en dehors de la boucle des M simulations : les résultats s’additionnent.
- Confondre = (affectation) et == (test d’égalité) dans une condition.
Les exercices 11 à 31 de la fiche ne sont pas corrigés ici : ce sont de bons entraînements en autonomie une fois la méthode comprise. Retrouver tous les énoncés.
Questions fréquentes
Quelle différence entre un algorithme et un programme ?
Un algorithme est une suite d’instructions décrite en langage courant, indépendante de la machine. Un programme est sa traduction dans un langage précis, comme Python, que l’ordinateur peut exécuter. En seconde, on passe régulièrement de l’un à l’autre.
Faut-il savoir programmer sur ordinateur pour le contrôle ?
En contrôle écrit, on demande surtout de lire, compléter ou écrire quelques lignes de Python sur papier. Tester les programmes chez soi (Thonny, EduPython, calculatrice) aide beaucoup à retenir la syntaxe, notamment l’indentation et les deux-points.
Pourquoi l’indentation est-elle importante en Python ?
En Python, ce sont les espaces en début de ligne qui indiquent quelles instructions sont dans une boucle ou dans un if. Une instruction mal indentée change complètement le résultat, par exemple un print exécuté à chaque tour au lieu d’une seule fois.
- Les énoncés : Algorithmes et programmes : exercices de maths en 2de corrigés en PDF.
- Tous les exercices de maths en seconde
- Les cours de maths en seconde
- Se tester avec les QCM de maths en seconde
- Autre corrigé : Systèmes de deux équations en seconde : corrigé détaillé des exercices 1 à 10
- Autre corrigé : Statistiques en seconde : corrigé détaillé des exercices 1 à 10
- Autre corrigé : Les probabilités en seconde : corrigé détaillé des exercices 1 à 10
- Autre corrigé : Simulation et échantillonnage en seconde : corrigé détaillé des exercices
Télécharger ou imprimer cette fiche «algorithmes et programmes en seconde : corrigé détaillé des exercices 1 à 10» au format PDF afin de pouvoir travailler en totale autonomie.

