Aller au contenu

Exercices : boucles non bornées

1. Aléatoire

Info

L'instruction randint(1,6) génère un entier aléatoire entre 1 et 6 compris. Cette fonction fait partie du module random. Pour pouvoir l'utiliser on peut écrire en début de programme : from random import randint.

Exercice 1.1

On simule le tirage aléatoire de deux dés, jusqu'à ce qu'on obtienne un double (deux 1, deux 2, etc.).
Ecrire un programme qui permet d'afficher le nombre de coups qui ont été nécessaires pour obtenir le premier double. (Un premier double au 3e lancer doit faire afficher la valeur 3).

Exercice 1.2

On simule le tirage aléatoire de deux dés, jusqu'à ce que la somme des deux dés soit égale à 7.
Ecrire un programme qui permet d'afficher le nombre de coups qui ont été nécessaires pour obtenir une somme des deux dés égale à 7.

2. Accumulation

Exercice 2.1

On dispose d'une feuille de papier d'épaisseur 0,1 mm. En supposant qu'on peut plier en 2 cette feuille autant de fois qu'on le souhaite, combien de fois doit-on la plier en deux au minimum pour que l'épaisseur dépasse la hauteur de la tour Eiffel (324 m) ?
Écrire un programme en Python pour résoudre ce problème.

Exercice 2.2

Un capital de 1000 euros est déposé sur un compte à intérêts composés à 4 % : chaque année le montant disponible sur le compte est augmenté de 4 %. 
Si l'on n'effectue ni dépôt ni retrait, combien d'années faut-il pour que le montant disponible atteigne (ou dépasse) 2000 euros ?
Écrire un programme en Python pour résoudre ce problème.

3. Calculs en boucle

Exercice 3.1

Quelle serait la valeur de la variable resultat à l'issue de l'exécution de ces instructions ?
Comment décrire ce que réalise ce programme ?

resultat = 1
while resultat < 1000 :
    resultat = resultat * 2

Exercice 3.2

Écrire un programme qui permet de déterminer la plus petite puissance de 5 supérieure à 1000. Le programme ne devra pas utiliser l'opérateur python **.

4. Tracés en boucle

Exercice 4.1

Le programme suivant utilise la tortue du module mobilechelonian dans un notebook Jupyter.
S'arrête-t-il lorsqu'on lance son exécution ? Pourquoi ?

from mobilechelonian import Turtle
t = Turtle()
longueur = 150
while longueur > 0 :
    t.forward(longueur)
    t.left(89)
    longueur = longueur - 2

Exercice 4.2

Le programme suivant utilise la tortue du module mobilechelonian dans un notebook Jupyter.
S'arrête-t-il lorsqu'on lance son exécution ? Pourquoi ?

from mobilechelonian import Turtle
t = Turtle()
longueur = 150
while longueur > 0 :
    t.forward(longueur)
    t.left(89)
    longueur = longueur / 2