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