Aller au contenu

Recadrer les mesures d'un tableau⚓︎

Lorsqu'on utilise une sonde pour obtenir des mesures, par exemple des températures, il se peut que des mesures soient trop petites ou trop grandes. On modifie alors ces mesures pour qu'elles ne sortent pas de l'intervalle défini à l'avance.

On donne un tableau de réels mesures et deux réels val_min et val_max. On garantit que val_min est inférieur à val_max.

Compléter le code de la fonction recadre qui :

  • prend mesures, val_min et val_max en arguments,
  • modifie le tableau mesures de sorte que :
    • tous les éléments de mesures qui sont strictement inférieurs à val_min sont remplacés par val_min,
    • tous les éléments de mesures qui sont strictement supérieurs à val_max sont remplacés par val_max.

Exemples

🐍 Console Python
>>> mesures_1 = [1, 2, 3, 4, 5, 6]
>>> recadre(mesures_1, 3, 5)
>>> mesures_1
[3, 3, 3, 4, 5, 5]
>>> mesures_2 = [7.1, -9.0, -3.1, 15.0, 987.7, -624.89]
>>> recadre(mesures_2, -5.3, 15.0)
>>> mesures_2
[7.1, -5.3, -3.1, 15.0, 15.0, -5.3]
###
# Testsbksl-nlmesurespy-und1 = [1, 2, 3, 4, 5, 6]bksl-nlrecadre(mesurespy-und1, 3, 5)bksl-nlassert mesurespy-und1 == [3, 3, 3, 4, 5, 5]bksl-nlbksl-nlmesurespy-und2 = [7.1, -9.0, -3.1, 15.0, 987.7, -624.89]bksl-nlrecadre(mesurespy-und2, -5.3, 15.0)bksl-nlassert mesurespy-und2 == [7.1, -5.3, -3.1, 15.0, 15.0, -5.3]bksl-nlbksl-nl# Tests supplémentairesbksl-nlvide = []bksl-nlrecadre(vide, 0, 100)bksl-nlassert vide == []bksl-nlbksl-nlrienpy-undapy-undchanger = [1, 2, 3, 4, 5]bksl-nlrecadre(rienpy-undapy-undchanger, 0, 6)bksl-nlassert rienpy-undapy-undchanger == [1, 2, 3, 4, 5]bksl-nlbksl-nltouspy-undtroppy-undpetits = [-9, -3, -4, -99, -2, -6]bksl-nlrecadre(touspy-undtroppy-undpetits, -1, 15)bksl-nlassert touspy-undtroppy-undpetits == [-1, -1, -1, -1, -1, -1]bksl-nlbksl-nltouspy-undtroppy-undgrands = [99, 999, 198, 57, 16, 79, 35]bksl-nlrecadre(touspy-undtroppy-undgrands, -1, 15)bksl-nlassert touspy-undtroppy-undgrands == [15, 15, 15, 15, 15, 15, 15]bksl-nlbksl-nlbksl-nl 5/5

def recadre(mesures, valpy-undmin, valpy-undmax):bksl-nl for i in range(len(...)):bksl-nl if mesures[i] < ...:bksl-nl mesures[i] = ...bksl-nl elif ...:bksl-nl ...bksl-nlbksl-nl# Testsbksl-nlmesurespy-und1 = [1, 2, 3, 4, 5, 6]bksl-nlrecadre(mesurespy-und1, 3, 5)bksl-nlassert mesurespy-und1 == [3, 3, 3, 4, 5, 5]bksl-nlbksl-nlmesurespy-und2 = [7.1, -9.0, -3.1, 15.0, 987.7, -624.89]bksl-nlrecadre(mesurespy-und2, -5.3, 15.0)bksl-nlassert mesurespy-und2 == [7.1, -5.3, -3.1, 15.0, 15.0, -5.3]bksl-nlbksl-nlbksl-nldef recadre(mesures, valpy-undmin, valpy-undmax):bksl-nl for i in range(len(mesures)):bksl-nl if mesures[i] < valpy-undmin:bksl-nl mesures[i] = valpy-undminbksl-nl elif mesures[i] > valpy-undmax:bksl-nl mesures[i] = valpy-undmaxbksl-nlbksl-nl# Testsbksl-nlmesurespy-und1 = [1, 2, 3, 4, 5, 6]bksl-nlrecadre(mesurespy-und1, 3, 5)bksl-nlassert mesurespy-und1 == [3, 3, 3, 4, 5, 5]bksl-nlbksl-nlmesurespy-und2 = [7.1, -9.0, -3.1, 15.0, 987.7, -624.89]bksl-nlrecadre(mesurespy-und2, -5.3, 15.0)bksl-nlassert mesurespy-und2 == [7.1, -5.3, -3.1, 15.0, 15.0, -5.3]bksl-nlbksl-nlbksl-nl

A

Z