deutsch     english    français     Imprimer

 

2.3 RÉPÉTITION

 

 

INTRODUCTION

 

Les ordinateurs sont particulièrement bons pour répéter des instructions de manière répétitives des milliers de fois, y compris les instructions à destination de la tortue. Pour dessiner un carré, il faut entrer les commandes forward(100) et left(90) quatre fois d'affilée. Pour ce faire, il est suffisant d'indiquer à la tortue de répéter quatre fois ces deux instructions. Cela se fait facilement avec la structure repeat qui permet d'indiquer à la tortue de répéter un bloc d'instructions un certain nombre de fois. Afin d'indiquer à l'ordinateur quelles instructions il faut répéter, ces dernières doivent être décalées (on dit indentées en langage technique) par rapport à l'instruction repeat. On utilise généralement 4 espaces consécutifs pour marquer une indentation.

CONCEPTS DE PROGRAMMATION:
Répétition simple, boucle de répétition au lieu de copier-coller inutilement du code.

 

 

STRUCTURE REPEAT

 

Pour dessiner un carrée, la tortue doit avancer tout droit 4 fois de suite et tourner à chaque fois de 90°. Si l'on devait écrire un tel programme, il deviendrait rapidement très long.

À l'aide de l'instruction repeat 4: on demande à la tortue de répéter 4 fois les Lignes indentées. Faites attention de ne pas oublier le double point (:) après la structure repeat.


 

from gturtle import *

makeTurtle()
repeat 4:
    forward(100) 
    left(90)
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 

Par l'instruction repeat n:, on demande à l'ordinateur de répéter n fois une ou plusieurs instructions avant de continuer l'exécution normale du programme. Tout ce qui doit être répété doit être placé directement sous l'instruction repeat avec une indentation cohérente. Il ne faut pas mélanger les espaces et les tabulations pour marquer l'indentation. Dans le monde de Python, les espaces sont recommandés pour marquer les tabulations.

repeat number:
    Instructions
qui doivent être
répétées

 

 

RÉPÉTER DES SONS

 

Un exemple typique de répétition de sons est le "Pim-Pom Pim-Pom" des camions pompiers. Il est facile de générer ce genre de suite de sons et, pour le plaisir, faire zizaguer la tortue. On peut générer un son pur avec l'instruction playTone(), en indiquant sa hauteur grâce à la fréquence (en Hertz) et sa durée (en millisecondes).


 

from gturtle import *

makeTurtle()

setPos(-200, 0)
right(45)

repeat 5:
    playTone(392, 400)   
    forward(50)    
    right(90)
    playTone(523, 400)
    forward(50)  
    left(90)
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 

La fonction setPos(x, y) permet de placer la tortue à un endroit précis sur la fenêtre sans dessiner de trace.

Les deux entiers x et y représentent les coordonnées relative à l'origine qui se trouve au centre de la fenêtre. Les intervalles dans lesquels se situent les coordonnées dépendent de la taille de la fenêtre

Tu peux également spécifier la note de la gamme du son produit par playTone() en utilisant une lettre représentant la note à jouer dans le système anglo-saxon. Pour rappel, le La est représenté par la lettre a, le Si par la lettre b etc ... Pour passer à l'octave inférieure, il faut rajouter une apostrophe après la lettre de la note, ce qui donnerait a', b', c', d', et ainsi de suite. On peut rajouter deux apostrophes pour passer à l'octave supérieure. Il ne faut pas oublier de rajouter les doubles guillemets autour du nom de la note, donc par exemple "a". On peut spécifier un instrument pour jouer cette note. Les instruments disponibles sont "piano", guitar, "harp", "trumpet", "xylophone", "organ", "violin", "panflute", "bird", "seashore"). Faites-vous plaisir en essayant ceci:

Son grave: playTone("g", 400, instrument = "trumpet")
Son aigu: playTone("c", 400, instrument = "trumpet")

 

 

BOUCLES DE RÉPÉTITIONS IMBRIQUÉES

 

On peut facilement générer un carré avec repeat 4:. Maintenant, on va essayer de dessiner 20 carrés en les tournant légèrement les uns par rapport aux autres. Pour ce faire, il faut imbriquer deux instructions repeat l'une dans l'autre. Dans le bloc d'instructions interne, la tortue dessine un carré et tourne ensuite de 18 degrés vers la droite. L'instruction repeat 20 permet de répéter ce comportement 20 fois. Faites bien attention à indenter correctement les différents blocs d'instructions, sans quoi la tortue risque de faire n'importe quoi.

On peut accélérer énormément le dessin en cachant la tortue avec hideTurtle().

 

 
from gturtle import *

makeTurtle()

# hideTurtle()
repeat 20:
    repeat 4:
        forward(80) 
        left(90)
    right(18)      
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 
Les instructions repeat peuvent être imbriquées. Il est capital d'indenter correctement les lignes appartenant à chacun des blocs repeat.

 

 

EXERCICES


  1. Dessiner un escalier comportant 7 marches.  

  2. Dessiner une étoile en utilisant l'instruction back().  

  3. Dessiner une "vraie" étoile grâce en utilisant les angles de 140° et 80°.  

  4. Dessiner la figure suivante en utilisant deux instructions repeat imbriquées. Le repeat intérieur doit dessiner un carré.  

  5.

Dessiner un collier de perles.

 

  6. Dessiner un oiseau.