Leçon 8:

Boucle Pour

Utilité des boucles

Dans cette leçon, vous allez faire dessiner par le robot un carré de 5 cases de coté. Pour marquer une case d'un point rouge, le robot utilisera l'instruction Marquer .
Le périmètre du carré est formé de 16 cases. Au total, le robot devra avancer et marquer 16 fois et il devra tourner 4 fois à chaque coin: il faudrait donc au moins 36 (16+16+4) blocs pour faire cela.... C'est long, surtout pour des actions qui se répètent. Et si on veut dessiner un carré de 6 cases de coté, tout est à refaire!
Il existe une solution adaptée à des actions répétitives: les boucles qui permettent de répéter un nombre de fois donné une même partie de programme.
Une boucle est représentée dans l'organigramme par un bloc dans lequel on peut insérer d'autres blocs correspondant à la partie de programme à répéter.

Boucle Pour

Recopiez le sous-programme ci-dessous qui fait marquer au robot 4 cases alignées.
  1. choisissez le menu Programmation > Nouveau sous-programme
  2. donnez au sous-programme le nom DessinerUnCote
  3. construisez l'organigramme du sous-programme; utilisez la boucle de droite (Boucle Pour)
  4. vérifiez le résultat obtenu

          

L'en-tête de la boucle contient l'instruction: Pour i = 1 jusque 4.
Pour et jusque sont deux mots-clefs obligatoires dans cette instruction.
i est une variable du programme, utilisée ici comme variable de la boucle.
1 est la valeur initiale de la variable et 4 est sa valeur finale; ces valeurs peuvent être des nombres entiers ou des expressions numériques.
Suivant est un mot-clef qui indique la fin de la boucle.

Déroulement de l'exécution :

  1. la première fois que la boucle est exécutée, la variable de boucle reçoit la valeur initiale: i a au départ la valeur 1
  2. ensuite le corps de la boucle (organigramme contenu dans la boucle) est exécuté: le robot dessine une marque sur la case qu'il occupe, puis avance d'une case
  3. ensuite l'instruction Suivant est exécutée, elle a pour effet de ramener l'exécution à l'en-tête de la boucle
  4. la deuxième fois que l'en-tête est exécuté, la variable de la boucle est augmentée par défaut d'une unité: la valeur de i devient 2 (On peut augmenter la variable de plusieurs unités grâce à l'instruction pas. Par exemple, avec l'en-tête Pour j=5 jusque 25 pas 10, la variable j aura successivement les valeurs 5, 15 et 25)
  5. ensuite le corps de la boucle est à nouveau exécuté, puis l'instruction Suivant et ainsi de suite jusqu'à ce que la valeur de la variable dépasse la valeur finale. La boucle sera terminée quand i aura la valeur 5: le robot aura alors marqué 4 cases. L'exécution du programme se poursuit au bloc qui suit la boucle (ici le bloc de fin).

Les boucles sont disponibles à partir du niveau 5: choisissez en conséquence un niveau supérieur ou égal à 5. Utilisez le terrain Terrain9x9SansObstacles. Sélectionnez l'objectif Dessiner un carré sur le sol.

Complétez l'organigramme de cette leçon pour faire dessiner un carré de 5 cases de côtés:

  1. avec le robot orienté vers la droite et positionné sur la case (1,1). Pour mémoire, les coordonnées sont expliquées à la leçon 5.
  2. quelles que soient la position et l'orientation initiales du robot.

Compétition

Ecrivez un programme qui marque toutes les cases du terrain 9x9 sans obstacles le plus vite possible. Au début, le robot est placé et orienté au hasard.


Zone pour malvoyants

Ecrivez un programme qui dessine un carré de 5 cases de côté sur le sol:

  1. avec le robot orienté vers la droite et positionné sur la case (1,1). Pour mémoire, les coordonnées sont expliquées aux malvoyants à la leçon 2.
  2. quelles que soient la position et l'orientation initiales du robot.