enseignement scientifique (terminale) · Chapitre 11 · Exercice de TD
Corriger un programme
De la machine de Turing à l'intelligence artificielle · niveau 2
Énoncé
Ce programme doit compter le nombre de valeurs strictement positives d'une liste.
def compte(liste):
n = 0
for i in range(len(liste) - 1):
if liste[i] >= 0:
n = 1
return n
1. Que renvoie-t-il sur [3, -1, 5, 0, 7] ? Quelle est la bonne réponse ? 2. Identifier les trois fautes. 3. Écrire la version corrigée. 4. Proposer trois cas de test.
Corrigé
1. La boucle va de l'indice à l'indice : elle n'examine pas le final. Elle teste (vrai, prend la valeur ), (faux), (vrai, reprend la valeur ), (vrai, ). Le programme renvoie . La bonne réponse est : les valeurs strictement positives sont , et .
2. Faute a : range(len(liste) - 1) oublie le dernier élément ; il faut range(len(liste)). Faute b : le test >= 0 accepte le zéro, alors que l'énoncé demande les valeurs strictement positives ; il faut > 0. Faute c : n = 1 écrase le compteur au lieu de l'incrémenter ; il faut n = n + 1.
3.
def compte(liste):
n = 0
for i in range(len(liste)):
if liste[i] > 0:
n = n + 1
return n
4. [3, -1, 5, 0, 7] doit donner ; [] doit donner (liste vide) ; [-2, -8] doit donner (aucune valeur positive). Le troisième cas vérifie la faute b, le deuxième vérifie qu'aucune erreur d'exécution ne se produit sur une liste vide. Un bon jeu de tests vise les cas limites, pas les cas ordinaires.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 4 autres exercices corrigés dans ce chapitre, et 4 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.