2.5. les paramètres en Pascal



Plan du chapitre:

1. Passage des paramètres en Pascal
 

    1.1 Lecture seulement : passage par valeur
    1.2 Accès direct : passage par adresse ou par référence
     
     

LearnP.dif

La théorie générale sur les passages de paramètres n'est pas explicitée ici, nous n'étudions que les cas pratiques du langage pascal.

  1. Passage des paramètres en Pascal
 

On s’intéresse dans ce paragraphe aux langages impératifs descendants de la famille des ALGOL (avec des structures de contrôle classiques) et en particulier au langage Pascal. On envisage les rapports qu’il y a entre un programme appelant et un sous-programme appelé. En réalité toutes les questions que l’on se pose reviennent à celle-ci :
 
Quel est l’effet produit sur un paramètre effectif transmis à un sous-programme, lorsque l’on modifie le paramètre formel correspondant dans le corps du sous-programme ou bien lorsque l’on modifie son mode de passage.

     
    1.1 Lecture seulement : passage par valeur

    Dans un passage par valeur, le paramètre formel est considéré comme une variable locale dans le corps du sous-programme. Sa valeur est initialisée au début de chaque exécution du sous-programme avec la valeur du paramètre effectif correspondant.

    Il y a recopie de la valeur du paramètre effectif dans une zone spécifique locale à la procédure. Toutes les opérations qui sont effectuées sur le paramètre formel n’affectent que cette valeur locale.
     
    Avantage : sécurité et protection des informations.

    Inconvénient : lenteur due à la recopie des données et doublement de la place mémoire occupée (mais convient bien pour des variables simples !).
     

    en Pascal procedure sp(... x: real ....)

    passage par valeur
     
     
     

    1.2 Accès direct : passage par adresse ou par référence
     

Dans un passage par adresse le paramètre formel est traité comme une variable dont l’adresse qui est transmise au moment de chaque appel, est celle du paramètre effectif correspondant. L’adresse de la variable effective autorise toutes les modifications immédiatement sur cette variable quelle que soit sa localisation.
 

en Pascal procedure sp (....var x : real .....)


    passage par référence

 
Avantage : rapidité d’accès aux données, moindre occupation mémoire puisqu’il ne s’agit que d’une adresse.

Inconvénient : ce mode est dangereux à cause de la non protection des données et de la nécessité qu’il y a de connaître la façon dont sont implantées physiquement les données sur la machine.
 

Ces deux modes de passage des paramètres sont présents dans des langages comme C++, java, Ada, Visual-Basic et Delphi. Ils suffit donc pour le débutant, de bien comprendre le processus avec le pascal et par analogie il pourra l'utiliser avec les autres langages.