Seconde⏱ 50 minutes
Algorithmique et programmation en Python — Entraînement type évaluation
Pour un entraînement qui sert vraiment à quelque chose : pas de cours sous les yeux, une feuille et un crayon. Note-toi ensuite avec le corrigé.
Barème indicatif : 20 points. Calculatrice et ordinateur interdits : tous les programmes se font tourner à la main.
Exercice 1 (4 points) — Types et affectation
- Donne la valeur et le type de :
17 // 5,17 % 5,17 / 5,17 > 5. (2 points) - Donne les valeurs de
aetbaprès les instructions suivantes. (2 points)a = 4 b = 7 a = b - a b = b - a
Voir le corrigé
17 // 5vaut3(int) ;17 % 5vaut2(int) ;17 / 5vaut3.4(float) ;17 > 5vautTrue(bool).- Après
a = b - a:avaut . Aprèsb = b - a:bvaut . Finalementavaut3etbvaut4(les valeurs ont été échangées sans variable auxiliaire).
Exercice 2 (4 points) — Condition
Un cinéma pratique les tarifs suivants : € pour les moins de ans, € à partir de ans, € sinon.
- Écris une fonction
prix(age)qui renvoie le tarif. (3 points) - Que renvoient
prix(12)etprix(65)avec ta fonction ? (1 point)
Voir le corrigé
-
def prix(age): if age < 12: return 5 elif age >= 65: return 7 else: return 10 prix(12)renvoie10( n'est pas strictement inférieur à ) ;prix(65)renvoie7.
Exercice 3 (4 points) — Boucle bornée
u = 3
for i in range(4):
u = 2 * u - 1
- Combien de fois la boucle est-elle exécutée ? (1 point)
- Donne les valeurs successives de
u, puis sa valeur finale. (3 points)
Voir le corrigé
range(4)parcourt : la boucle est exécutée fois.u: . Valeur finale : .
Exercice 4 (4 points) — Boucle non bornée
n = 0
p = 1
while p <= 500:
p = 3 * p
n = n + 1
- Fais tourner ce programme à la main (tableau des valeurs de
petn). (2,5 points) - Quelles sont les valeurs finales de
netp? Que représenten? (1,5 point)
Voir le corrigé
-
p1 3 9 27 81 243 729 n0 1 2 3 4 5 6 -
La boucle s'arrête quand
pdépasse :nvaut etpvaut .nest le plus petit entier tel que .
Exercice 5 (4 points) — Hasard
from random import randint
def experience():
d1 = randint(1, 6)
d2 = randint(1, 6)
return d1 == d2
def frequence(N):
c = 0
for i in range(N):
if experience():
c = c + 1
return c / N
- Quel est le type de la valeur renvoyée par
experience()? Que simule cette fonction ? (1,5 point) - Que calcule
frequence(N)? (1 point) - Autour de quelle valeur se situera
frequence(10000)? Justifie. (1,5 point)
Voir le corrigé
d1 == d2est une comparaison : la fonction renvoie un booléen (TrueouFalse). Elle simule le lancer de deux dés et indique si l'on a obtenu un double.frequence(N)répète fois l'expérience, compte les doubles danscet renvoie la fréquence des doubles.- Il y a doubles parmi les issues équiprobables : . Pour , la fréquence sera proche de (par exemple ), sans être exactement égale.