next up previous contents
Siguiente: Parámetros por omisión Subir: Parámetros Anterior: Parámetros   Índice General

Modo de los parámetros

Los parámetros se utilizan para transmitir información entre los procedimientos. Por tanto, debemos decir si el parámetro contiene información que entra en el subprograma (es un parámetro de entrada), que sale del procedimiento (es un parámetro de salida) o información que entra, se modifica y sale del procedimiento (es un parámetro de entrada y salida). Para especificar el modo de cada parámetro se utilizan las palabras in, out e in out. Justo a continuación del modo debemos especificar el tipo del parámetro (que puede ser cualquiera de los tipos básicos de Ada, o cualquier tipo que hayamos creado nosotros). Por ejemplo, si completamos el código de nuestro ejemplo anterior, obtenemos:

      procedure Ejemplo is

         procedure Sumar
            (Numero_1  : in Integer;
             Numero_2  : in Integer;
             Resultado : out Integer)
         is
         begin
            Resultado := Numero_1 + Numero_2;
         end Sumar;

         Dato_1    : Integer := 12;
         Dato_2    : Integer := 10;
         Resultado : Integer;
      begin
         Sumar (Dato_1, Dato_2, Resultado);
         --  Aqui resultado contiene el valor 22.
      end Ejemplo;

Cuando se realiza la llamada al procedimiento el contenido de los parámetro de entrada se inicia con el valor de los datos especificados en la llamada (en este caso los valores de Dato_1 y Dato_2 se copian sobre los parámetros Numero_1 y Numero_2). El código de este procedimiento suma el contenido del primer parámetro de entrada al contenido del segundo parámetro de entrada ( $Numero\_1 + Numero\_2$) y almacena el resultado en el parámetro de salida (Resultado). Cuando finaliza la llamada, el contenido del parámetro de salida (Resultado) se copia sobre la variable utilizada en la llamada. En este caso, como la variable del procedimiento principal se llama también resultado, estaríamos copiando el contenido del parámetro Resultado del procedimiento Sumar sobre la variable Resultado del procedimiento principal.

Como hemos visto en ejemplos anteriores, en el caso de las funciones su especificación contiene también el tipo del resultado. Por ejemplo, si el procedimiento anterior lo escribimos como una función el código sería:

      procedure Ejemplo is

         function Suma
            (Numero_1  : in Integer;
             Numero_2  : in Integer)
            return Integer is
         begin
            return Numero_1 + Numero_2;
         end Sumar;

         Dato_1    : Integer := 12;
         Dato_2    : Integer := 10;
         Resultado : Integer;
      begin
         Resultado := Suma (Dato_1, Dato_2);
         --  Aqui resultado contiene el valor 22.
      end Ejemplo;

Como las funciones sólo pueden devolver un único resultado, Ada no permite que tengan parámetros en modo out o in out.

Si no decimos el modo de algún parámetro, Ada presupone siempre que es de modo in. Por ejemplo, las siguientes son equivalentes:

 
    procedure Sumar                     procedure Sumar
       (Numero_1  : in Integer;            (Numero_1  : Integer;
        Numero_2  : in Integer;             Numero_2  : Integer;
        Resultado : out Integer);           Resultado : out Integer);

Cuando varios parámetros son del mismo tipo, podemos ponerlos en una lista separados por comas. Por ejemplo:

             procedure Sumar
                (Numero_1, Numero_2 : in Integer;
                 Resultado          : out Integer);

Resumiendo, la especificación de un procedimiento o función proporciona el nombre, modo y tipo de cada uno de los parámetros. Si se omite el modo del parámetro, se presupone que es in). Las funciones sólo pueden tener parámetros en modo in.


next up previous contents
Siguiente: Parámetros por omisión Subir: Parámetros Anterior: Parámetros   Índice General
Javier Miranda 2002-10-03