2.5 PARAMÈTRES

 

 

INTRODUCTION

 

Lorsque l’on utilise la commande forward(), on indique à la tortue de combien on veut avancer en indiquant la valeur entre parenthèses. Cette valeur entre parenthèses indique donc de combien on veut faire avancer la tortue. Il s’agit d’une précision sur la manière d’exécuter la commande et s’appelle un paramètre. Dans le cas précis, il s’agit d’un nombre entier qui peut varier à chaque appel de la fonction forward(). Dans le chapitre précédent, nous avons défini notre propre commande square() mais celle-ci, au contraire de la fonction forward(), ne prend aucun paramètre et dessine inlassablement des carrés dont le coté vaut 100. Il serait bien pratique d’être en mesure de préciser la taille du côté du carré. Comment peut-on faire cela ?

CONCEPTS DE PROGRAMMATION: Paramètres, passer des paramètres

 

 

COMMANDES AVEC PARAMÈTRES

 

Le programme ci-dessous définit également une fonction square permettant de dessiner un carré. Cependant, au lieu d’utiliser des parenthèses vides dans la définition de la fonction, on ajoute le paramètre formel sidelength que l’on peut spécifier lors de l’appel forward(sidelength).

On peut de ce fait utiliser la fonction square à plusieurs reprises en spécifiant à chaque fois une autre valeur pour la longueur des côtés sidelength.

Par exemple, l’appel square(80) demande à la tortue de dessiner un carré de 80 pixels de côté alors que l’appel square(50) lui demande d’en dessiner un de 50 pixels de côté.
 


from gturtle import *

def square(sidelength):    
    repeat 4: 
        forward(sidelength) 
        left(90)
      
makeTurtle()
setPenColor("red")
square(80)
left(180)
setPenColor("green")
square(50)
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 
Les paramètres jouent le rôle de valeurs de substitution pouvant être différente à chaque fois. Lors de la définition d’une nouvelle commande, on spécifie entre parenthèses et dans l’ordre le nom des paramètres formels tels que l’on s’y réfère dans le corps de la fonction.
def commandname(parameter):
    Instructions that
    use  parameter
Les noms des paramètres formels peuvent être choisis librement mais ils devraient refléter leur rôle dans le corps de la fonction. Lors de l’appel de la fonction, on spécifie également entre parenthèses la valeur que l’on veut substituer au paramètre au sein de la fonction.
commandname(123)
En l’occurrence, la valeur du paramètre vaut 123. Toutes les occurrences du paramètre au sein du corps de la fonction vont donc être remplacées par cette valeur durant l’intégralité de l’appel.

 

 

PARAMÈTRES MULTIPLES

 

Les commandes peuvent prendre plusieurs paramètres. Pour un carré, on pourrait utiliser def square(sidelength, color) pour ajouter un deuxième paramètre permettant de spécifier la couleur dans laquelle il faut dessiner les côtés.

Cela rend possible une utilisation encore bien plus flexible de la fonction square(). En effet, square(100, "red") dessinera un carré rouge de 100 pixels de côté tandis que square(80, "green") dessine un carré vert de 80 pixels de côté.
 


from gturtle import *

def square(sidelength, color):
    setPenColor(color)    
    repeat 4: 
        forward(sidelength) 
        left(90)
      
makeTurtle()
square(100, "red")
left(120)
square(80, "green")
left(120)
square(60, "violet")
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 
Les commandes peuvent accepter plusieurs paramètres. Ces derniers sont indiqués entre parenthèses et séparés par des virgules:
def commandname(param1, param2....):
   Instructions qui utilisent les 
   paramètres param1 et param2 
L’ordre des paramètres formels entre parenthèses dans la définition de la fonction doit correspondre à l’ordre des paramètres réels passés à la fonction lors de son appel.

 

 

EXERCICES

 

1.

Définir une fonction triangle(color) qui demande à la tortue de dessiner des triangles colorés. Elle doit dessiner quatre triangles de couleur rouge, verte, bleue et violette. 

 

 

 

 

2.

Définir une fonction colorCircle(radius, color) telle que la tortue dessine un cercle coloré. La fonction rightArc(radius, angle) peut être utilisée dans ce but. Employer cette fonction par la suite pour dessiner la figure ci-contre.

 

3.


Malheureusement, le programme suivant dessine trois pentagones isométriques au lieu de leur donner une taille différente comme souhaité. Expliquer le pourquoi du comment et réparer le programme.

from gturtle import * 

def pentagon(sidelength, color): 
   setPenColor(color) 
   repeat 5: 
      forward(90) 
      left(72)

makeTurtle() 
pentagon(100, "red") 
left(120) 
pentagon(80, "green") 
left(120) 
pentagon(60, "violet")
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

4.

La fonction segment(dist, angle) permet de faire avancer la tortue sur un segment de longueur dist et de terminer son trajet en se tournant d’un angle angle :
def segment(s, w):
   forward(s)
   right(w) 
Écrire un programme qui appelle cette fonction 92 fois avec dist = 300 et angle = 151. Débuter le dessin dans une position appropriée avec la fonction setPos(x,y).

5*.

Dans les exemples suivants, la tortue va effectuer des mouvements de deux, trois ou quatre segments. Admirer les graphiques produits dans les cas suivants :

Nombre de segments
Valeurs
Nombre de répétitions
2
forward(77)
right(140.86)
forward(310)
right(112)
37
3
forward(15.4)
right(140.86)
forward(62)
right(112)
forwad(57.2)
.right(130)
46
4
forward(31)
right(141)
forward(112)
right(87.19)
forward(115.2)
right(130)
forward(186)
right(121.43)
68