Aller au contenu

Tracer des nombres⚓︎

Consigne pour cette partie

Dans cette partie, nous allons essayer de tracer des histogrammes Ă  partir de textes contenant des chiffres. Pour convertir en nombre un texte correspondant Ă  un entier, il faut utiliser l'expression int(nombre) :

>>> int("145")
145
>>> int("9")
9

Pour déplacer la tortue, vous n'utiliserez que les commandes forward(longueur), backward(longueur), left(angle) et right(angle).

Exercice 13

Compléter la fonction histogramme(nombre) qui trace un histogramme correspondant au nombre, donné sous forme de texte. Chaque barre correspond à un chiffre. La hauteur correspond à ce chiffre multiplié par LONGUEUR et la largeur est LONGUEUR.

# Exercice 13 et 14
def histogramme(nombre):
    for chiffre in nombre:
        valeur = int(chiffre)
        left(90)
        forward(... * LONGUEUR)
        right(90)
        forward(...)
        right(90)
        ...
        ...

La figure ci-contre est obtenue avec l'expression ci-dessous :

>>> histogramme('123504')
Exercice 14

Modifier la fonction histogramme pour que la tortue revienne Ă  sa position initiale, et se tourne vers la droite.

Le nombre de chiffres dans le texte est obtenu avec len(nombre).

La figure ci-contre est obtenue avec l'expression ci-dessous :

>>> histogramme('123504')
Exercice 15

Compléter la fonction histogramme2 qui prend en paramètre un texte nombre composé de chiffres et qui fonctionne comme histogramme mais qui ne revient pas à la hauteur initiale à chaque fois. Au contraire, elle ne fait que les déplacements verticaux nécessaires. La tortue revient à sa position initiale à la fin.

# Exercice 15
def histogramme2(nombre):
    hauteur = ...
    for chiffre in nombre:
        valeur = int(chiffre)
        if hauteur < valeur:
            ...
            ...
            ...
        else:
            ...
            ...
            ...
        forward(LONGUEUR)
        hauteur = ...
    # On redescend
    right(90)
    forward(...)
    # On revient au début
    ...

La figure ci-contre est obtenue avec l'expression ci-dessous :

>>> histogramme('1253414')
Exercice 16

Compléter la fonction histomax qui prend en paramètre un texte nombre composé de chiffres et qui fonctionne comme histogramme2 sauf que la tortue ne redescent jamais, sauf à la fin. Si le chiffre traité est inférieur au précédent, la tortue reste à la même hauteur. La tortue revient à sa position initiale à la fin.

# Exercice 16
def histomax(nombre):
    hauteur = ...
    for chiffre in nombre:
        valeur = int(chiffre)
        ...
    ...

La figure ci-contre est obtenue avec l'expression ci-dessous :

>>> histogramme('1214257')
Exercice 17

Compléter la fonction histogramme3 qui prend en paramètre un texte nombre composé de chiffres, et qui fait comme histogramme2, sauf que les chiffres de nombre sont lus de droite à gauche.

# Exercice 17
def histogramme3(nombre):
    ...
    for i in range(len(nombre)-1, -1, -1):  # on compte Ă  rebours
        valeur = int(nombre[i])
        ...

La figure ci-contre est obtenue avec l'expression ci-dessous :

>>> histogramme('4214257')