Révisions - Boucles#

En programmation, nous sommes souvent amenés à répéter des instructions plusieurs fois. Pour cela nous pouvons utiliser des boucles.

Boucle for#

La boucle for permet de répéter un bloc d'instructions un nombre de fois connu à l'avance.

for _ in range(nb_repetitions):
  instruction 1
  instruction 2
  ...
ProgrammeOrdinogramme
for i in range(5):
  print(i)
Ordinogramme boucle for
  1. Quelles valeurs prend la variable i?

  2. Changez le nombre de répétitions.

  3. Modifiez le code pour afficher les nombres de 1 à 10?

En réalité, la boucle for fait plus que juste répéter x fois: pour chaque itération (passage de la boucle), la variable (ici nommée i) va prendre la valeur d'un élément de l'ensemble range(n), c'est-à-dire l'ensemble des nombres entiers de 0 à n non compris \(\{0; 1; 2; ...; n-1\}\). Il est donc possible d'utiliser la valeur de cette variable dans la boucle.

Boucle while#

La boucle while (qui signifie "tant que" en anglais) permet de répéter un bloc d'instructions tant qu'une condition est vraie.

while condition:
  instruction 1
  instruction 2
  ...
ProgrammeOrdinogramme
nb_points = 0
max = 10
while nb_points < max:
  print("Points:", nb_points)
  nb_points += 3
print("Bravo!")
Ordinogramme boucle for

Exercice 18#

1somme = 0
2for nombre in range(6):
3  somme += nombre
4print("La somme est:", somme)

Quel est le résultat affiché par ce programme?

Exercice 19#

  1. Écrivez un programme en utilisant le boucle for qui affiche les nombres de 0 à 9.

# Écrivez le programme ici
  1. Écrivez un programme en utilisant le boucle for qui affiche les nombres de 1 à 10.

# Écrivez le programme ici
  1. Écrivez un programme en utilisant le boucle for qui affiche les 12 premiers multiples de 5.

# Écrire le programme ici

Exercice 20#

Indiquez l'ordre d'exécution des lignes et ce qu'affichera le programme.

1a = 4
2b = 1
3for i in range (3):
4  a += 5
5  b *= 2
6  print("i =", i)
7print("a =", a, "b =", b)

Exercice 21#

Nous voulons créer un programme qui demande à l'utilisateur un nombre strictement positif. Tant que l'utilisateur entre un nombre plus petit ou égal à 0, alors le programme devra lui redemander d'entrer un nouveau nombre.

Écrivez un programme qui correspond à l'algorithme suivant:

Demander un nombre strictement positif à l'utilisateur et le stocker dans la variable n
Tant que n est plus petit ou égal à 0
    Afficher "Le nombre doit être strictement positif!"
    Demander un nombre positif à l'utilisateur et le stocker dans n
Afficher "Merci"
# Complétez le programme
n = int(await input_line("Entrer un nombre strictement positif: "))
print("Le nombre doit être strictement positif!")
print("Merci")

Exercice 22#

Nous souhaitons créer un programme qui compte le temps avant qu'une bombe explose. Pour cela, un compte à rebours commencera à 10 et ira jusqu'à 1, puis le programme affichera "BOOM".

Écrivez un programme qui correspond à l'algorithme suivant:

Initialiser une variable compte_a_rebours à 10
Tant que compte_a_rebours est plus grand que 0
    Afficher La valeur de compte_a_rebours
    Retirer 1 à compte_a_rebours
Afficher "BOOM"

Ce programme doit alors afficher:

10
9
8
7
6
5
4
3
2
1
BOOM
# Écrivez le programme ici

Exercice 23#

Écrivez un programme qui demande à l'utilisateur combien il y a de cantons en Suisse. Tant que la réponse n'est pas 26, le programme redemande une nouvelle réponse.

Exemple d'exécution:

Combien y a-t-il de cantons en Suisse?
16
Faux, essaie encore!
27
Faux, essaie encore!
26
Bravo!
# Écrivez le programme ici

Bonus 1#

Améliorez le programme de l'exercice précédent en indiquant à l'utilisateur s'il y a plus ou moins de cantons en fonction de sa réponse.

Exercice 24#

Indiquez l'ordre d'exécution des lignes et faites le tableau d'états du programme suivant:

1a = 0
2b = 1
3while a < 5:
4  a += 1
5  if a % 2 == 0:
6    b *= 2
7a = 1
8print(a, b)