Notion de fonction
143
1.3 Paramètres formels ou effectifs
Les paramètres figurant dans l’en-tête d’une fonction se nomment des paramètres formels.
Ceux fournis lors de l’appel de la fonction se nomment paramètres effectifs. Dans l’exemple
du paragraphe précédent, le paramètre effectif était une variable (n, puis p), mais on pourrait
très bien utiliser une constante ou une expression, comme dans :
affiche (5)
affiche (2*n + 3)
En effet, c’est bien la valeur de cette constante ou de cette expression qui sera transmise à la
fonction. Une telle liberté (variable, constante, expression) n’aurait aucun sens pour les paramètres formels. Ainsi, on ne pourrait pas écrire l’en-tête de affiche, sous l’une de ces
formes :
affiche (entier nb +5)
// en-tête incorrrect
affiche (entier 3)
// en-tête incorrrect
pas plus qu’en mathématiques, on ne peut définir une fonction f par f(nb+5)=8 ou
f(5)=12 !
1.4 Notion de variable locale
Voyons maintenant comment réaliser une fonction, que nous nommerons salut, permettant
d’afficher plusieurs fois le libellé «bonjour», le nombre de fois demandé étant fourni en
paramètre. Par exemple, nous souhaitons que l’appel :
salut (3)
affiche :
bonjour à tous
bonjour à tous
bonjour à tous
Nous savons déjà écrire l’en-tête de la fonction, par exemple :
fonction salut (entier n)
Nous savons également que, dans le corps de notre fonction, nous trouverons des instructions
telles que :
répéter pour i := 1 à n
écrire «bonjour à tous»
Mais nous voyons que nous avons besoin en outre d’une variable entière i destinée à jouer le
rôle de compteur dans notre boucle pour. Nous conviendrons qu’il est possible de la déclarer
dans les instructions de la fonction et nous dirons qu’il s’agit d’une variable locale à la fonction. Notre fonction salut se définira ainsi :
fonction salut (entier nb)
{ entier i
répéter pour i := 1 à n
écrire «bonjour à tous»
}
Voici un exemple complet d’utilisation de cette nouvelle fonction :
143
1.3 Paramètres formels ou effectifs
Les paramètres figurant dans l’en-tête d’une fonction se nomment des paramètres formels.
Ceux fournis lors de l’appel de la fonction se nomment paramètres effectifs. Dans l’exemple
du paragraphe précédent, le paramètre effectif était une variable (n, puis p), mais on pourrait
très bien utiliser une constante ou une expression, comme dans :
affiche (5)
affiche (2*n + 3)
En effet, c’est bien la valeur de cette constante ou de cette expression qui sera transmise à la
fonction. Une telle liberté (variable, constante, expression) n’aurait aucun sens pour les paramètres formels. Ainsi, on ne pourrait pas écrire l’en-tête de affiche, sous l’une de ces
formes :
affiche (entier nb +5)
// en-tête incorrrect
affiche (entier 3)
// en-tête incorrrect
pas plus qu’en mathématiques, on ne peut définir une fonction f par f(nb+5)=8 ou
f(5)=12 !
1.4 Notion de variable locale
Voyons maintenant comment réaliser une fonction, que nous nommerons salut, permettant
d’afficher plusieurs fois le libellé «bonjour», le nombre de fois demandé étant fourni en
paramètre. Par exemple, nous souhaitons que l’appel :
salut (3)
affiche :
bonjour à tous
bonjour à tous
bonjour à tous
Nous savons déjà écrire l’en-tête de la fonction, par exemple :
fonction salut (entier n)
Nous savons également que, dans le corps de notre fonction, nous trouverons des instructions
telles que :
répéter pour i := 1 à n
écrire «bonjour à tous»
Mais nous voyons que nous avons besoin en outre d’une variable entière i destinée à jouer le
rôle de compteur dans notre boucle pour. Nous conviendrons qu’il est possible de la déclarer
dans les instructions de la fonction et nous dirons qu’il s’agit d’une variable locale à la fonction. Notre fonction salut se définira ainsi :
fonction salut (entier nb)
{ entier i
répéter pour i := 1 à n
écrire «bonjour à tous»
}
Voici un exemple complet d’utilisation de cette nouvelle fonction :
