xxxxxxxxxx
# fonctions jeu de tests - moyenne annuelle
*Remarque :* En python on peut arrondir une valeur décimale grâce à la fonction `round(x, n)` qui renvoie l'arrondi de `x` à `n` décimales. Si `n` n'est pas précisé, l'arrondi est effectué avec 0 décimale.
Remarque : En python on peut arrondir une valeur décimale grâce à la fonction round(x, n)
qui renvoie l'arrondi de x
à n
décimales. Si n
n'est pas précisé, l'arrondi est effectué avec 0 décimale.
xxxxxxxxxx
round(3.14159265, 2)
xxxxxxxxxx
round(119.87, 1)
xxxxxxxxxx
round(57.33333333333, 4)
xxxxxxxxxx
round(51.789)
xxxxxxxxxx
<br/>
*Question 1 :* On souhaite calculer des moyennes annuelles à partir des moyennes trimestrielles.
La moyenne annuelle sera arrondie au centième de point le plus proche.
On souhaite utiliser comme préconditions que les moyennes trimestrielles sont comprises entre 0 et 20.
<br/>
Compléter la fonction `moyenne_annuelle` suivante pour qu'elle renvoie la moyenne annuelle arrondie (à deux décimales) `m` des trois moyennes trimestrielles `t1`, `t2` et `t3`. Elle devra vérifier les préconditions mentionnées ci-dessus.
Question 1 : On souhaite calculer des moyennes annuelles à partir des moyennes trimestrielles.
La moyenne annuelle sera arrondie au centième de point le plus proche.
On souhaite utiliser comme préconditions que les moyennes trimestrielles sont comprises entre 0 et 20.
Compléter la fonction moyenne_annuelle
suivante pour qu'elle renvoie la moyenne annuelle arrondie (à deux décimales) m
des trois moyennes trimestrielles t1
, t2
et t3
. Elle devra vérifier les préconditions mentionnées ci-dessus.
xxxxxxxxxx
def moyenne_annuelle(t1, t2, t3):
assert ... <= t1 and t1 <= ..., "La moyenne t1 doit être comprise entre 0 et 20"
assert ......... and ........., "La moyenne t2 doit être comprise entre 0 et 20"
assert .................................
...
...
return m
xxxxxxxxxx
<details>
<summary style="border:1pt solid slateblue; border-radius:5pt; width:15%; color:slateblue; padding:3px; background-color: lightcyan"> Solution </summary>
<div style="border:1pt solid slateblue; border-radius:5pt; color:slateblue; padding:3px; background-color: lightcyan">
```python
def moyenne_annuelle(t1, t2, t3):
assert 0 <= t1 and t1 <= 20, "La moyenne t1 doit être comprise entre 0 et 20"
assert 0 <= t2 and t2 <= 20, "La moyenne t2 doit être comprise entre 0 et 20"
assert 0 <= t3 and t3 <= 20, "La moyenne t3 doit être comprise entre 0 et 20"
m = (t1 + t2 + t3)/3
m = round(m, 2)
return m
```
</div>
</details>
def moyenne_annuelle(t1, t2, t3):
assert 0 <= t1 and t1 <= 20, "La moyenne t1 doit être comprise entre 0 et 20"
assert 0 <= t2 and t2 <= 20, "La moyenne t2 doit être comprise entre 0 et 20"
assert 0 <= t3 and t3 <= 20, "La moyenne t3 doit être comprise entre 0 et 20"
m = (t1 + t2 + t3)/3
m = round(m, 2)
return m
xxxxxxxxxx
*Question 2 :* Vérifier que votre fonction satisfait le jeu de tests suivant.
Question 2 : Vérifier que votre fonction satisfait le jeu de tests suivant.
xxxxxxxxxx
assert moyenne_annuelle(15, 12, 17) == 14.67
assert moyenne_annuelle(9, 13, 11) == 11
assert moyenne_annuelle(13, 11, 11) == 11.67
assert moyenne_annuelle(9, 15, 13) == 12.33
assert moyenne_annuelle(0, 10, 20) == 10
xxxxxxxxxx
*Question 3 :* Vérifier que votre fonction renvoie une erreur si on effectue un appel avec une moyenne trimestrielle négative ou supérieure à 21.
Question 3 : Vérifier que votre fonction renvoie une erreur si on effectue un appel avec une moyenne trimestrielle négative ou supérieure à 21.
xxxxxxxxxx
...
xxxxxxxxxx
<details>
<summary style="border:1pt solid slateblue; border-radius:5pt; width:15%; color:slateblue; padding:3px; background-color: lightcyan"> Solution </summary>
<div style="border:1pt solid slateblue; border-radius:5pt; color:slateblue; padding:3px; background-color: lightcyan">
```python
moyenne_annuelle(4, 6, -2)
```
</div>
</details>
moyenne_annuelle(4, 6, -2)
xxxxxxxxxx
...
xxxxxxxxxx
<details>
<summary style="border:1pt solid slateblue; border-radius:5pt; width:15%; color:slateblue; padding:3px; background-color: lightcyan"> Solution </summary>
<div style="border:1pt solid slateblue; border-radius:5pt; color:slateblue; padding:3px; background-color: lightcyan">
```python
moyenne_annuelle(4, 26, 2)
```
</div>
</details>
moyenne_annuelle(4, 26, 2)
xxxxxxxxxx
*Question 4 :* En utilisant votre fonction, donner la moyenne annuelle arrondie d'un élève qui aurait eu 15, 9 et 13 comme moyennes trimestrielles.
Question 4 : En utilisant votre fonction, donner la moyenne annuelle arrondie d'un élève qui aurait eu 15, 9 et 13 comme moyennes trimestrielles.
xxxxxxxxxx
...
xxxxxxxxxx
<details>
<summary style="border:1pt solid slateblue; border-radius:5pt; width:15%; color:slateblue; padding:3px; background-color: lightcyan"> Solution </summary>
<div style="border:1pt solid slateblue; border-radius:5pt; color:slateblue; padding:3px; background-color: lightcyan">
```python
moyenne_annuelle(15, 9, 13)
```
</div>
</details>
moyenne_annuelle(15, 9, 13)