langages

publicité
LANGAGES
ISN. Langages - Python
1
dessin avec le module turtle
Le module turtle de Python permet de construire des figures en donnant des instructions à une tortue
comme dans le langage LOGO.
1° Faire une recherche sur internet sur le langage LOGO et la tortue LOGO.
2° Tester le programme suivant.
polygone.py
from t u r t l e import ∗ # import de toutes les fonctions du module turtle
p e n c o l o r ( " r e d " ) # couleur du crayon
# la boucle while contient les instructions données à la tortue
p o s ( ) # affichage de la position initiale de la tortue : l ’ origine (0 ,0)
w h i l e True :
f o r w a r d ( 1 0 0 ) # avance de 100 pixels
l e f t ( 9 0 ) # tourne à gauche de 90 degrés
i f a b s ( p o s ( ) ) < 1 : # si la position est à une distance de (0 ,0) inférieure à 1
break # on sort de la boucle
done ( ) # pour lancer la construction
1
2
3
4
5
6
7
8
9
10
3° Modifier ce programme pour qu’il dessine un triangle équilatéral, puis un hexagone puis un octogone.
4° Remplacer la valeur 90 par 70 en ligne 7 et insérer l’instruction i = 0 juste avant le while de la ligne
5 puis les instructions i = i + 1 et print(i) comme premières instructions du bloc commandé par le
while .
5° Tester le programme modifié. Que se passe-t-il ?
6° Calculer le plus petit commun multiple de 70 et 360 avec un autre programme et expliquer le déroulement
du programme polygone.py.
Il semblerait plus naturel de remplacer le test abs(pos())<1 par pos() == (0,0) . On peut essayer mais
cela ne fonctionne pas comme prévu . . . Pour stopper une boucle infinie on peut faire Ctrl+C . La fonction
pos() retourne les coordonnées de la position courante de la tortue sous la forme d’un couple de flottants
et contrairement aux entiers les flottants sont représentés en valeur approchée et une valeurs très proche
de (0, 0) n’est pas (0, 0) pour l’ordinateur . . .
2
On donne l’algorithme suivant destiné à faire marcher la tortue de Python.
Au début la tortue est dans le point A du graphique
tournée vers la droite. La tortue tourne toujours
dans le sens direct, c’est-à-dire vers la gauche.
Chaque case est de dimension 10. Dessiner le trajet
parcouru par la tortue lorsqu’on exécute l’algorithme.
Algorithme 1 : La tortue
Variables
i, taille
Traitement
taille ←−10
Pour i allant de 1 à 5 (inclus)
avance(taille)
tourne(90)
avance(i*taille)
tourne(180)
avance(i*taille)
tourne(90)
A
Sortie
Le trajet parcouru par la tortue
http://lycee.lagrave.free.fr/isn
1
ISN. Langages - Python
Principales fonctions du module turtle
reset()
goto(x,y)
forward(d)
backward(d)
up(), down()
left(θ), right(θ)
color(’red’),width(l)
circle(R)
done() ou mainloop()
3
effacer tout et recommencer
aller au point de coordonnées (x,y)
avancer de d
reculer de d
lever ou baisser le crayon
tourner à gauche et à droite de θ degrés
couleur, épaisseur du tracé
trace un cercle de rayon R
lance la construction
Tester puis expliquer les programmes suivants :
turtle3.py
turtle1.py
1
2
3
4
5
from t u r t l e import ∗
for i in range ( 4 ) :
forward (100)
l e f t (90)
mainloop ()
turtle2.py
1
2
3
4
5
6
from t u r t l e import ∗
r a y o n = 20
w h i l e r a y o n <100:
c i r c l e ( rayon )
r a y o n=r a y o n +10
mainloop ()
from t u r t l e import ∗
r a y o n = 20
w h i l e r a y o n <100:
c i r c l e ( rayon )
up ( )
r i g h t (90)
forward (10)
l e f t (90)
down ( )
r a y o n=r a y o n +10
mainloop ()
1
2
3
4
5
6
7
8
9
10
11
1° Écrire un programme qui permet de tracer un hexagone régulier puis plus généralement un polygone
régulier à n côtés (faire une rechercher internet sur la somme des angles d’un polygone régulier à n
côtés).
2° Écrire un programme qui permet de tracer une spirale polygonale comme celle ci-dessous puis modifier
un paramètre du programme pour tracer d’autres types de spirales polygonales.
3° Écrire un programme qui permet de tracer une étoile à cinq branches comme celle ci-dessous.
4° Écrire un programme qui dessine le drapeau européen avec douze étoiles à cinq branches jaunes sur un
fonds bleu.
Une spirale
Une étoile
4
Travail sur le NoteBook suivant : Initiation turtle sous Python.ipynb
Pour visualiser ce fichier voir la page http://jiffyclub.github.io/open-in-nbviewer/
http://lycee.lagrave.free.fr/isn
2
Téléchargement