Les fonctions
CHAPITRE 8
140
Dans ce chapitre, nous allons progressivement apprendre à mettre en œuvre une fonction.
Nous commencerons par introduire les notions de paramètres, de variables locales et de résultat (valeur de retour). Nous préciserons ensuite la manière dont les paramètres sont fournis
à une fonction, ce qui nous amènera à distinguer la transmission par valeur de la transmission
par référence, avant d’aborder le cas des tableaux transmis en paramètre. Nous apporterons
ensuite quelques précisions sur les propriétés des variables locales, leur initialisation, leur
durée de vie, ainsi que sur ce l’on nomme la surdéfinition des fonctions. Nous vous donnerons quelques indications sur les différentes façon de gérer la mémoire puis nous distinguerons la notion de programme principal, avant d’étudier ce qu’est la récursivité.
1 Notion de fonction
1.1 Premier exemple
Supposons qu’un programme comporte ces instructions ;
// un exemple de programme sans fonction
.....
écrire «Nombre de points obtenus»
écrire «au cours de cette partie»
.....
écrire «Nombre de points obtenus»
écrire «au cours de cette partie»
.....
Nous constatons qu’il renferme deux fois la même suite d’instructions :
écrire «Nombre de points obtenus»
écrire «au cours de cette partie»
La notion de fonction nous permet de regrouper ces deux instructions sous un nom unique,
par exemple message. Ici, nous conviendrons de les placer dans un bloc (nommé corps de la
fonction) précédé d’une ligne (nommée en-tête de la fonction) précisant le nom choisi :
fonction message
// en-tête
{ écrire «Nombre de points obtenus»
écrire «au cours de cette partie»
}
Il suffira alors d’une simple instruction dite d’appel de cette fonction, telle que :
message
pour provoquer l’exécution des instructions qu’elle contient. Ainsi, notre programme
précédent pourra-t’il se simplifier comme suit (ici, nous avons reproduit les instructions de la
fonction, pour plus de clarté) ;
// le programme précédent utilisant la fonction message
.....
message
.....
message
.....
Précédent

- 163/370

Suivant