Le robot dessine
 
  Dessiner un coté d'un carré
  Dessiner un carré
  Retour au sommaire du tutoriel
   
De l'utilité des boucles
 

*Dans ce chapitre vous allez faire dessiner par le robot un carré de 5 cases de coté. Pour dessiner une marque sur une case le robot utilisera l'instruction Marquer puis il devra tourner si besoin et avancer pour marquer la case suivante. 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 blocs pour faire cela .... C'est bien trop long comme organigramme, surtout pour des actions qui doivent être répétées. Et puis si on veut dessiner un carré de 6 cases de coté , tout est à refaire ... Alors il existe une solution adaptée à des actions répétitives : on utilisera ici des 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.

  * Avant de commencer le programme :
- ouvrez un nouveau programme et choisissez le niveau 5
- le but du programme est de tracer un carré, vous pouvez choisir dans la fenêtre programme l'objectif "Dessiner un carré sur le sol"
- changez le terrain : avec le menu Terrain > Modifier, puis le menu Terrain > Ouvrir choississez le terrain Terrain9x9SansObstacles.bog qui se trouve dans le dossier Fichiers du tutoriel. Cliquez enfin sur Utiliser ce terrain dans la fenêtre de modification de terrain.
Dessiner un coté d'un carré
 

Vous allez ici écrire un sous-programme permettant de dessiner un coté du carré.
- choisir le menu Programmation > Nouveau sous-programme
- donner au sous-programme le nom DessinerUnCote
- construisez l'organigramme du sous-programme :

 
 

* L'en-tête de la boucle contient l'instruction : Pour numCase = 1 jusque 4
- Pour et jusque sont deux mots-clefs obligatoires dans cette instruction.
- numCase est une variable du programme, utilisée ici comme variable de la boucle
- 1 est la valeur initiale de la variable et 4 est la valeur finale de la variable ; ces valeurs peuvent être des nombres ou des expressions numériques.
* Déroulement de l'exécution :
- la première fois que la boucle est exécutée, la variable de boucle reçoit la valeur initiale : ici numCase est mise à 1
- ensuite le corps de la boucle (organigramme contenu dans la boucle) est exécuté : ici le robot avance d'une case, puis dessine une marque sur la case qu'il occupe.
- ensuite l'instruction Suivant est exécutée, elle a pour effet de ramener l'exécution à l'en-tête de la boucle.
- la deuxième fois que l'en-tête est exécuté, la variable de la boucle est augmentée d'une unité : ici la valeur de numCase devient 2
- ensuite le corps de la boucle est à nouveau executé, puis l'instruction suivant et ainsi de suite jusqu'à ce que la valeur de la variable dépasse la valeur finale. Ici la boucle sera terminée quand numCase aura la valeur 5 : le robot aura alors marqué 4 cases. L'exécution se poursuit alors au bloc suivant la boucle.
* Pour tester ce sous-programme, vous pouvez dans le programme principal placer un bloc Début suivi d'un bloc d'appel du sous-programme DessinerUnCote, suivi d'un bloc Fin et lancer l'exécution.

L'en-tête et la fin de boucle apparaissent comme des blocs arrondis parce qu'ils jouent un rôle analogue aux blocs Début et Fin : ils indiquent le début et la fin de l'organigramme à répéter dans la boucle. En particulier, le premier bloc exécuté dans le corps de boucle est celui qui est lié à l'en-tête de la boucle.
Dessiner un carré
 

Pour dessiner un carré il suffit de dessiner un coté, puis de tourner à droite, ceci étant répété 4 fois pour chacun des cotés.
On utilisera donc à nouveau une boucle pour dessiner le carré.
- affichez le programme principal et construisez l'organigramme suivant :

 


- lancez l'exécution et vérifiez que le robot dessine un carré.
Dessiner un rectangle :
Les cotés du rectangle ne sont pas tous de même longueur. On peut modifier le sous-programme Dessiner un coté pour avoir un coté de longueur ajustable ; pour cela on peut utiliser une variable longueurCote, à laquelle on affecte une valeur avant d'appeler le sous-programme DessinerUnCote
 

 

Retour au sommaire du tutoriel