Sequence 3 - Boucles et condition d'arrêt
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 # tg d'un angle au hasard entre 0 et 359 tg hasard 360 |
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: