Adloun

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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →