xLogo

Sequence 3 - Boucles et condition d'arrêt

Par FABIEN CABANEL, publié le samedi 8 octobre 2011 15:28 - Mis à jour le dimanche 23 octobre 2011 08:42

Salle Banalisée

Lors de la précédente séance, nous avons vu comment créer:

  • une procédure (programme)
  • une variable
  • une fonction pour répéter un nombre de fois défini une liste d'instructions

 

Voici par exemple le corrigé du programme qui permet d'avoir un polygone régulier en donnant le nombre de côtés et la longueur du côté: 

polygone 7 100

pour polygone :nbcôté :longueur
repete :nbcôté [av :longueur td 360/:nbcôté]
fin

polygone 9 80

 

 

Salle Informatique

Nous allons aujourd'hui construire le dessin suivant:

 

1°) Pour cela, commençons par écrire un programme qui permette de faire une maison suivant une certaine taille x:

 

 

2°) Réaliser le dessin de la rue demandé. Pour cela, on pourra utiliser des fonctions des 2 programmes suivants:

Fonction tantque

Nous avons déjà vu la boucle : repete nombre [ liste d'instructions ].
Voici la boucle : tantque [condition] [ liste d'instructions ].
Tant que la condition est vraie, répète la liste d'instructions. Il est habituel de changer la valeur d'une variable dans la liste d'instructions et d'effectuer un test sur cette variable dans la condition.

 

Exemple:

pour arc
donne "x 0
tantque [:x<200] [av 1 td 1 donne "x :x+1]
200 fin

  

La fonction donne " permet d'attribuer une valeur à une variable.

Quand on écrit donne "x 0, on dit que x vaut 0 à ce moment là.

 Ici, tant que le nombre x est plus petit que 200, la tortue avance d'un pas et tourne à droite d'un pas.

:x<200 est appelé la condition d'arrêt de la boucle.

 

pour demarre
# Effectue un tracé au hasard.
# s'arrête quand on appuie sur une touche.

tantque [non touche?] [

# tg d'un angle au hasard entre 0 et 359

tg hasard 360
av 1
]
fin

 


   Ce programme permet de:
   1. effectuer une boucle avec une condition d'arrêt, ( tantque [condition] [liste d'instructions] )
   2. obtenir un nombre entier au hasard, ( hasard nombre ) retourne un nombre entre 0 et nombre-1
   3. savoir si le clavier a été pressé, ( touche? ) retourne vrai si on a pressé sur le clavier, faux sinon.
   ( non touche? ) retourne faux si on a pressé sur le clavier, vrai sinon.

 

 Vous aurez sans doute besoin d'agrandir la zone de dessin, et pour cela de paramétrer le logiciel comme suit: