Fonctions et procédures en Javascript partie 2
Ecriture d'une procédure
Comme il l'a été expliqué dans la partie 1, une procédure ne renvoie PAS de valeur.
Voyons tout de suite un exemple:
- Définitions des besoins: nous voulons un programme qui effectue la
somme de deux nombres, et qui AFFICHE cette somme.
- Ecriture du programme en pseudo-code:
procedure calculeLaSomme() var nombreUn = 5 ; var nombreDeux = 6 ; var somme = 0 ; somme = nombreUn + nombreDeux ; affiche somme ;
Décortiquons cette procédure :
-La première ligne procedure calculeLaSomme() signifie que l'on veut créer une PROCEDURE dont le nom est calculeLaSomme, vous remarquerez toujours la présence des (), elles ont la même fonction que décrit plus haut, c'est à dire donner des paramètres à la procédure.
-La deuxième ligne var nombreUn = 5 signifie que l'on a déclaré une variable du nom de nombreUn et qu'elle a pour valeur 5.
-La troisième ligne var nombreDeux = 6 ; signifie que l'on a déclaré une variable du nom de nombreDeux et qu'elle a pour valeur 6.
-La quatrième ligne var somme = 0 ;, signifie que l'on a déclaré une variable du nom de somme et qu'elle a pour valeur 0 .
-La cinquième ligne somme = nombreUn + nombreDeux, signifie que l'on fait l'addition des deux variables nombreUn et nombreDeux et que le résultat va être affecté à la variable somme qui a maintenant la valeur 11 (he oui 6 + 5 = 11 ).
-La dernière ligne affiche somme est la plus importante !!!Comme je l'ai dit plus haut, c'est grâce à elle que l'on différencie une procédure d'une fonction. En effet les fonctions RETOURNENT une valeur, les procédures la TRAITE .
Vous voyez qu'à la place de “retourne somme ;” nous avons écrit affiche somme, je vous laisse deviner à quoi
sert cette instruction .
- Ecriture du programme en JavaScript:
<script language="JavaScript" type="text/javascript"> function calculeLaSomme() { var nombreUn = 5 ; var nombreDeux = 6 ; var somme = 0 ; somme = nombreUn + nombreDeux ; document.write (somme) ; } /**** programme principal ****/ calculeLaSomme() ; </script>
Là, plus besoin de “return somme ;” puisque l'on traite la valeur affectée à “somme” directement. Donc plus besoin non plus de :
var resultat = calculeLaSomme ; document.write (resultat) ;
Par contre, pour la faire fonctionner il suffit de l'appeler dans le programme principal comme ceci:
calculeLaSomme() ;
Vous avez pu remarquer que les variables ont été déclarées à l'intérieur de la fonction et de la procédure, on les apelle des variables locales, car elles n'ont d'effet QUE sur la fonction ou sur la procédure. Si on avait voulu utiliser ces variables tout au long de notre
programme il aurait fallu les déclarer en dehors de la fonction ou de la procédure, on les apelle des variables globales .
C'est à vous de choisir quel type de variable (locale ou globale) vous voulez utiliser, essayez simplement de réfléchir à leur utilité.
Les paramètres
He oui, rapellez vous, nous en avons parlé dans la partie1, c'est ce que l'on peut mettre entre les parenthèses qui suivent le nom de la fonction ou de la procédure.
C'est une valeur qui peut-être modifiée à l'intérieure de la fonction ou de la procédure, mais qui est définie dans le programme principal.
Il peut y avoir autant de paramètres que l'on souhaite, le tout et de ne pas se mélanger les pinceaux quand il y en a vraiment beucoup .
Comme ça doit être un peu flou, voyons tout de suite des exemples, en reprenant notre programme d'addition de deux nombres, mais cette fois ci, le programme va demander à l'utilisateur quels nombres il veut additionner .
- La fonction en pseudo-code tout d'abord :
fonction calculeLaSomme(nombreUn, nombreDeux) var somme = 0 ; somme = nombreUn + nombreDeux ; retourne somme ; /**** programme principal ****/ var demandeNombreUn = demande à l'utilisateur le premier nombre ; var demandeNombreDeux =demande à l'utilisateur le second nombre ; var resultat = calculeLaSomme(demandeNombreUn, demandeNombreDeux) ; affiche resultat ;
Ici les variables nombreUn et nombreDeux vont prendre les valeurs de demandeNombreUn et de demandeNombreDeux pour être calculées dans la fonction calculeLaSomme qui va retourner la somme, qui sera ensuite affichée par le programme principal .
- Ecriture du programme en JavaScript:
<script language="JavaScript" type="text/javascript"> function calculeLaSomme(nombreUn, nombreDeux) { var somme = 0 ; nombreUn = parseFloat(nombreUn) ; nombreDeux = parseFloat(nombreDeux) ; somme = nombreUn + nombreDeux ; return somme ; } /**** programme principal ****/ var demandeNombreUn = prompt ("Entrez le nombre un",'') ; var demandeNombreDeux = prompt ("Entrez le nombre deux",''); var resultat = calculeLaSomme(demandeNombreUn, demandeNombreDeux) ; document.write (resultat) ; </script>
Quelques petites précisions
- parseFloat(nombreUn), parseFloat(nombreDeux) permettent de convertir les variables nombreUn,nombreDeux en un nombre réel, car la méthode prompt retourne une chaine de caractère.
Donc si on veux faire une opération mathématique, il faut que ces chaines soient converties en nombres réels grâce à la méthode parseFloat(), en entier grâce à la méthode parseInt() .
Sachez que si vous utilisez la méthode parseFloat()
vous pourrez effectuer des opérations mathématiques avec des
nombres à virgule, tandis que si vous utilisez la méthode
parseInt() vous ne pourrez effectuer des opérations mathématiques sur des nombres ENTIERS uniquement .
- prompt (“Entrez le nombre un”,), prompt (“Entrez le
nombre deux”,
), permettent d'afficher un boite de dialoque de
demander à l'utilisateur d'entrez une valeur qui peut être de la forme
que l'on désire, mais cette méthode retourne des chaines de caractères
donc si vous voulez utiliser des chiffres vous devrez utiliser les méthodes ci-dessus.
Le premier paramètre (ici: “Entrez le nombre un” ) affiche ce message sur la boite de dialogue.
Le deuxième paramètre (ici: ””) permet de rentrer une valeur par défaut dans le champ de texte de cette boite de dialogue.
- La procédure en pseudo-code:
fonction calculeLaSomme(nombreUn, nombreDeux) var somme = 0 ; somme = nombreUn + nombreDeux ; affiche somme ; /**** programme principal ****/ var demandeNombreUn = demande à l'utilisateur le premier nombre ; var demandeNombreDeux =demande à l'utilisateur le second nombre ; calculeLaSomme ( demandeNombreUn, demandeNombreDeux) ;
Comme pour la fonction ci dessus, les variables nombreUn et nombreDeux vont prendre les valeurs de demandeNombreUn et de demandeNombreDeux pour être calculées dans la procédure calculeLaSomme qui va afficher la somme.
La procédure sera apellées dans le programme principal comme ceci :
calculeLaSomme ( demandeNombreUn, demandeNombreDeux) ;
Ecriture du programme en JavaScript:
<script language="JavaScript" type="text/javascript"> function calculeLaSomme(nombreUn, nombreDeux) { var somme = 0 ; nombreUn = parseFloat(nombreUn) ; nombreDeux = parseFloat(nombreDeux) ; somme = nombreUn + nombreDeux ; document.write (somme) ; } /**** programme principal ****/ var demandeNombreUn = prompt ("Entrez le nombre un",'') ; var demandeNombreDeux = prompt ("Entrez le nombre deux",'') ; calculeLaSomme(demandeNombreUn, demandeNombreDeux) ; </script>
Et voilà, vous en savez un peu plus maintenant sur les fonctions et les procédures.
Bon courage
