wiederholung
Deutsh    Français   

3. ITÉRATION AVEC REPEAT

 

 

 

TU APPRENDS ICI...

 

que tu peux écrire un bloc de programme avec une ou plusieurs lignes de code, puis l'exécuter à répétition autant de fois que tu l’auras défini. Cela t’évite de taper beaucoup de texte et rend le programme plus lisible.

 

 

EXEMPLES

 

Le serpent doit se déplacer le long d’un carré dont chaque côté fait 3 pas. Au lieu d'écrire les lignes de commande forward(3) et right(90) quatre fois, tu ne les écris qu'une seule fois mais en indiquant à l’ordinateur d’itérer ces deux commandes 4 fois avec le mot clé repeat

Programme:

from oxosnake import *

makeSnake()
repeat 4:
    forward(3) 
    right(90)
► Copier dans le presse-papier
 

En observant le programme, tu peux constater que les lignes du programme qui sont répétées doivent être indentées de la même manière : le vide devant chaque ligne de code est identique. Le nombre d’espaces n'a pas d'importance, mais nous en mettrons 4 de manière uniforme afin que tous les programmes se ressemblent. Tu pourrais aussi utiliser la touche de tabulation pour écrire une indentation. Une structure de répétition est également appelée "boucle".

Dans l'exemple suivant, le serpent doit commencer dans la rangée du bas et se déplacer continuellement du bas vers le haut et inversement. On utilise la commande setPos(x, y) pour placer le serpent à la position (x, y). La commande setSpeed(90) permet d'augmenter la vitesse (vitesse maximale = 100).

Mémorise bien comment le système de coordonnées est défini : l’origine se situe en haut à gauche, l’axe des x est vers la droite, et l’axe des y vers le bas.

 


Programme:

from snake import *

makeSnake()
setPos(3, 7)
setSpeed(90)
repeat:
    forward(8)
    right(180)
► Copier dans le presse-papier

Si tu écris repeat sans valeur, la boucle est répétée à l'infini. Tu peux annuler le programme avec Ctrl+C dans une fenêtre du terminal ou télécharger un nouveau programme.

Ton serpent peut obtenir de nouvelles propriétés avec les commandes setPos() et setSpeed(). Ces propriétés peuvent aussi être définies lorsque tu crées ton serpent avec la commande makeSnake() comme dans l’exemple ci-dessous :

Programme:

from snake import *

makeSnake(speed = 90, pos = (3, 7))

repeat:
    forward(8)
    right(180)
► Copier dans le presse-papier

 

 

N’OUBLIE PAS...

 

On effectue l’itération de commandes avec repeat n :, où n est le nombre de répétitions. Le double points est important. Toutes les lignes de commandes du bloc de programme suivant doivent avoir le même espace d’indentation.

Si on utilise repeat : sans valeur d’itération, la boucle se répète à l’infini (jusqu'à ce que tu cliques Ctrl+C dans la fenêtre du terminal, que tu télécharges un nouveau programme, que tu réinitialises l'Oxocard ou que tu la mettes en veille). 

 

 

À TOI DE JOUER

 

 

1.

Utilise une boucle d’itération (repeat) pour laisser le serpent courir exactement une fois puis à l’infini selon   la figure ci-contre.

 


2.
Le serpent se déplace le long d’un octogone identique à celui du dessin ci-contre. Il te suffit de trouver  de quel angle le serpent doit tourner à chaque deux pas pour que la figure soit simple à décrire avec une boucle d’itération. Laisse le serpent se déplacer exactement une fois et ensuite à l’infini à travers cet octogone.  


3.

Arriveras-tu aussi à programmer ce chemin en zig-zag ?

 

 

 


4.

Le serpent doit se déplacer à répétition en diagonale du bas vers le haut et inversement. Utilise une boucle infinie et teste si tu peux terminer le programme en faisant Ctrl+C dans la fenêtre du terminal.

 


.

 

 


 

 

3-1
Informations didactiques:

Le mot-clé repeat n'est pas une partie standard de la syntaxe Python, mais a été spécialement intégré à TigerJython car il n'a besoin d'aucune variable et est donc plus simple. En Python, au lieu de repeat n, vous utilisez :
for i in range(n):

Dans ce tutoriel, la boucle for i in range(n) sera utilisée plus tard.