variables locales y variables globales

Anuncio
Programación
Instituto Tecnológico de Celaya
VARIABLES LOCALES Y VARIABLES GLOBALES
Como se discutió en clase, cuando uno llama una función (como la función
sqrt), no es necesario saber los tipos y los nombres de las variables que se
declaran en la definición de dicha función. 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 función main (programa
principal) o en cualquier otra función. Si se declara una variable en una función
y se declara otra variable con el mismo nombre en la función 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;
}
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
la variable cuadrado se declara tanto en la función main como en la función
square y la declaración es idéntica:
double cuadrado;
Sin embargo, la variable cuadrado de la función main y la variable cuadrado de
la función square se consideran como dos variables diferentes.
Variables Locales
Las variables que se declaran dentro del cuerpo de una función se dice que son
locales a dicha función o que tienen un alcance local. En el ejemplo, hay una
variable llamada cuadrado que es local a la función main y otro variable
también llamada cuadrado pero que es local a la función square. Dichas
variables son diferentes. Los valores que toma una variable local dentro de una
función pueden ser completamente distintos a los que tome una variable del
mismo nombre pero que sea local a otra función.
Se dice que una variable local es usada (definida, modificada, etc.) únicamente
dentro de la función en la que es definida
Constantes y Variables Globales
Las constantes y las variables también 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
que se tiene constantes
globales o variables globales.
Para que el compilador considere a una variable como global, es necesario
definirlas al comienzo del programa, antes de la función main y del resto de las
funciones del programa. Es práctica común 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.
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
El uso de constantes globales es muy común, 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 función 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*/
Ingeniería Química
Programación
Instituto Tecnológico 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 */
}
Ingeniería Química
Descargar