A quoi sert une fonction en programmation ?
#1 A quoi sert une fonction ?
Je reprends le tuto précédent sur le test conditionnel. Supposons maintenant, que le trader fasse une nouvelle transaction. Par exemple, s'il achète 42€ pour revendre 40€ un lot de 20 actions. Eh bien, il nous faut refaire le calcul de benef
.
Ci-dessous, je programme ce nouveau calcul et je stocke le résultat dans la variable benef
. Il y a plusieurs choses à voir. La variable est à gauche du signe de l'affectation, donc elle reçoit une nouvelle valeur, mais elle perd l'ancienne. La variable ayant déjà été déclarée, il ne faut pas utiliser le mot réservé var
(ligne 8).
Vous pouvez voir également, que c'est un calcul que l'on a déjà fait, mais avec des valeurs différentes. A chaque nouvelle transaction du trader, il faudra refaire ce même calcul, avec les valeurs de la transaction. L'idée, c'est de programmer une sorte de "boîte de calcul", à qui, on va sous-traiter ce calcul. Ensuite, à chaque nouvelle transaction, on réutilisera cette boîte.
C'est une fonction qui va nous permettre de faire ça. En fait, c'est la fonction qui va servir de boîte.
La fonction, vous allez la déclarer, pour dire ce qu'elle fait. Vous la déclarez qu'une seule fois. Au moment de la déclaration, il n'y a aucune instruction qui est exécutée.
Pour la déclarer, vous allez vous servir d'un snippet :
- Vous tapez
fun
commefunction
et vous choisissezfunction_with_name
. - Vous tapez
tab
puiscalculerBenef
pour donner un nom à la fonction. Ce nom servira à appeler la fonction pour demander le calcul. - Vous tapez
tab
et vous tapezprixAchat,prixVente,qt
. Là, vous indiquez la liste des informations que la fonction prend en entrée. Cette liste, je l'appelle la liste des paramètres de déclaration. Vous devez mettre une virgule entre chaque paramètre de déclaration. Certains parlent d'arguments. D'ailleurs, c'est ce que Sublime Text écrit. - Vous tapez
tab
, vous déclarez une variablecalcul
, vous lui affectez la formule de calcul en vous servant des paramètres de déclaration. - Puis pour terminer, vous retournez la valeur de
calcul
au moyen de l'instructionreturn
.
Ensuite, vous allez appeler cette fonction autant de fois que vous voulez. Vous lui donnez à chaque fois de nouvelles valeurs en paramètres d'appel.
Ce sont toujours les mêmes instructions qui s'exécutent, mais avec des valeurs différentes.
Les paramètres d'appel sont copiés dans les paramètres de déclaration.
#2 Portée de la variable et des paramètres de déclaration.
Ici la variable calcul
est un exemple de variable qui est déclarée dans la fonction. Cette variable n'existe que dans la fonction. On dit qu'elle est locale à la fonction.
Dans le tutoriel sur la variable, je vous ai dit qu'une variable avait une portée. Eh bien ici, la portée de la variable calcul
, c'est la fonction.
C'est la même chose pour les paramètres de déclaration, qui ne sont visibles, que dans la fonction.
#3 J'ai besoin de changer le calcul...
Supposez qu'il y ait des frais à chaque transaction. Ce qui est le cas dans la réalité. Il me suffit de modifier le calcul dans la fonction et la modification sera reportée dans tous les appels que j'ai faits.