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