Les fonctions
CHAPITRE 8
166
entier fonction fac (entier n)
{ entier res := 1
répéter pour i := 1 à n
res := res * i
retourne res
}
Une méthode récursive est généralement moins efficace (en temps et en espace mémoire)
qu’une méthode itérative. Il est conseillé de ne recourir à une démarche récursive que
lorsqu’on ne trouve pas de solution itérative évidente.
D’une manière générale, la démarche récursive ressemble à ce que l’on nomme le
« raisonnement par récurrence » en mathématiques. Comme on s’y attend, il est nécessaire
que le processus ne soit pas infini.
Remarque
Il existe une autre situation de récursivité, moins courante, nommée souvent récursivité croisée. Dans ce cas, l’appel d’une fonction f entraîne l’appel d’une fonction g qui, à son tour,
appelle f. Le cycle peut d’ailleurs faire intervenir plus de deux fonctions. Bien entendu, les
langages permettant la récursivité directe, étudiée précédemment, permettent également la
récursivité croisée.
8 Bibliothèques de fonctions
Lorsque nous avons étudié la notion d’expression, nous avons indiqué que tous les langages
disposaient de fonctions mathématiques prédéfinies directement utilisables.
D’une manière générale, tous les langages disposent de ce que l’on nomme souvent une
bibliothèque standard. Elle renferme de nombreuses fonctions permettant de traiter des problèmes rencontrés fréquemment en programmation et évitant ainsi d’avoir à « réinventer la
roue » à chaque fois.
De plus, bon nombre de langages utilisent de telles fonctions pour réaliser les opérations de
lecture et d’écriture, de sorte que ce que l’on prend parfois pour une instruction est en fait un
appel de fonction (vous en avez de nombreux exemples dans la rubrique « Exemples
langages ». Il en va de même pour les opérations relatives aux « fichiers », ainsi que pour
tout ce qui concerne la programmation par événements (affichage de fenêtres, de composants
tels que les boîtes de dialogue, les boutons radio, les formulaires...), de gestion des déplacements et des clics de la souris...
Dans les langages objet, on trouvera souvent, à la place ou en plus d’une bibliothèque de
fonctions, une bibliothèque de classes, ayant la même vocation.
CHAPITRE 8
166
entier fonction fac (entier n)
{ entier res := 1
répéter pour i := 1 à n
res := res * i
retourne res
}
Une méthode récursive est généralement moins efficace (en temps et en espace mémoire)
qu’une méthode itérative. Il est conseillé de ne recourir à une démarche récursive que
lorsqu’on ne trouve pas de solution itérative évidente.
D’une manière générale, la démarche récursive ressemble à ce que l’on nomme le
« raisonnement par récurrence » en mathématiques. Comme on s’y attend, il est nécessaire
que le processus ne soit pas infini.
Remarque
Il existe une autre situation de récursivité, moins courante, nommée souvent récursivité croisée. Dans ce cas, l’appel d’une fonction f entraîne l’appel d’une fonction g qui, à son tour,
appelle f. Le cycle peut d’ailleurs faire intervenir plus de deux fonctions. Bien entendu, les
langages permettant la récursivité directe, étudiée précédemment, permettent également la
récursivité croisée.
8 Bibliothèques de fonctions
Lorsque nous avons étudié la notion d’expression, nous avons indiqué que tous les langages
disposaient de fonctions mathématiques prédéfinies directement utilisables.
D’une manière générale, tous les langages disposent de ce que l’on nomme souvent une
bibliothèque standard. Elle renferme de nombreuses fonctions permettant de traiter des problèmes rencontrés fréquemment en programmation et évitant ainsi d’avoir à « réinventer la
roue » à chaque fois.
De plus, bon nombre de langages utilisent de telles fonctions pour réaliser les opérations de
lecture et d’écriture, de sorte que ce que l’on prend parfois pour une instruction est en fait un
appel de fonction (vous en avez de nombreux exemples dans la rubrique « Exemples
langages ». Il en va de même pour les opérations relatives aux « fichiers », ainsi que pour
tout ce qui concerne la programmation par événements (affichage de fenêtres, de composants
tels que les boîtes de dialogue, les boutons radio, les formulaires...), de gestion des déplacements et des clics de la souris...
Dans les langages objet, on trouvera souvent, à la place ou en plus d’une bibliothèque de
fonctions, une bibliothèque de classes, ayant la même vocation.
