next up previous contents
Next: Pseudo-langage Up: Fiche ADA : Avancées Previous: Procédure

Paramètres

Les paramètres d'une procédure servent à l'échange des informations entre la procédure et l'extérieur, plus précisément le contexte d'où elle est appelée. Les paramètres de la procédure sont dits paramètres formels. Les paramètres de l'appel de la procédure sont dits paramètres effectifs. Lors de l'appel de la procédure, la correspondance est faite entre les paramètres de l'appel, les paramètres effectifs et les paramètres de la procédure, les paramètres formels. Avec Allogène cette correspondance est faite explicitement avec l'appel de la procédure :

   APPELER <procédure>
   AVEC <paramètre effectif> : <paramètre formel>

S'il y a plusieurs paramètres, les couples <paramètre effectif> : <paramètre formel> sont séparés par une virgule. Il faut bien sûr que les natures soient identiques ou compatibles pour qu'une correspondance ait un sens.

L'échange des informations par les paramètres peut se faire dans les deux sens :

Avec Allogène, les paramètres sont des informations dont le comportement est en entrée, en sortie ou en entrée-sortie.

Si le paramètre formel est en entrée, le paramètre effectif est une expression. A l'appel, le paramètre formel reçoit la valeur de l'expression <paramètre effectif>.

Exemple :

APPELER plotterMoveTo
  AVEC HautGaucheX+Largeur:X , HautGaucheY:Y

Si le paramètre formel est en sortie ou en entrée-sortie, le paramètre effectif est une information et la notation est :

   APPEL <procédure>
   AVEC ref( <paramètre effectif> ) : <paramètre formel>

Après l'appel l'information <paramètre effectif> aura la valeur de <paramètre formel> ref est l'abréviation de référence.



Exemple :

APPELER Permutation  permutation des valeurs de 2 informations
  AVEC ref( Inf1 ) : A, ref( Inf2 ) : B

La correspondance entre les paramètres formels et effectifs a été décrite pour le mode correspondance explicite des paramètres. Une autre façon de faire cette correspondance est couramment utilisée dans de nombreux langages : il s'agit de la correspondance positionnelle des paramètres. Le premier paramètre effectif correspond au premier paramètre formel, le deuxième au deuxième et ainsi de suite.



Exemple en Ada :

Déclaration d'une procédure :

 -- Permutation des valeurs de deux variables entières
 -- Il y a donc 2 paramètres entiers en entrée-sortie
 procedure Permutation( A : in out INTEGER ; B : in out INTEGER ) is
   C : INTEGER ;
 begin
   C := A ;
   A := B ;
   B := C ;
 end Permutation ;

Utilisation de la procédure

 Inf1, Inf2 : INTEGER ;
 ...
 Inf1 := 33;
 Inf2 := 78;
 ...
 Permutation( Inf1, Inf2 ) ;  -- L'instruction 'appel d'une procédure' est 
                              -- simplement l'identificateur de la procédure


next up previous contents
Next: Pseudo-langage Up: Fiche ADA : Avancées Previous: Procédure