next up previous contents
Siguiente: Ambitos y visibilidad Subir: Procedimientos y funciones Anterior: Elección del nombre del   Índice General

Variables locales

Los subprogramas pueden contener declaraciones locales entre las palabras is y begin. Por ejemplo:

      with Text_IO; 
      procedure Ejemplo is 

         procedure Presentacion is
            Num_Veces : Positive := 4;
            Letra     : Character := '*';
         begin
            for I in 1 .. Num_Veces loop
               Text_IO.Put (Letra);
            end loop;
            Text_IO.New_Line;
         end Presentacion;

         Calculo : Natural;
         Numero  : Float;
      begin 
         Presentacion;
         Calculo := ... ;
         . . .;
      end Ejemplo;

En este ejemplo el procedimiento principal (Ejemplo) tiene dos variables: Total, de tipo Natural y Número, de tipo Float. El procedimiento Presentación tiene también dos variables: Num_Veces, de tipo Positive y Letra, de tipo Character.

Este ejemplo funciona de la siguiente forma. Cuando se comienza a ejecutar el programa Hola, Ada crea las variables del procedimiento principal (Total y Número). A continuación Ada comienza a ejecutar el cuerpo del procedimiento principal, que llama al procedimiento Presentación. Antes de comenzar a ejecutar Presentación Ada crea sus variables (Num_Veces y Letra) y las inicia con los valores que hemos fijado en el programa (4 y *). A continuación ejecuta todas las acciones de Presentación y, cuando finaliza su ejecución, destruye Num_Veces y Letra (porque, ya no hacen falta). En caso de que posteriormente se vuelva a llamar al procedimiento Hola, Ada volverá a crear las variables y a asignar a cada una su valor inicial.

En resumen, cada vez que se llama a un procedimiento (o a una función) Ada realiza los siguientes pasos:

  1. Crea las variables locales del procedimiento (o función).
  2. Ejecuta todas las sentencias que hay entre las palabras begin y end (hasta llegar al end o ejecutar una órden return).
  3. Destruye todas las variables locales del procedimiento (o función).

Por tanto, debemos siempre recordar que las variables son siempre locales al procedimiento que las crea. Si se llama de nuevo al procedimiento, se vuelven a crear. No mantienen el valor que tenían al finalizar la llamada anterior.


next up previous contents
Siguiente: Ambitos y visibilidad Subir: Procedimientos y funciones Anterior: Elección del nombre del   Índice General
Javier Miranda 2002-10-03