Semaine #4 INF130 par Frédérick Henri
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
Rappel : les sous-programmes Quelle est la différence entre un paramètre formel et un paramètre effectif ? Réponse : Un paramètre formel est une variable locale qui apparaît dans l’entête de la définition d’une fonction et à laquelle on assigne une valeur lors de l’appel de la fonction. Un paramètre effectif est une expression dont le résultat de l’évaluation est assigné à un paramètre formel lors de l’appel d’une fonction.
Rappel : la portée Qu’est-ce que la portée d’une variable ? Réponse : La portée d’une variable est l’ensemble des endroits où celle-ci est définie (accessible).
Rappel : la portée Qu’est-ce qu’une variable locale ? Réponse : C’est une variable déclarée dans un sous-programme et qui n’est visible qu’à l’intérieur de ce sous-programme.
Rappel : la portée Qu’est-ce qu’une variable globale ? Réponse : C’est une variable qui est déclarée à l’extérieur d’un sous-programme. Une telle variable est visible dans le module où elle est déclarée (et possiblement dans tous les modules si sa portée est « Public »). Nous éviterons d’utiliser ce type de variable.
Rappel : le passage par copie Qu’est-ce que le passage par copie ? Réponse : Le passage par copie est un principe selon lequel lors de l’appel d’un sous-programme, un paramètre effectif est évalué et la valeur obtenue est assignée au paramètre formel correspondant. Ainsi, le paramètre effectif ne peut pas être modifié par le sous-programme.
Rappel : le passage par référence Qu’est-ce que le passage par référence ? Réponse : Le passage par référence consiste à créer un lien entre un paramètre effectif et son paramètre formel correspondant. Ainsi, tout accès au paramètre formel aura pour effet d’accéder au paramètre effectif. Ainsi, un sous-programme peut modifier la valeur d’un paramètre effectif.
Rappel : l’appel d’un sous-programme Décrivez le plus précisément possible ce qui se produit lorsqu’on appelle une fonction paramétrée. Réponse : Les paramètres effectifs sont évalués. Les valeurs obtenues sont converties au besoin selon le type des paramètres formels. L’adresse de retour est conservée (pour pouvoir revenir à l’endroit de l’appel après l’exécution de la fonction). On alloue la mémoire pour les paramètres formels. On copie les valeurs converties dans les paramètres formels. On exécute la fonction. À la fin de la fonction on emmagasine la valeur de retour et on libère les variables locales. La valeur emmagasinée est retournée et remplace l’appel de la fonction. On revient à l’endroit où la fonction a été appelée.
C’est tout pour la partie théorique de la semaine # 4. Maintenant, place à la partie pratique!