Pratiquer les boucles avec des blocs

Instructions

  • Mettez-vous en équipes de 3 étudiants.

  • Vous aurez besoin d'un crayon et d'une feuille.

  • Après avoir créé le pseudo-code, validez le avec le prof, puis programmez le en Python.

Boucle while

Activité 1

Vous avez un ensemble de blocs à votre disposition. On vous demande d'écrire les instructions (sous forme de pseudo-code) pour construire une tour de 5 blocs, un bloc à la fois.

Combien d'instructions avez-vous écrites ? Et si on vous demandait une tour de 100 blocs ?
  • Instruction répétitive

Prends un bloc et pose-le
Prends un bloc et pose-le sur le précédent
Prends un bloc et pose-le sur le précédent
Prends un bloc et pose-le sur le précédent
Prends un bloc et pose-le sur le précédent
  • Dans ce cas, on créé une boucle qui répète autant de fois que nécessaire la même instruction (écrite une seule fois).

Répèter 5 fois : Prends un bloc et pose-le sur le précédent

Quelle est la question que vous vous posez à chaque fois ?

On compte le nombre de blocs dans la tour et on se demande si on a atteint le nombre de 5 blocs. ==> il s'agit de la condition d'arrêt d'une boucle.

Algorithme (Pseudo-code)
Poser le premier bloc.
Le nombre de blocs est à 1.
Tant que le nombre de blocs n'a pas atteint 5
    Incrémenter de 1 le nombre de blocs
    Poser un bloc par dessus le précédent.

En Python, ceci peut-être traduit par la boucle while.

Code Python
# Le nombre de blocs est à 1 (ceci est appelé une initialisation)
nombre_blocs = 1

# Poser le premier bloc.
print(" ____ ")
print(f"| {nombre_blocs}  |")
print("|____|")

# Tant que le nombre de blocs n'a pas atteint 5
while nombre_blocs < 5:
    # Incrémenter de 1 le nombre de blocs
    nombre_blocs += 1
    # Poser un bloc par dessus le précédent.
    print(" ____ ")
    print(f"| {nombre_blocs}  |")
    print("|____|")

print("Tour complète avec 5 blocs.")

Activité 2

Faites les même instructions que l'activité 1, mais en alternant les couleurs selon si la position du bloc dans la tour est pair ou impair (choisissez 2 couleurs de votre choix).

Pseudo-code

Notez que la solution est un peu différente de la précédente. Maintenant, on initialise le nombre de blocs à 0 et non a 1 (aucun bloc posé à l'extérieur de la boucle).

Le nombre de blocs est à 0.
Tant que le nombre de blocs est < à 5
    Si la position du bloc est paire, alors
        Prendre un bloc vert
    Sinon,
        Prendre un bloc rouge
    
    Poser un bloc par dessus le précédent
    Incrémenter de 1 le nombre de blocs
Code Python
# Séquences ANSI pour les couleurs
RESET = "\033[0m"  # Réinitialiser les couleurs
RED = "\033[91m"
GREEN = "\033[92m"

# Solution différente avec le même résultat :
#   On initialise le nombre de blocs à 0
#   Tous les blocs sont ajoutés dans la boucle.
#   Comparez cette solution avec la précédente.

nombre_blocs = 0

while nombre_blocs < 5:
    if nombre_blocs % 2 == 0:
        couleur = GREEN
    else:
        couleur = RED

    print(" ____ ")
    print(f"| {couleur}{nombre_blocs+1}  {RESET} |")
    print("|____|")

    nombre_blocs += 1

print("La tour est complète avec 5 blocs.")

Boucles for

Activité 3

Vous avez un ensemble de blocs à votre disposition. Disposez les en ligne sur la table (sans les assembler). On vous demande d'écrire les instructions (sous forme de pseudo-code) pour construire une tour, un bloc à la fois.

Pseudo-code
Initialiser la variable nombre_blocs (le nombre total de blocs sur la table).

Pour chaque bloc allant du 1er au dernier (nombre_blocs) :
    Prendre le prochain bloc de la ligne.
    Ajouter ce bloc au sommet de la tour.
Code en Python
nombre_blocs = 10

for i in range(nombre_blocs):
    print(" ____ ")
    print(f"| {i}  |")
    print("|____|")

print("La tour est complète avec 10 blocs.")

Activité 4

Faites les même instructions que l'activité 3, mais en alternant les couleurs selon si la position du bloc dans la tour est pair ou impair (choisissez 2 couleurs de votre choix).

Pseudo-code
Initialiser la variable nombre_blocs (le nombre total de blocs sur la table).

Pour chaque bloc allant du 1er au dernier (nombre_blocs) :
    Si la position du bloc est paire, alors
        Prendre un bloc vert
    Sinon,
        Prendre un bloc bleu
        
    Ajouter le bloc au sommet de la tour.
Code Python
# Codes des couleurs à utiliser dans le string
RESET = "\033[0m"
BLEU = "\033[94m"
VERT = "\033[92m"

nombre_blocs = 10

for i in range(nombre_blocs):
    # Déterminer la couleur selon la parité de i
    if i % 2 == 0:
        couleur = VERT  # Pour les positions paires
    else:
        couleur = BLEU  # Pour les positions impaires

    print(" ____ ")
    print(f"| {couleur}{i} {RESET} |")  # Le numéro du bloc en couleur (bleu ou vert)
    print("|____|")

print("La tour est complète avec 10 blocs.")

Last updated