TP1-PROG-04 - Boucles for approfondissement
Contents
TP1-PROG-04 - Boucles for
approfondissement#
Objectif pédagogiques#
approfondir le concept de boucles d’instructions
Exercice 1 : une spirale “carrée”#
Ecrivez un programme en utilisant une boucle qui dessine une spirale qui commence avec une longueur de segment de 2 et qui augmente chaque fois de 1. L’angle choisi est de 30°
Exercice 2 : dessiner des mandala#
Un mandala est une représentation symbolique bouddhiste de l’univers, de forme géométrique et symétrique par rapport à son centre. Il sert à la méditation.
Voici quelques exemples de mandalas produits. Observez-les et reproduisez-le. Quels sont les angles choisis et pourquoi observe-t-on les effets de Moiré ?
Exercice 3 (a step forward)#
Est-il possible d’améliorer la courbure de la spirale et donc d’affiner le segment en arc de cercle ?
Indications :
On peut utiliser la fonction circle()
qui prend en paramètre deux nombres :
t.circle(rayon, angle)
Syntaxe complète de la boucle for
#
La fonction range()
se généralise avec 3 paramètres : la borne inférieure (bi
), la borne supérieure (bs
) ainsi que le pas (pas
) :
for i in range(bi, bs, pas) :
bloc instructions
Exercice 4 : boucle avec bornes et pas#
Le code suivant permet de dessiner un losange bleu rempli de jaune :
from turtle import *
t = Turtle()
t.pencolor("blue")
t.pensize(4)
t.fillcolor('yellow')
t.speed(0)
t.begin_fill()
t.forward(100)
t.left(30)
t.forward(100)
t.left(150)
t.forward(100)
t.left(30)
t.forward(100)
t.left(150)
t.end_fill()
Modifiez ce code en utilisant une ou des boucles pour reproduire le dessin suivant :
Exercice 5 : pour aller plus loin#
Voici un code permettant de dessiner une maison dont la taille est précisée par la variable taille
:
from turtle import *
t = Turtle()
t.pencolor("black")
t.pensize(2)
t.speed(0)
taille = 100
t.fillcolor('blue')
t.begin_fill()
for i in range(4):
t.forward(taille)
t.left(90)
t.end_fill()
t.fillcolor('red')
t.penup()
t.left(90)
t.forward(taille)
t.right(90)
t.pendown()
t.begin_fill()
for i in range(3):
t.forward(taille)
t.left(120)
t.end_fill()
t.penup()
t.right(90)
t.forward(taille)
t.left(90)
t.pendown()
En ajoutant une nouvelle variable nbrMaison
ainsi qu’une nouvelle boucle, reproduisez le dessin ci-dessous :
Comment dessiner une spirale ?#
Une spirale est un objet formé de segments dont la longueur augmente à chaque itération. Les premières étapes sont donc (avec un angle de 30°):
On observe que le changement dans le dessin est minime : c’est la taille du segment. On peut donc implémenter le programme avec une boucle et utiliser la valeur de la variable itérateur comme argument de la fonction
t.forward()