EXERCICES 7.1 Définir, dans le contexte du langage PASCAL, les

Transcription

EXERCICES 7.1 Définir, dans le contexte du langage PASCAL, les
LES PROCÉDURES ET LES FONCTIONS
EXERCICES
7.1
Définir, dans le contexte du langage PASCAL, les termes suivants :
a)
b)
c)
d)
e)
f)
g)
procédure
fonction
paramètre d’une procédure
variable locale
transmission de paramètre
imbrication de procédures
récursivité
7.2
Quelle différence faites-vous entre une procédure standard et une procédure non standard?
7.3
Identifiez et définissez les deux étapes fondamentales de traitement d’une procédure ou
d’une fonction en PASCAL.
7.4
Peut-on donner à des variables locales d’une procédure des noms identiques aux variables du programme principal appelant? Expliquez votre réponse.
7.5
Quelle différence faites-vous entre un paramètre formel et un paramètre effectif? À
quel principe de correspondance obéissent-ils l’un et l’autre?
7.6
Qu’est-ce qui distingue la transmission des paramètres par valeur de la transmission
des paramètres par variable? Quels sont les avantages et les inconvénients de chacun
des deux types de transmission?
187
188
INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI
7.7
Réalisez la trace du programme de l’exemple 7.6 en soumettant à l’entrée la ligne de
donnée suivante :
214 412
7.8
Utilisez la procédure paramétrée Permuter pour permuter circulairement, par imbrication
de procédures, trois nombres entiers X, Y, Z.
7.9
Comment expliquez-vous que les valeurs des variables locales d’une procédure ou
d’une fonction récursive ne se perdent pas au cours des séquences d’appels récursifs?
7.10
Quelle différence faites-vous entre une procédure (fonction) récursive et une procédure
(fonction) itérative?
7.11
Donnez une version itérative de la fonction Somme de l’exemple 7.11
7.12
Donnez une version itérative de la fonction Fact de l’exemple 7.12.
7.13
La suite de Fibonacci est définie de la façon suivante :
Fibo(0) = 1
Fibo(1) = 1
Fibo(n) = Fibo(n – 1) + Fibo(n – 2) pour n > 1
7.14
a)
Donnez les 10 premiers termes de cette suite.
b)
Écrivez une fonction récursive correspondant à la suite de Fibonacci, ainsi qu’un
programme principal qui l’appelle.
c)
Faites la trace du programme appelant que vous avez écrit avec n = 9 et comparez
les résultats ainsi obtenus avec ceux déjà obtenus en a).
Répondez par vrai ou faux aux affirmations suivantes :
a)
La déclaration d’une procédure est identique à celle d’une fonction.
LES PROCÉDURES ET LES FONCTIONS
b)
Une procédure peut être appelée plusieurs fois dans un même programme, ce qui
est impossible avec une fonction.
c)
Les paramètres d’une procédure ou d’une fonction ne peuvent pas être euxmêmes des procédures ou des fonctions.
d)
On peut utiliser des paramètres par valeur pour transmettre des résultats de procédure au programme principal appelant.
e)
Une procédure ou une fonction ne peut pas appeler d’autres procédures ni d’autres
fonctions.
f)
L’appel d’une procédure se fait de la même manière que l’appel d’une fonction.
189
190
INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI