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.
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.")