Les fonctions
CHAPITRE 8
154
Nous conviendrons d’écrire ainsi l’en-tête de raz :
fonction raz (tableau réel t[3])
// paramètre t : tableau de 3 éléments
// de type réel
Nous n’utiliserons pas le mot référence puisque nous avons convenu que la transmission
par référence est automatiquement utilisée pour les tableaux. En revanche, nous avons indiqué la dimension du tableau, comme nous l’aurions fait dans une déclaration usuelle. Nous
reviendrons un peu plus loin sur ce point.
Le corps de la fonction raz est classique :
fonction raz (tableau réel t[3])
{ entier i
répéter pour i := 1 à 3
t[i] := 0.
}
Voici un exemple de son utilisation :
tableau réel tab [3]
tableau réel x[3]
.....
raz (tab)
// place la valeur 0. dans les 3 éléments de tab
raz (x)
// place la valeur 0. dans les 3 éléments de x
3.2 Cas des tableaux de taille indéterminée
Dans l’exemple précédent, la fonction travaille toujours sur des tableaux de 3 éléments. Souvent, on aimera pouvoir disposer d’une fonction capable de travailler sur un tableau dont le
nombre d’éléments peut varier d’un appel à un autre. Ainsi, on pourrait vouloir disposer
d’une fonction de « remise à zéro » utilisable pour les tableaux t1 et t2 suivants :
tableau réel t1[3]
tableau réel t2[10]
Cela est possible dans la plupart des langages, mais les démarches employées peuvent différer sensiblement. On peut les classer en deux catégories :
• celles où la fonction doit recevoir un paramètre supplémentaire lui indiquant la dimension
du tableau concerné ;
• celles où la fonction n’a pas besoin de cette information de dimension, car elle est en mesure
de la « retrouver » à partir de la connaissance de l’adresse du tableau.
Ici, pour ne pas trop alourdir notre propos, nous nous limiterons à la première démarche, ce
qui signifie que nous devrons prévoir un paramètre supplémentaire de type entier, correspondant au nombre d’éléments du tableau. Nous supposerons que notre fonction se nomme
razv et nous utiliserons donc des appels de cette forme :
razv (t1, 3)
razv (t2, 10)
Notre nouvelle fonction se présentera ainsi :
Précédent

- 177/370

Suivant