1-boucle
4-fonctions
Écrêtage des valeurs d'un tableau
L'écrêtage d'un signal consiste à limiter l'amplitude du signal entre deux valeurs x_min
et x_max
. On peut également appliquer cela aux valeurs d'un tableau. Voici par exemple un tableau valeurs
que l'on a écrêté entre \(-150\) et \(150\) pour donner le tableau valeurs_ecretees
:
🐍 Script Python valeurs = [ 34 , 56 , 89 , 134 , 152 , 250 , 87 , - 34 , - 187 , - 310 ]
valeurs_ecretees = [ 34 , 56 , 89 , 134 , 150 , 150 , 87 , - 34 , - 150 , - 150 ]
Question 1
Compléter une fonction limite_amplitude
qui prend en paramètre un nombre x
ainsi que deux nombres x_min
et x_max
avec x_min <= x_max
et qui renvoie :
x
si x
est compris entre x_min
et x_max
,
x_min
si x
est plus petit que x_min
,
x_max
si x
est plus grand que x_max
.
Exemple
🐍 Console Python >>> limite_amplitude ( 34 , - 150 , 150 )
34
>>> limite_amplitude ( - 187 , - 150 , 150 )
-150
Question 2
Compléter la fonction ecrete
ci-dessous qui prend en paramètre un tableau de valeurs
ainsi que x_min
et x_max
avec x_min <= x_max
et renvoie un tableau des valeurs écrêtées entre x_min
et x_max
.
Exemple
🐍 Console Python >>> valeurs = [ 34 , 56 , 89 , 134 , 152 , 250 , 87 , - 34 , - 187 , - 310 ]
>>> ecrete ( valeurs , - 150 , 150 )
[34, 56, 89, 134, 150, 150, 87, -34, -150, -150]
Lancer # testsbksl-nlvaleurs = [34, 56, 89, 134, 152, 250, 87, -34, -187, -310]bksl-nlattendu = [34, 56, 89, 134, 150, 150, 87, -34, -150, -150]bksl-nlresultat = ecrete(valeurs, -150, 150)bksl-nlassert attendu == resultat, f"Erreur, la fonction a renvoyé {resultat}"bksl-nlbksl-nl# autres testsbksl-nlbksl-nl# Question 1 :bksl-nlbksl-nlassert limitepy-undamplitude(-15, -10, 10) == -10, "-15 est trop petit (pas entre -10 et 10), on écrête"bksl-nlassert limitepy-undamplitude(-10, -10, 10) == -10bksl-nlassert limitepy-undamplitude( -8, -10, 10) == -8bksl-nlassert limitepy-undamplitude( 7, -10, 10) == 7bksl-nlassert limitepy-undamplitude( 10, -10, 10) == 10bksl-nlassert limitepy-undamplitude( 18, -10, 10) == 10, "18 est trop grand (pas entre -10 et 10), on écrête"bksl-nlbksl-nlassert limitepy-undamplitude(209, 210, 220) == 210, "209 est trop petit (pas entre 210 et 220), on écrête"bksl-nlassert limitepy-undamplitude(210, 210, 220) == 210bksl-nlassert limitepy-undamplitude(215, 210, 220) == 215bksl-nlassert limitepy-undamplitude(220, 210, 220) == 220bksl-nlassert limitepy-undamplitude(221, 210, 220) == 220, "221 est trop grand (pas entre 210 et 220), on écrête"bksl-nlbksl-nlbksl-nl# Question 2 :bksl-nlbksl-nlvaleurs = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]bksl-nlattendu = [5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 10, 10, 10, 10]bksl-nlresultat = ecrete(valeurs, 5, 10)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nlvaleurs = [-13, -4, 6, 5, 8, -3, -12, -3, 0, 6, 7]bksl-nlattendu = [-10, -5, -5, -5, -5, -5, -10, -5, -5, -5, -5]bksl-nlresultat = ecrete(valeurs, -10, -5)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nlvaleurs = [7, 8, 3, 9, 8, 7, 2, 4, 8, 9, 0, 1, 5, 8, 8, 8, 4, 5, 4, 5]bksl-nlattendu = [7, 8, 3, 9, 8, 7, 2, 4, 8, 9, 0, 1, 5, 8, 8, 8, 4, 5, 4, 5]bksl-nlresultat = ecrete(valeurs, 0, 10)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nlvaleurs = []bksl-nlattendu = []bksl-nlresultat = ecrete(valeurs, 0, 10)bksl-nlassert resultat == attendu, f"Erreur avec {valeurs}"bksl-nlbksl-nl Valider 5/5 Télécharger Téléverser Recharger Sauvegarder
def limitepy-undamplitude(x, xpy-undmin, xpy-undmax):bksl-nl ...bksl-nlbksl-nldef ecrete(valeurs, xpy-undmin, xpy-undmax):bksl-nl valeurspy-undecretees = ...bksl-nl for ...:bksl-nl y = limitepy-undamplitude(...)bksl-nl valeurspy-undecretees.append(...)bksl-nl return valeurspy-undecreteesbksl-nlbksl-nlbksl-nl# testsbksl-nlvaleurs = [34, 56, 89, 134, 152, 250, 87, -34, -187, -310]bksl-nlattendu = [34, 56, 89, 134, 150, 150, 87, -34, -150, -150]bksl-nlresultat = ecrete(valeurs, -150, 150)bksl-nlassert attendu == resultat, f"Erreur, la fonction a renvoyé {resultat}"bksl-nlbksl-nl None
A
Z