Libro de Algoritmos de “Abrirllave.com” 163 / 180
Cuando se hace una llamada a un procedimiento, este se ejecuta y, al finalizar, devuelve el
control del flujo al programa (o subprograma) llamante, el cual continuará su ejecución con la
siguiente instrucción a la llamada.
12.2.2. Declaraciones locales y globales
Las declaraciones de variables, constantes y tipos de datos realizadas en un subprograma
(submódulo) se dice que son declaraciones de ámbito local, es decir, dichas variables,
constantes y tipos de datos, solamente pueden utilizarse en dicho subprograma.
Por el contrario, las declaraciones realizadas en el programa (módulo) principal, se dice que
son declaraciones de ámbito global, es decir, las variables, constantes y tipos de datos
declarados en el programa principal, pueden utilizarse en el programa principal y en todos los
subprogramas.
En los procedimientos propuestos para resolver el problema del ejemplo del apartado anterior
“12.2.1. Procedimientos”, se han declarado las siguientes variables locales:
numero, en el procedimiento Numeros_del_1_al_10.
contador y resultado, en el procedimiento Tabla_de_multiplicar_
del_8.
contador, en el procedimiento Primeras_diez_potencias_de_2 .
En el algoritmo Menu_por_pantalla no se ha realizado ninguna declaración de ámbito
local.
Al hacer una llamada a un subprograma, es, en ese momento, y no antes, cuando se reserva
espacio de memoria para las variables locales de ese subprograma llamado. Dicho espacio de
memoria se libera cuando el subprograma finaliza su ejecución, devolviendo el control del flujo
al programa (o subprograma) que lo llamó.
Por tanto, es importante entender que, la variable contador declarada en el procedimiento
Tabla_de_multiplicar_del_8, no representa al mismo espacio de memoria que la
variable contador declarada en el procedimiento Primeras_diez_potencias_de_2 .
Igualmente, si se hubiese declarado otra variable contador en el programa principal,
también esta representaría a un espacio de memoria diferente.
En el caso de que se declaren dos variables con el mismo identificador, una local (en un
subprograma) y otra global (en el programa principal), al hacer referencia a dicho identificador,
pueden ocurrir dos cosas:
Si se hace en el programa principal, es obvio que se está referenciando a la variable
global.
Pero, si se hace en el subprograma, entonces se está referenciando a la variable local.
Asimismo, a las declaraciones de constantes y tipos de datos, se les aplica el mismo criterio.