mathématiques (ECT 1re année) · Chapitre 13 · Exercice
Le script qui affiche zéro
Informatique et algorithmique · Lire et écrire un script · niveau 2
Énoncé
Le script suivant devait donner le nombre d'années au bout desquelles un capital de euros placé à dépasse euros. Il affiche 0. Trouver l'erreur, corriger le script, et donner la réponse.
C = 1000
n = 0
while C < 2000:
C = C * 1.05
print(n)Corrigé
L'erreur. Le compteur n est mis à avant la boucle et n'est jamais augmenté : le corps de la boucle ne contient qu'une seule ligne, celle qui met à jour le capital. La boucle tourne pourtant correctement — le capital croît et finit par dépasser , donc elle s'arrête — mais n vaut encore au moment de l'affichage.
La correction. Il faut ajouter n = n + 1 dans le corps de la boucle, à la même indentation que la mise à jour du capital.
C = 1000
n = 0
while C < 2000:
C = C * 1.05
n = n + 1
print(n, C)
# 15 2078.9281794113685
La réponse. Il faut années.
Le contrôle à la main. , donc après ans le capital vaut euros : encore sous . Et , soit euros après ans. Le seuil est bien franchi entre les deux.
Le point à retenir. Dans une boucle while, deux grandeurs évoluent en général : celle qu'on teste et celle qu'on compte. Oublier la seconde ne provoque aucun message d'erreur — le script répond, et il répond faux. C'est la pire espèce de défaut, et le seul remède est de vérifier la réponse à la main sur un cas.
Exercices semblables
- Lire un script corrigé
- Calculer les termes d'une suite corrigé
- Un rang d'arrêt corrigé
- Chercher une mensualité par balayage corrigé
- Quand la somme dépasse cinq corrigé