Notions de Programmation
Les fonctions
Une fonction est une "délocalisation" d'une partie du code et éventuellement réutilisable dans d'autres programmes
Méthode : Une simple délocalisation
Ce programme dessine des cercles concentriques dans une fenêtre.
def setup():
size(300,300)
def draw():
background(255,255,255)
noFill()
for i in range(10,300,20):
ellipse(150,150,i,i)
setup()
et draw()
sont des fonctions, on peut donc observer la façon dont on déclare une fonction.
def nomde_la_fonction() :
Nous allons créer une fonction dessine() qui aura pour but de dessiner les cercles concentriques
def setup():
size(300,300)
def draw():
background(255,255,255)
dessine()
def dessine():
noFill()
for i in range(10,300,20):
ellipse(150,150,i,i)
Remarque : il faut appeler la fonction dans le draw()
pour que celle-ci s'exécute.
Méthode : Une délocalisation avec passage de paramètres
Transmettre à une fonction des paramètres.
Dans le programme ci-dessous, on transmet à la fonction "dessine" les coordonnées de la souris pour dessiner une ellipse rouge si on appuie sur le bouton gauche de la souris
def setup():
size(300,300)
background(255,255,255)
def draw():
if mousePressed and mouseButton == LEFT:
dessine(mouseX,mouseY)
def dessine(x,y):
fill(255,0,0)
ellipse(x,y,30,30)
Lors de l'appel de la fonction dessine, x
prend la valeur de mouseX
et y
prend la valeur de mouseY
Sauriez-vous en rajoutant des paramètres dans la fonction, faire en sorte que si on appuie sur le bouton droit de la souris l'ellipse soit verte ?
Méthode : Une délocalisation avec passage de paramètres et retour de valeur
Une fonction peut servir à faire une série d'instructions dont le résultat sera retourné au programme principal.
Par exemple, le programme ci-dessous met dans la variable maxi le plus grand de deux nombres passés en paramètres
# import des bibliothèques javax pour l'affichage de boites de dialogues
from javax.swing import JOptionPane
from javax.swing import JFrame
def setup():
#affichage de la boite de dialogue
frame = JFrame()
a=JOptionPane.showInputDialog(frame,"Entrez un nombre entier","Dialog",JOptionPane.PLAIN_MESSAGE)
b=JOptionPane.showInputDialog(frame,"Entrez un nombre entier","Dialog",JOptionPane.PLAIN_MESSAGE)
#appel de la foncion maximum
maxi=maximum(a,b)
print(maxi)
def maximum(x,y):
if x>y:
return x
else:
return y
Sauriez-vous faire en sorte que le programme demande 3 nombres à l'utilisateur et affiche le plus grand des 3 ?