Correction D1
On applique les affectations dans l’ordre : La valeur finale est donc . À chaque flèche, l’ancienne valeur est remplacée.
Terminale · Spécialité mathématiques · Chapitre 17
À consulter après une première recherche personnelle.
Utilisation. Cherche d’abord dans le fascicule du cours. Lis son indice si tu es bloquée, puis compare ta démarche avec la correction complète. Une réponse formulée autrement peut être correcte si elle respecte les données et si elle est justifiée. Les exercices sont des créations pédagogiques ; ils ne sont pas présentés comme des sujets officiels du baccalauréat.
Fiche 01 / 04
On applique les affectations dans l’ordre : La valeur finale est donc . À chaque flèche, l’ancienne valeur est remplacée.
x >= 5 teste si est supérieur ou égal à . La réponse est vraie pour , , etc., et fausse pour .
La fonction renvoie la valeur à l’endroit où elle est appelée. Elle ne renvoie pas le texte « return 7 ».
Les indices Python commencent à . Le premier élément a donc l’indice .
Si la condition d’une boucle reste toujours vraie, et si aucune instruction ne la rend fausse, la boucle peut continuer indéfiniment. Il faut vérifier qu’une variable évolue vers la condition d’arrêt.
Point de méthodeUne trace est un tableau de valeurs successives. Elle permet de distinguer une erreur de calcul dans le programme d’une erreur de conception, comme un mauvais indice ou une condition jamais modifiée.
Fiche 02 / 04
On part de . La valeur finale est .
Une solution complète est :
def signe_nombre(x):
if x > 0:
return 1
elif x < 0:
return -1
else:
return 0
Le premier test traite les positifs. Le second ne se fait que si le premier est faux ; le dernier cas est alors exactement .
On initialise la somme à zéro, puis on ajoute les trois éléments : Par exemple :
def somme_liste(valeurs):
total = 0
for valeur in valeurs:
total = total + valeur
return total
L’initialisation à zéro est adaptée car zéro est l’élément neutre de l’addition.
Une solution par boucle est :
def doubles_positifs(valeurs):
resultat = []
for valeur in valeurs:
if valeur > 0:
resultat.append(2 * valeur)
return resultat
Pour , seules et sont strictement positives, donc le résultat est . Le zéro est exclu par « strictement ».
Fiche 03 / 04
On teste la longueur avant de diviser :
def moyenne(valeurs):
if len(valeurs) == 0:
return None
total = 0
for valeur in valeurs:
total = total + valeur
return total / len(valeurs)
Pour la liste vide, la fonction renvoie , car une division par zéro n’est pas définie. Pour , elle calcule
La boucle parcourt . Le reste de la division par vaut zéro pour les nombres pairs : Les valeurs ajoutées sont donc et , et le programme renvoie . Le symbole % calcule le reste de la division euclidienne.
Une fonction possible est :
def premier_carre(limite):
n = 0
while n <= limite and n*n < 50:
n = n + 1
if n <= limite:
return n
return None
Les carrés sont , et . Le rang suivant vaut , et . Le résultat est donc . Le test de n <= limite prévoit le cas où aucun rang ne convient.
On peut écrire :
from random import random
def frequence_piles():
piles = 0
for i in range(1000):
if random() < 0.5:
piles = piles + 1
return piles / 1000
La valeur renvoyée est la fréquence observée de piles dans une réalisation de lancers. Elle devrait souvent être proche de , mais elle peut être , ou une autre valeur : aucune valeur exacte n’est imposée par la simulation.
Point de méthodeUne correction de programme doit préciser ce qu’il renvoie, pas seulement fournir du code. Pour une liste, vérifier l’ordre, les valeurs retenues et le cas vide. Pour une boucle de recherche, vérifier le rang trouvé et le rang précédent.
Fiche 04 / 04
range(3) produit , donc
return transmet une valeur à l’appelant et permet de la réutiliser dans un calcul. print affiche une valeur à l’écran, mais ne la transmet pas comme résultat de la fonction. Une fonction qui fait seulement print renvoie généralement None.
Zéro est l’élément neutre de l’addition : Une somme peut donc commencer à zéro sans modifier le résultat. Chaque élément sera ensuite ajouté exactement une fois.
On peut tester moyenne([4,6]), dont le résultat attendu est . On peut aussi tester une liste constante comme , dont la moyenne doit être , ou la liste vide si le programme prévoit ce cas.