Boucles
Les boucles permettent de répéter une partie du programme plusieurs fois.
Boucle bornée
La boucle bornée permet de répéter une partie du programme un nombre de fois connu à l'avance.
Problème de l'échiquier de Sissa
Selon la légende, pour remercier l'inventeur des échecs Sissa, le roi lui demanda de choisir sa récompense. Sissa demanda alors du riz : un grain sur la première case, deux grains sur la seconde case, quatre grains sur la troisième case, huit grains sur la quatrième, et ainsi de suite jusqu'à la dernière case du jeu d'échec. Le roi accepta.
On se demande combien de grains seront posés sur la dernière case du plateau d'échecs (qui en compte 64).
Pour résoudre ce problème avec Scratch, on peut utiliser le programme suivant.
En Python, on utilisera plutôt :
grains = 1 for compteur in range(63): grains = 2 * grains print("Nombre de grains sur la dernière case :", grains)
Explications :
- Version simple :
for compteur in range(63)
signifie : répéter le bloc qui suit 63 fois. - Version compliquée :
for compteur in range(63)
signifie que la variablecompteur
prend successivement les valeurs de 0 à 62 (soit 63 valeurs en tout), et que pour chacune de ces valeurs, le bloc qui suit est exécuté.
- Recopiez (ou téléchargez) ce programme, et exécutez-le.
- Combien de grains de riz y aura-t-il sur la dernière case de l'échiquier ?
Tables de multiplications
Recopiez (ou téléchargez) le programme suivant :
nombre1 = int(input("De quel nombre voulez-vous la table de multiplication ? ")) for compteur in range(10): print(nombre1)
Modifiez ce programme pour qu'il affiche la table de multiplication du nombre demandé, de 0 à 10. Par exemple, si l'utilisateur donne la valeur 6, le programme devrait afficher : 0, 6, 12, 18, …, 60.
Boucles non bornée
Les boucles non bornées sont répétées jusqu'à ce qu'une certaine condition soit vérifiée (donc on ne sait pas à l'avance combien de fois le bloc à l'intérieur de la boucle sera répété).
Choisir un nombre
On demande à l'utilisateur un nombre entre 2 et 10. Si l'utilisateur se trompe (il répond par exemple 1, qui est trop petit), on lui repose la question, jusqu'à ce qu'il donne un nombre correct.
En scratch, on peut écrire le programme suivant.
En Python, on écrirait :
choix = 0 while choix < 2 or choix > 10: choix = float(input("Choissez un nombre entre 2 et 10 : ")) print("Vous avez choisi :", choix)
Quelques remarques :
- en Scratch, on écrit la condition pour arrêter la boucle : Répéter jusqu'à ce que
choix
soit compris entre 2 et 10. ; - en Python, on écrit la condition pour continuer la boucle (qui est l'inverse de la précédente) : Répéter tant que
choix
n'est pas compris entre 2 et 10.
QCM
Recopiez (ou téléchargez) le programme suivant.
print("Qui est considéré comme le premier informaticien ?") print("1. Ada Lovelace") print("2. Al-Khwârizmî") print("3. Alan Turing") print("4. Bill Gates") reponse = 0 while XXX: reponse = int(input("Entrez le numéro de votre réponse. ")) print("Bravo !")
Complétez (c'est-à-dire remplacez les XXX
par les valeurs correctes) ce programme pour qu'il demande à l'utilisateur sa réponse, jusqu'à ce que sa réponse soit correcte.
Fin
- ✋ Appelez le professeur pour vérifier votre travail.
- En attendant qu'il arrive, commencez le TP suivant.