Adloun

Auto-contrôle d'une chaîne de traitement

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 4 — Modules, fichiers et données

É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).

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.