informatique (tronc commun des prépas scientifiques) · Chapitre 4 · Exercice de TD
Auto-contrôle d'une chaîne de traitement
Modules, fichiers et données · niveau 3 (difficile)
Énoncé
Écrire une fonction controle(t) de validation qui effectue un auto-contrôle de cohérence mathématique sur une liste de données numériques t par assertions (, , , constante).
Corrigé
def controle(t: list) -> None:
"""Valide la cohérence des indicateurs calculés sur t (non vide)."""
mini, maxi = min(t), max(t)
moy, ec, med = moyenne(t), ecart_type(t), mediane(t)
assert mini <= med <= maxi, "Erreur : Médiane en dehors de l'intervalle des mesures"
assert mini <= moy <= maxi, "Erreur : Moyenne en dehors de l'intervalle des mesures"
assert ec >= 0.0, "Erreur : Écart-type négatif (incohérent)"
toutes_egales = all(x == t[0] for x in t)
# L'écart-type est nul si et seulement si toutes les mesures sont identiques
assert (ec == 0.0) == toutes_egales, "Erreur : Cohérence écart-type nul non respectée"
Ce type de contrôle permet de détecter des bogues d'implémentation (ex. tri oublié pour le calcul de la médiane) ou des défaillances de précision numérique (écart-type qui deviendrait négatif lors d'un calcul à un seul passage instable).
Exercices semblables
- La variance en un seul passage corrigé
- Construire l'histogramme soi-même corrigé
- Moyennes par catégorie corrigé
- La méthode de Monte-Carlo corrigé
- Lire un fichier à colonnes variables corrigé