Está en la página 1de 4

Programacin

Instituto Tecnolgico de Celaya

VARIABLES LOCALES Y VARIABLES GLOBALES


Como se discuti en clase, cuando uno llama una funcin (como la funcin sqrt), no es necesario saber los tipos y los nombres de las variables que se declaran en la definicin de dicha funcin. Simplemente se requiere de conocer el tipo de los argumentos que necesita y el tipo de valor que regresa. Esto se debe a que en C++ las variables que se definen en las funciones son independientes de las variables que se definen en la funcin main (programa principal) o en cualquier otra funcin. Si se declara una variable en una funcin y se declara otra variable con el mismo nombre en la funcin principal del programa (main), estas dos variables, aunque tengan el mismo nombre, se consideran como dos variables diferentes. Observe el siguiente ejemplo: #include <iostream.h> #include <stdlib.h> double square(double number); /* Prototipo de la funcion*/ int main() { /* Este programa servira para ejemplificar el uso de variables locales*/ double cuadrado; double numero; cout<<Dame el valor de un numero \n; cin>>numero; cuadrado = square(numero); cout<<"\n"; cout<<" El cuadrado del numero es "<<cuadrado; cout<<"\n"; system("PAUSE"); return 0;

} /* Funcion para el calculo del cuadrado de un numero*/ double square(double number) { double cuadrado; cuadrado = number * number; return cuadrado; }

Ingeniera Qumica

Programacin

Instituto Tecnolgico de Celaya

la variable cuadrado se declara tanto en la funcin main como en la funcin square y la declaracin es idntica: double cuadrado; Sin embargo, la variable cuadrado de la funcin main y la variable cuadrado de la funcin square se consideran como dos variables diferentes.

Variables Locales
Las variables que se declaran dentro del cuerpo de una funcin se dice que son locales a dicha funcin o que tienen un alcance local. En el ejemplo, hay una variable llamada cuadrado que es local a la funcin main y otro variable tambin llamada cuadrado pero que es local a la funcin square. Dichas variables son diferentes. Los valores que toma una variable local dentro de una funcin pueden ser completamente distintos a los que tome una variable del mismo nombre pero que sea local a otra funcin. Se dice que una variable local es usada (definida, modificada, etc.) nicamente dentro de la funcin en la que es definida

Constantes y Variables Globales


Las constantes y las variables tambin pueden tener alcances globales. Es decir, es posible que una misma variable o constante puedan ser utilizadas por diferentes funciones y que (en el caso de variables) puedan ser modificadas por cada una de ellas. Cuando esto ocurre, se dice globales o variables globales. Para que el compilador considere a una variable como global, es necesario definirlas al comienzo del programa, antes de la funcin main y del resto de las funciones del programa. Es prctica comn colocar todas las constantes globales y las variables globales en grupo, justo por debajo de las directivas include y antes de los prototipos de las funciones. que se tiene constantes

Ingeniera Qumica

Programacin

Instituto Tecnolgico de Celaya

El uso de constantes globales es muy comn, sin embargo, el uso de variables globales generalmente no es necesario y muy frecuentemente provoca dificultades en entender del algoritmo del programa, por lo cual las variables globales casi no se utilizan. En el siguiente ejemplo, observe que la constante PI es una constante global, mientras que las variables area y volumen son variables locales definidas en la funcin main y en otras funciones. No obstante que hay variables con el mismo nombre, stas son variables locales y por tanto se trata de variables diferentes. //Programa para el calculo del area de un circulo y el volumen de una esfera //usando dos funciones. Se usa el mismo valor de radio para los dos calculos. #include <iostream.h> #include <stdlib.h> #include <math.h> const double PI = 3.14159; /* Tiene alcance global. Se coloca por debajo de los include y antes de los prototipos */ /* Prototipos */ double area_circulo(double radio); double volumen_esfera(double radio); int main( ) { double radio_de_ambos, area, volumen; /*Alcance local*/ cout<<Dame el radio del circulo y de la esfera \n; cin>>radio_de_ambos; area = area_circulo(radio_de_ambos); volumen = volumen_esfera(radio_de_ambos); cout<<El area del circulo es <<area<<\n; cout<<El volumen de la esfera es <<volumen<<\n; cout<<\n; system(PAUSE); return 0;

/*Observe que las dos funciones siguientes usan la constante global PI*/

Ingeniera Qumica

Programacin

Instituto Tecnolgico de Celaya

/* Funcion para el calculo del area de un circulo */ double area_circulo(double radio) { double area; /* Alcance local, diferente de la variable definida en main */ area = PI * pow(radio, 2.0); /* Uso de constante global */ return area; } /* Funcion para el calculo del volumen de una esfera */ double volumen_esfera(double radio) { double volumen; /*Alcance local, diferente de la variable definida en main*/ volumen = (4.0/3.0) * PI * pow(radio, 3.0); return volumen; /* Uso de constante global */ }

Ingeniera Qumica

También podría gustarte