Aller au contenu

🐢 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 !