sábado, 1 de noviembre de 2008

Constantes

Existen varios tipos de constantes.
Las mas utilizadas o las mas comunes podemos decir que son 3
• Literales
• Simbolicas
• Enumeradas
Una constante Literal es un valor escrito directamente en un programa
Ejemplo.
Importeiva = precio *21%

Una constante simbolica es una constante que es representada por un nombre de la misma forma que lo hacemos normalmente con una variable. La diferencia radica en que una vez que inicailizamos esa constante ese valor no puede se cambiado.
Por ejemplo. Importeiva = precio*iva

Utilizar constantes simbolicas frente a constantes literales tiene algunas ventajas.
Una de ellas para mi es que hace el código mas legible y entendible para quien toma contacto con el mismo por primera vez.
Todo esto siempre y cuando se hayan elegido nombres significativos para dichas variables y constantes.
Otra ventaja es que si por alguna razón ese valor constante se debiera cambiar no deberíamos modificar todo el código sino solo la parte de la inicialización de la constante simbolica.
Hace el código mucho mas fácil de mantener
Como se define una constante?
Hay 2 formas
Una es #define iva 21
Esta ya no se utiliza mas pero sigue estando en algunos códigos
La otra es
Const inti va = 21;

Otro tipo de constantes es casi un hibrido entre constantes y variables
Por ejemplo
Enum DIASDELASEMANA {LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO};
Aca lo que hacemos es definir mediante enum la constante DIASDELASEMANA. Dicha constante en su interior tiene las variables asociadas LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO Y DOMINGO.
Aca lo que hicimos creamos una constante que se llama DIASDELASEMANA que dentro del programa puede tomar distintos valores. Siempre esos valores estén difinidos.
Enum DIASDELASEMANA convierte a DIASDELASEMANA en una enumeración: un nuevo tipo de variables.
Por ende cada elemento que esta dentro de DIASDELASEMANA se convierte en una constante simbolica. LUNES es una constante simbolica con valor 0, MARTES es una constante simbolica con valor 1.
Cada constante enumerada contiene una variable del tipo integer.
Cada elemento tiene independientemente del nombre un valor numero que arranca desde 0.
Podemos además inicializar cada elemento con un valor diferente
Ejemplo.

#include
int main()
{
enum Diasdelasemana { lunes, martes, miércoles, jueves, viernes, sábado, domingo };
Diasdelasemana diadehoy;
diadehoy = lunes;
if (diadehoy == lunes || diadehoy == martes || diadehoy == miercoles || diadehoy == jueves || diadehoy == viernes ||)
std::cout <<>
else 
std::cout << "Hoy no se trabaja\n";
 return 0; 

Una vez que se creo la variable enumerada es necesario crear una variable asociada a ella 
Por ejemplo
 Enum DIASDELASEMANA {LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO}; 
DIASDELASEMANA diadehoy; 

Diadehoy es una variable asociada a DIASDELASEMANA. 
Diadehoy puede tener valores comprendidos entre 0 y 6 y/o LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO. 
Si colocaramos cualquier otro valor en la variable asociada que no estuviera declarada en la variable enumerada daría un mensaje de error en la compilación. 

Trabajando el mismo ejemplo de funcionamiento pero utilizando constantes simbolicas podría quedar asi 

#include
int main()
{
const int Enero = 0;
const int Febrero = 1;
const int Marzo = 2;
const int Junio = 3;
const int Julio = 4;
const int Agosto = 5;


int diadehoy;
diadehoy = lunes;
if (diadehoy == lunes || diadehoy == martes || diadehoy == miercoles || diadehoy == jueves || diadehoy == viernes ||)
std::cout << Hoy es un dia Laboral.\n";
else
std::cout << "Hoy no se trabaja\n";
return 0;
}

No hay comentarios: