Les fonctions
CHAPITRE 8
158
fonction f (réel valeur, entier nb)
{ réel limite := nb * valeur + 2.5 // limite pourra différer d’un appel à l’autre
.....
}
On notera bien que si les variables locales étaient rémanentes, il ne serait plus possible de les
initialiser ainsi à chaque appel.
4.1.3 Tableaux locaux
On peut déclarer des tableaux locaux à une fonction.
fonction f (...)
{ tableau réel t[5]
// tableau local à f formé de 5 éléments de type réel
.....
}
La plupart des langages imposent que leur dimension soit une constante ou une expression
constante :
fonction f (entier n)
{ constant entier p := 12
tableau réel t1[p]
// tableau local à h formé de 12 éléments de type réel
tableau entier t2 [n] // refusé par la plupart des langages, bien qu’il n’y
.....
// ait pas d’impossibilité, ni théorique, ni technique
}
En revanche, les tableaux locaux peuvent, comme les variables locales, être initialisés avec
des expressions constantes ou utilisant les paramètres effectifs, comme dans :
fonction f(entier n)
{ tableau entier limites[3] := { n-2, n, n+3 }
.....
}
Voici comment exploiter cette propriété pour écrire une fonction examinant si un caractère
donné est une voyelle :
boolen estVoyelle (caractère c)
{ tableau caractère voy[6] = { ’a’, ’e’, ’i’, ’o’, ’u’, ’y’ }
entier i
booléen rep := faux
répéter pour i := 1 à 6
si c = voy[i] alors rep := vrai
retourne rep
}
Fonction déterminant si un caractère reçu en paramètre est une voyelle
4.1.4 Imposer à une variable locale d’être rémanente
Dans certains cas, on souhaitera qu’une variable locale soit rémanente, c’est-à-dire qu’elle
conserve sa valeur de la fin d’un appel de la fonction au début du suivant. Cela est possible
dans la plupart des langages. Nous conviendrons que la déclaration :
entier rémanent n
Précédent

- 181/370

Suivant