Adloun

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 inscription

Gratuit, sans inscription. L'IA te guide pas à pas, sans te donner la réponse.

Le cours du chapitre · Tous les exercices du chapitre

Continuer avec l'IA, gratuit →