NSI (première) · Chapitre 11 · Exercice supplémentaire
Une fonction calcule le tarif d'entrée d'un musée, et trois tests…
Conduire un projet · Ce qui coûte cher · niveau 3 (difficile)
Énoncé
Une fonction calcule le tarif d'entrée d'un musée, et trois tests l'accompagnent.
def tarif(age, adherent):
"""Tarif d'entree, en euros."""
if age < 12:
return 0
if adherent:
return 4
if age >= 65:
return 5
return 8
assert tarif(8, False) == 0
assert tarif(30, True) == 4
assert tarif(30, False) == 8
- Combien la fonction a-t-elle de chemins d'exécution ? Combien sont couverts ?
- Écrire le test manquant.
- Que vaut
tarif(70, True)? Est-ce voulu ? - Une couverture complète des chemins prouve-t-elle que la fonction est correcte ?
Pour démarrer : comment l'IA t'aide
1. Combien la fonction a-t-elle de chemins d'exécution ? Combien sont couverts ?
Élève
Pour compter les chemins, je ne sais pas trop quoi regarder dans la fonction. Est-ce qu'il faut compter les lignes ou autre chose ?
IA
Un chemin d'exécution, c'est une suite d'instructions que la fonction peut suivre depuis l'appel jusqu'à sa sortie. Regarde les endroits où la fonction peut s'arrêter : combien y en a-t-il, et à quoi correspondent-ils ?
Élève
Il y a plusieurs return, donc plusieurs sorties possibles. Mais je ne vois pas comment relier ça aux trois assert.
IA
Oui, chaque return atteint correspond à un chemin. Pour chaque assert, tu peux suivre à la main les valeurs passées : quel return est atteint à chaque fois ? Et y a-t-il un return qu'aucun des trois appels ne touche ?
L'IA ne donne pas la réponse : elle pose la question qui fait avancer. Le corrigé de cet exercice n'est pas publié : à toi de continuer.
Continue cet exercice avec l'IA
Reprends la question 1 là où le dialogue s'arrête, puis la suite de l'exercice.
Continuer avec l'IA — gratuit, sans inscriptionGratuit, sans inscription. L'IA te guide pas à pas, sans te donner la réponse.