☀️
420-1G2-HU Logique de programmation
  • 👋Bienvenue dans le cours de logique de programmation!
  • Bases de la logique de programmation
    • Concepts de la programmation
    • Les opérateurs
      • Exercices
    • Les commentaires
  • Les données
    • Les données et types simples
    • Les variables, les constantes et les opérations de base
    • Les opérations d'écriture et de lecture
    • Les opérations sur les chaînes de caractères
    • Laboratoire 1 - données
    • Laboratoire 2 - données
  • Les collections de données
    • Les listes
    • Les opérations sur les listes
    • Laboratoire listes - solution
    • Les dictionnaires
      • Exercices
  • Différents types de traitements
    • Structures logiques séquentielle
    • Structures logiques conditionnelles (if/else/elif)
    • Structures logiques répétitives (boucles)
      • Exercices de base
      • Laboratoire boucles - solution
  • Modularisation
    • Création et appels des fonctions
    • La documentation des fonctions
    • Annotation de types dans les fonctions
    • Laboratoire - fonctions (niveau débutant)
    • Révision express fonctions
    • Les modules
      • Laboratoire
  • La portée des variables
  • Débogage
    • 🫂Le débogueur, c'est ton ami!
      • Introductions aux outils de débogage
      • Techniques de débogage
    • Les erreurs et exceptions
      • Introduction aux notions d’erreurs
      • Les exceptions et leurs gestion
      • Exercices de base - avec solutions
      • Laboratoire débogage et gestion des erreurs -solution
  • Tests unitaires
    • Tests unitaires
    • Exercice
  • Cryptographie
    • Introduction à la cryptographie
  • Les fichiers
    • Accès aux fichiers
  • Résolution de problèmes
    • Résolution de problèmes : exercice introductif
    • Étapes d'analyse et de résolution de problèmes
  • Activités avec Légos
    • Introduction à la programmation
    • Consolidation sur les fonctions avec des blocs
    • Pratiquer les boucles avec des blocs
  • Laboratoires
    • Simulation combat - dragon vs chevalier
    • Simulateur de bataille - Les anneaux du pouvoir
    • Jeu de cartes
    • Lien logique mathématique
      • Algèbre de Boole
    • Crypto variée
    • Après Noël
  • git - système de gestion de versions
    • Introduction à Git
    • Étapes de création des dépôts Git
  • Classes inversées
    • Résolution de problèmes, fonctions et traitements conditionnels
  • Examens
    • Examen 2 - 2023
    • Examen 3 - 2023
    • Examen 2 - 2024
  • Révision
    • Fonctions, gestion d'erreurs et tests unitaires
    • Résolution de problème
  • Trucs utiles
    • Check-list
Powered by GitBook
On this page
  • Instructions
  • Boucle while
  • Activité 1
  • Activité 2
  • Boucles for
  • Activité 3
  • Activité 4
  1. Activités avec Légos

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.

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.")
PreviousConsolidation sur les fonctions avec des blocsNextSimulation combat - dragon vs chevalier

Last updated 8 months ago

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

while