🐢 Lot de carrés⚓︎
Exercice : Construire avec Basthon une image de cette allure :
Il y a 10 carrés, chacun est deux fois plus petit que son voisin de gauche.
On pourra compléter le code :
🐍 Script Python
import turtle
def des_carres(x, n):
"""Dessine n carrés dont le premier est de taille x
le suivant à droite est deux fois plus petit...
"""
...
turtle.penup()
turtle.goto(-200, -100)
turtle.pendown()
turtle.pensize(3)
des_carres(200, 10)
turtle.done()
Indice
On pourra commencer par écrire une fonction carre
🐍 Script Python
def carre(x):
"Dessine un carré de côte x"
for _ in range(4):
turtle.forward(x)
turtle.left(90)
Réponse
🐍 Script Python
def des_carres(x, n):
"""Dessine n carrés dont le premier est de taille x
le suivant à droite est deux fois plus petit...
"""
for i in range(n):
carre(x)
turtle.forward(x)
x = x / 2
La solution itérative était simple à écrire
Essayez d'en faire une récursive avant de voir la solution.
🐍 Script Python
def des_carres(x, n):
"""Dessine n carrés dont le premier est de taille x
le suivant à droite est deux fois plus petit...
"""
if n > 0:
carre(x)
turtle.forward(x)
des_carres(x / 2, n - 1)
Ici, la solution récursive ne constitue qu'un entrainement pour la suite !