Programmation 3 : Boucle. Cours

Introduction

On souhaite réaliser un programme qui affiche un décompte de 1 à 4.
En langage naturel :
  • Afficher « 1 »
  • Afficher « 2 »
  • Afficher « 3 »
  • Afficher « 4 »

Cette répétition est fastidieuse et impossible à mettre en oeuvre quand le nombre d’opérations devient trop important.

Dans un algorithme, utiliser une boucle permet de répéter plusieurs fois un bloc d’instructions.

Boucle bornée (for).

Définition

Une boucle for (pour) permet de répéter un bloc d’instructions un nombre de fois déterminé à l’avance.

 

boucle for

Chaque mois pendant 12 mois :

Ajouter 20 euros sur mon compte.

Répéter 5 fois une instruction identique :

L’algorithme suivant affiche 5 fois de suite le message « Bonjour ».

 

TI
Casio
Scratch Python
For(I,1,5)
Disp ‘Bonjour’
End
For 1→I To 5
 ‘Bonjour’
Next
boucle for en Scratch

for i in range(5):
   print("Bonjour")

 

Répéter une instruction qui dépend de la variable.

L’instruction à répéter, peut dépendre de la valeur de i.

Ainsi, pour effectuer un décompte :

 

TI
Casio
Python
For(I,1,20)
Disp I
End
For 1→I To 20
I
Next

for i in range(1,21):
   print(i)

 

 

Remarques

  • En Python :
    • Il ne faut pas oublier les deux points à la fin de la ligne du for.
    • Il y a un décalage vers la droite des instructions à effectuer (« indentation »).
    • range(1,21) est la liste des entiers de 1 à 20. La borne de droite est exclue.
    • Par ailleurs, si on ne précise pas la valeur de départ : range(21) est la liste de 0 à 20.

Boucle non bornée (While).

Définition

Une boucle while (tant que) permet de répéter un bloc d’instructions tant qu’une condition est vérifiée. En général, on ne connait pas à l’avance le nombre de répétitions à effectuer.

 

boucle while

Tant que j’ai moins de 500 euros, chaque mois :

j’ajoute 20 euros sur mon compte.

 

 

Demander à l’utilisateur d’entrer un nombre supérieur ou égal à 10. (Tant que le nombre entré est inférieur à 10, on redemande un nombre).
TI Casio Python
Prompt X
While X<10
Prompt X
End
?→X
While X<10
?→X
WhileEnd
X=float(input("X?")
While X<10:
   X=float(input("X?"))

 

Remarques

  • Il faut demander une première fois un nombre à l’utilisateur afin d’entrer dans la boucle. (Pour que la condition X<10 soit testée, il faut qu’un nombre soit enregistré dans X )
  • Il faut s’assurer que la boucle se termine ( que la condition n’est pas toujours vérifiée ).
  • En Python :
    • Il ne faut pas oublier les deux points à la fin de la ligne du while.
    • Il y a un décalage vers la droite des instructions à effectuer (« indentation »).