Connexion élèves

Choisir le(s) module(s) à installer :

Fonctions - Correction module Turtle

Fonction carré

Appel de la fonction

La fonction ne renvoie aucun résultat, donc pas la peine de stocker ce dernier dans une variable ou de l'afficher :


from turtle import *

def carre():
	
	down()
	
	for i in range(4):		
		right(90)	
		forward(50)	

	up()
	
carre() # appel de la fonction		

done()	
			

Paramètre longueur


from turtle import *

def carre(longueur):
	
	down()
	
	for i in range(4):		
		right(90)	
		forward(longueur) # instruction qui trace un côté	

	up()
	
carre(60) # appel de la fonction avec un argument de longueur quelconque

done()	
			

Paramètres longueur et angle de rotation

Il faut faire tourner la tortue avant de tracer le carré, donc avant la boucle for...in... de la fonction :


from turtle import *

def carre(longueur, angle):
	
	down()
	
	right(angle)
	
	for i in range(4):		
		right(90)	
		forward(longueur) # instruction qui trace un côté	

	left(angle) # pour réinitialiser la tortue dans la "bonne" direction
	
	up()	
	
carre(60, 35) # appel de la fonction avec un argument de longueur quelconque

done()
			

Tracé de figures variées

Par la suite, on ne modifie plus la fonction : le programme principal doit appeler "correctement" la fonction, en lui passant les "bons" arguments, de façon à obtenir la figure recherchée.


from turtle import *

speed(0) # permet d'accélérer le tracé !

# DEFINITION DE LA FONCTION

def carre(longueur, angle):
	
	down()
	
	right(angle)
	
	for i in range(4):		
		right(90)	
		forward(longueur) # instruction qui trace un côté	

	left(angle) # pour réinitialiser la tortue dans la "bonne" direction
	
	up()
	
# PROGRAMME PRINCIPAL

# Figure 1
for angle in range(0, 360, 18):
	carre(100, angle) # appel de la fonction avec un argument d'angle incrémenté de 18° à chaque tour de boucle
	
reset() # efface le dessin
speed(0)

# Figure 2
l = 10 # longueur du côté initialisé à 10 pixels
for angle in range(0, 360, 18):
	carre(l, angle) # appel de la fonction avec un argument d'angle incrémenté de 18° 
	l = l + 20 # et de longueur aussi incrémentée à chaque tour de boucle

reset() 
speed(0)

# Figure 3
for colonne in range(5): # 5 lignes

	for ligne in range(5) : # 5 colonnes
		carre(50, 0)
		forward(60) # on se décale vers la droite après chaque carré de la ligne
		
	backward(300) # en fin de ligne, on revient au début,
	right(90) # on tourne à droite,
	forward(60) # on avance de 60 pixels,
	left(90) # on tourne de 90° vers la gauche pour remettre la tortue dans la "bonne" direction
	
done()
			

Fonction étoile

Appel et analyse de la fonction

Pour 3 branches : 180 - 60 = 180 - 180 / 3, donc pour n branches ( n impair ) : 180 - 180/n


from turtle import *

# DÉFINITION DE LA FONCTION

def etoile(n):
	
	down()
	
	for i in range(n):		
		forward(100)
		right(180 - 180/n)	

	up()
					
etoile(5)

done()

			

Ciel étoilé

Voir la documentation du module Turtle !


from turtle import *
from random import randint

speed(0)

# DÉFINITION DE LA FONCTION

def etoile(a, n): # a = longueur des branches, n = nombre de branches
	
	down()
	
	for i in range(n):		
		forward(a)
		right(180 - 180/n)	

	up()	
	
# PROGRAMME PRINCIPAL
				
for i in range(20):

    a = randint(10,100) # taille de l'étoile au hasard
    n = 7 # étoiles à 7 branches
    x = randint(-200,200) # position au hasard
    y = randint(-200,200)

    goto(x,y) # déplacement de la tortue vers la position

    etoile(a, n)
    
done()
   
			

Fonction étincelle


from turtle import *

# DÉFINITION DE LA FONCTION

def etincelle(longueur, n): # longueur = longueur des branches, n = nombre de branches
	
	for i in range(n): 
		down()
		right(360/n) # la tortue tourne de 360/n ° à chaque tour de boucle
		forward(longueur)
		up()
		backward(longueur)
						
etincelle(50, 10)

done()
		
			
>