Conception modulaire avec des fonctions à paramètres
Conception modulaire avec des fonctions à paramètres
Objectifs cantonaux : O1.6. Semaine dédoublée (×2, groupes A/B séparés).
Cours complet sur la plateforme Runestone de Cédric Donner : Conception modulaire.
En S6, vous avez vu l’intérêt de découper un programme en plusieurs fonctions (programmation modulaire). En combinant cette idée avec les fonctions à paramètres (S8, S11), les fonctions deviennent à la fois réutilisables et personnalisables — chaque brique du programme peut être réglée sans dupliquer de code.
▷ Concevoir un programme modulaire et paramétré
Pour concevoir un programme fait de plusieurs fonctions à paramètres :
- Repérer les éléments répétés du dessin ou du programme (ce qui revient plusieurs fois avec de petites variations).
- Pour chacun, définir une fonction dont les paramètres correspondent exactement à ce qui varie (taille, couleur, position, …).
- Écrire une fonction « chef d’orchestre » qui appelle les fonctions plus petites avec les bonnes valeurs, dans le bon ordre.
from gturtle import *
def facade(taille, couleur):
setPenColor(couleur)
for _ in range(4):
forward(taille)
right(90)
forward(taille)
def toit(taille, couleur):
right(30)
setPenColor(couleur)
for _ in range(3):
forward(taille)
right(180 - 60)
left(30)
back(taille)
def maison(taille, couleur_facade, couleur_toit):
facade(taille, couleur_facade)
toit(taille, couleur_toit)
maison(100, "black", "red")
forward(150)
maison(80, "black", "blue")
forward(130)
maison(120, "black", "brown")Sans paramètres, il aurait fallu une fonction différente pour chaque combinaison de taille et de couleurs. Ici, une seule définition de maison suffit pour dessiner des maisons toutes différentes, simplement en changeant les valeurs transmises à l’appel.
! Bien choisir ses paramètres
Le choix des paramètres est une décision de conception : si vous vous apercevez que deux appels d’une même fonction ne diffèrent que par une seule valeur codée « en dur » dans le corps de la fonction, c’est probablement le signe qu’il manque un paramètre.