Trois paliers · guidé → semi-guidé → autonome
2 ** t.
Que va afficher ce programme au premier tour de boucle (t = 0) ?
for t in range(0, 6) :
P = 100 * 2 ** t
print(P)
100 * 2 ** 0 = 100 × 1 = 100. La propriété a⁰ = 1 s'applique ici : toute base élevée à la puissance 0 vaut 1. La réponse B (200) serait le résultat à t = 1 ; la réponse D (2) correspond à 2 ** 1 sans le facteur 100.
On veut afficher P(t) pour t = 0 à 10, et s'arrêter dès que la population dépasse 10 000 bactéries. Complète les deux trous.
for t in range(0, 11) :
P = 100 * ** t
print(P)
if P > :
break
# doit s'arrêter à t = 7 (P = 12800)
Un élève a écrit le programme suivant pour afficher D(t) de t = 0 à 10. Son code contient deux bugs : un sur la puissance, un sur la valeur initiale.
D0 = 200
a = 0.85
for t in range(0, 11) :
D = D0 * a * t # ← bug 1 : pas une puissance
print(D)
# À t=0 le programme affiche 0.0 au lieu de 200.0
# À t=5 il affiche 850.0 au lieu de 88.74
La ligne correcte est D = D0 * a ?? t. Quel opérateur faut-il utiliser ?
* et la puissance s'écrit avec deux étoiles. a * t multiplie a par t ; a ** t élève a à la puissance t — ce n'est pas du tout la même chose.
Complète le programme pour qu'il s'arrête dès que D(t) passe sous 50 mg et affiche la valeur de t correspondante. Deux trous à compléter.
D0 = 200
a = 0.85
for t in range(0, 30) :
D = D0 * a ** t
if D < :
print()
break
# doit afficher : 9
Voici un programme qui affiche f(0), f(1), f(2), f(3) pour une fonction f(x) = ax. La sortie est : 1 0.5 0.25 0.125. Quelle est la valeur de a ?
a = ???
for x in range(0, 4) :
print(a ** x)
Écris un programme qui affiche R(t) pour t = 0 à 10, et qui indique par un message "seuil franchi" la première fois que R(t) passe sous 10 unités.
Tu auras besoin de : une boucle for, la formule 1000 * 0.5 ** t, une condition if, et un break.
for t in range(0, 11) :
R = 1000 * 0.5 ** t
print(t, R)
if R < 10 :
print("seuil franchi")
break
Le seuil est franchi à t = 7 : R(7) ≈ 7,81 unités. On peut vérifier que R(6) ≈ 15,6 > 10, donc c'est bien t = 7 le premier dépassement vers le bas.
La propriété vue en cours dit que ax+y = ax × ay. Écris un programme qui la vérifie numériquement pour a = 0,5, et pour toutes les paires (x, y) avec x et y entiers de 0 à 4.
Pour chaque paire, calcule les deux membres et affiche "OK" s'ils sont égaux (ou très proches), "ERREUR" sinon.
Astuce : en Python, deux flottants ne sont jamais exactement égaux à cause des arrondis — compare avec abs(gauche - droite) < 1e-9.
a = 0.5
for x in range(0, 5) :
for y in range(0, 5) :
gauche = a ** (x + y)
droite = a ** x * a ** y
if abs(gauche - droite) < 1e-9 :
print(x, y, "OK")
else :
print(x, y, "ERREUR")
Toutes les lignes affichent OK — la propriété est vérifiée pour toutes les paires. C'est une façon d'utiliser Python comme un outil de vérification numérique d'une propriété mathématique, ce qu'on appelle parfois un test expérimental.