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')