Inicio | Artículos | Biografías | Cursos | Entrevistas | Frases | Libros | Diccionario | Presentaciones | Servicios | Videos | Mapa Web | Enlazar | Contactar | Acerca de


CURSO/TUTORIAL DE ALGORITMOS
Introducción
¿Qué es un Algoritmo?
¿Qué es un Ordinograma?
Elementos Básicos
Tipos de Datos
Identificadores
Variables
Constantes
Operadores y Expresiones
Tipos de Datos Definidos por el Programador
Datos de Tipos Enumerados
Datos de Tipos Subrangos
Instrucciones Primitivas
Instrucción de Asignación
Instrucción de Salida
Instrucción de Entrada
Estructura de un Algoritmo
Partes de un Algoritmo
Cabecera
Declaraciones
Cuerpo
Sintaxis de un Algoritmo
Comentarios
Introducción a los Diagramas de Flujo
Asignación
Entrada y Salida
Inicio y Fin
Decisiones
Instrucciones de Control
Instrucciones Alternativas
Instrucciones Repetitivas
Instrucciones De Salto
Llamadas a Subalgoritmos
¿Qué es un Subalgoritmo?
Subprogramas
Procedimientos
Declaraciones Locales y Globales
Parámetros
Funciones
Representación mediante Diagramas de Flujo
CarlosPes.comCurso de Diseño de Algoritmos > Declaraciones Locales y Globales

Declaraciones Locales y Globales

¿Qué diferencias hay entre declaraciones locales y globales?

» Declaración de Subprogramas
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, sólo 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
Procedimientos en Pseudocódigo, 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 ésta 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:

1. Si se hace en el programa principal, es obvio que se está referenciando a la variable global.
2. 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.

Ejemplo: Partiendo de los dos procedimientos siguientes:
procedimiento Ejemplo_A()

variables
   entero n /* Variable local */

inicio
   n ← 77
   escribir( n )
fin


procedimiento Ejemplo_B()

inicio
   escribir( n )
fin
Podemos escribir el algoritmo:
algoritmo Ejemplo_C

variables
   entero n /* Variable global */

inicio
   n ← 30
   Ejemplo_A()
   Ejemplo_B()
   escribir( n )
fin
La salida por pantalla es:
77 30 30
Obsérvese que, para que el procedimiento Ejemplo_B se ejecute correctamente, es necesario que la variable n esté declarada globalmente, y que además, ésta contenga un dato (valor entero) en el momento de la llamada al procedimiento Ejemplo_B. En cualquier caso, para que no se dé esta dependencia, es recomendable declarar dicha variable localmente, como se ha hecho en el procedimiento Ejemplo_A.

Del mismo modo, se pueden declarar dos variables con el mismo identificador, una local (en un subprograma) y otra también local (en otro subprograma llamado por el anterior). En cuyo caso, al hacer referencia a dicho identificador, se estará referenciando a la variable más local.

Las declaraciones deben ser lo más locales posibles. Así que, cuantas menos declaraciones globales existan, mejor. Además, con el fin de evitar confusiones, y prevenir errores no deseados, es recomendable no usar el mismo identificador para una variable local, que para otra global.
Artículos Interesantes
Artículos de Desarrollo Web
Artículos de Informática
Artículos de Programación
Artículos de SEO
Cursos/Tutoriales de Informática
Curso/Tutorial de Algoritmos
Curso/Tutorial de Informática Básica
Curso/Tutorial de Ingeniería del Software
Curso/Tutorial de Lenguaje C
Curso/Tutorial de Marketing en Internet
Curso/Tutorial de Turbo Pascal
Curso/Tutorial de Representación de los Datos
Curso/Tutorial para Webmasters
Curso/Tutorial Web 2.0
Curso de SEO
Libros de Carlos Pes
36 Pasos Básicos para Desarrollar un Sitio Web
Empezar de Cero a Programar en Lenguaje C
Fundamentos del SEO
Libros Recomendados
Libros de Analítica Web
Libros de Desarrollo Web
Libros de Java
Libros de Lenguaje C
Libros de Marketing Online
Libros de Pascal (Turbo Pascal)
Libros de SEO
Libros de Visual Basic
Recursos de Informática
Diccionario de Informática
Ejercicios de Programación
Guías de uso de Software
Sintaxis de Lenguajes de Programación
Biografías
Entrevistas
Frases y Citas
Recursos Educativos
Presentaciones Educativas
Videos Educativos
Enlaces Web
Servicios
Desarrollo de Sitios Web
Diseño Web
Aplicaciones Web
Marketing Online
Formación y Conferencias
Consultoría
Acerca de Carlos Pes
Bibliotecas
Colaboradores
Contactar
Enlazar
Librerías
Perfiles en Internet
Mapa Web
Blog de Carlos Pes Blog de Carlos Pes
Google+ CarlosPes.Com en Google+
© 2006-2017 CarlosPes.com