Variables

Ahora a ver una de las cosas mas sencillas pero como en todos los lenguajes se debe tener mucho cuidado como se definen, el nombre que se le pone y en que lugar deben ir. Las variables tienen la particularidad de que no almacenan un dato fijo sino que se puede modificar, si por ejemplo necesitamos tener una cuenta regresiva se podria utilizar una variable X y hacer que a ese valor se le vaya restando de a uno hasta llegar a cero.

La variable se define siempre de esta forma, primero va el tipo y luego el nombre. Los tipos de variables que puedes definir son entero (int), entero largo (long), entero corto (short), flotante (float), doble (double), caracter (char) y booleano (bool). Por eso, cuando defines la variable debes tener en cuenta que tipo de informacion vas a guardar, en el caso de texto deberia ser char, o en el caso de un numero con decimales deberia ser float o double, un numero entero el tipo int, etc… Es recomendable que las variables tengan un nombre acorde a la informacion que van a almacenar, por ejemplo se le puede dar el nombre de edad para que guarde la misma, o nombre para lo mismo y asi, se puede utilizar x, a o b pero cuando vuelvas a necesitar la variable puede que no recuerdas que informacion es la que guarda realmente y deberas volver a ver el programa para saber que tiene o para que uso la definiste. En programas cortos no genera muchos problemas pero en programas mas extensos eso te hara perder tiempo y puede confundirte. Las variables tambien son sensibles a las mayusculas y minusculas, por lo que la variable Nombre no es igual que la variable nombre y los dos estan almacenando 2 informaciones distintas. Tambien es necesario que sepas que los nombres de las variables no pueden ser palabras reservadas del lenguaje (es una regla que se aplica a todos los lenguajes), por lo que no pueden ser nombre como FOR, IF, THEN, COUT o CIN. Vamos a ver varios ejemplos de como se definen variables:

int x; -> el ejemplo más básico donde se dice que x es entero.

char y,z; -> aca se definen dos variables de tipo Caracter y tienen la posibilidad de almacenar texto.

long int miEdad, tuEdad, Edad; -> Aca se definen 3 variables del tipo entero largo.

miEdad=35; -> Y aca se le asigna un valor inicial a miEdad, antes definida.

unsigned short int x = 5; -> Aca se define una variable corta sin signo y que se le asigna el valor 5.

Como vimos en el ultimo ejemplo, si tuvieramos que repetir muchas veces esa forma de definir esa variable en diferentes partes del programa seria algo que nos perjudicaria, se puede generar un alias que se genera fuera de main a traves de la función typedef para mejorar el aspecto visual del programa. Por ejemplo, veamos un alias para el ultimo ejemplo:

typedef unsigned short int USHORT;

Luego esa linea quedaria de la siguiente forma:

USHORT x = 5;

Ahora veremos como utilizar un par de programas donde se definen distintos tipos de variables, se las utilizan para un calculo y por otro lado como ver el valor de ASCII a traves de la definición de char, pasemos a ver los ejemplos:

1ª) Programa que muestra los valores de memoria asignados a los distintos tipos.

var00.cpp

# include <iostream>

using namespace std;

int main()
{
cout << "El tamaño de un entero es: \t\t" << sizeof(int) << " bytes.\n";
cout << "El tamaño de un entero largo es: \t" << sizeof(long) << " bytes.\n";
cout << "El tamaño de un entero corto es: \t" << sizeof(short) << " bytes.\n";
cout << "El tamaño de un caracter es: \t\t" << sizeof(char) << " bytes.\n";
cout << "El tamaño de un flotante es: \t\t" << sizeof(float) << " bytes.\n";
cout << "El tamaño de un doble es: \t\t" << sizeof(double) << " bytes.\n";
cout << "El tamaño de un booleano es: \t\t" << sizeof(bool) << " bytes.\n";
}

Si probamos el programa su salida sera:

tinchicus@dbn001vrt:~/programacion/c++$ ./program/var00
El tamaño de un entero es: 4 bytes.
El tamaño de un entero largo es: 4 bytes.
El tamaño de un entero corto es: 2 bytes.
El tamaño de un caracter es: 1 bytes.
El tamaño de un flotante es: 4 bytes.
El tamaño de un doble es: 8 bytes.
El tamaño de un booleano es: 1 bytes.
tinchicus@dbn001vrt:~/programacion/c++$

2ª) Programa donde se utiliza typedef

var01.cpp

# include <iostream>

using namespace std;

typedef unsigned short int USHORT;

int main()
{
        USHORT Ancho = 5;
        USHORT Longitud;
        Longitud = 10;
        USHORT Area = Ancho * Longitud;
        cout << "Ancho: " << Ancho << "\n";
        cout << "Longitud: " << Longitud << "\n";
        cout << "Area: " << Area << endl;
        return 0;
}

La salida del programa sera asi:

tinchicus@dbn001vrt:~/programacion/c++$ ./program/var01
Ancho: 5
Longitud: 10
Area: 50
tinchicus@dbn001vrt:~/programacion/c++$

3ª) Programa que muestra una traducción de los valores Ascii a la pantalla

var02.cpp

# include <iostream>

using namespace std;

int main()
{
        for(int i=32; i<128; i++)
        cout << (char) i;
        cout << endl;
        return 0;
}

Compilado y ejecutado deberan tener una salida como esta:

tinchicus@dbn001vrt:~/programacion/c++$ ./program/var02
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcd
efghijklmnopqrstuvwxyz{|}
tinchicus@dbn001vrt:~/programacion/c++$

Constantes

Las constantes son como su nombre lo indica, valores constantes que no se pueden modificar ya que una vez que se definen quedan con ese valor asignado. Para que puede servir una constante, por ejemplo nosotros sabemos un valor que no necesita modificarse durante todo el programa, este se puede definir en una constante y se lo utiliza cuando se necesita. Ahora supongamos que ese valor en el futuro tuvieramos que modificarlo, nos ahorraria la tarea de modificar ese valor en todas las partes que lo utilizamos en el programa solamente modificando donde lo asignamos y automaticamente se variara en el resto, por ejemplo tenemos tres operaciones:

x = 5 - a;
y = 5 - b;
z = 5 - c;

Si nosotros tuvieramos que modificar en el futuro el numero constante cinco, deberiamos modificarlo en todo el codigo donde se usa estas operaciones, en cambio si nosotros hicieramos:

const int alfa = 5;

x = alfa - a;
y = alfa - b;
z = alfa - c;

Podemos ver como ahora si en el futuro necesitamos modificar el valor de cinco solamente debemos modificarlo en la definicion de alfa y este se modificara automaticamente en el resto de las operaciones, para esto es bueno el uso de las constantes ahora veamos algunos ejemplos de como definir constantes:

int x=5;

#define x 5; -> Es un metodo viejo de definición de las mismas.

const unsigned short int x = 5;

enum x {0, 1, 2, 3, 4, 5};.

Veamos algunos ejemplos de como implementar constantes:

1ª) Programa para ver como trabaja ENUM:

var03.cpp

# include <iostream>

using namespace std;

int main()
{
        enum Dias { Domingo, Lunes, Martes, Miercoles,
                         Jueves, Viernes, Sabado};
        int opcion;
        cout << "Escriba un dia (0-6): ";
        cin >> opcion;
        if (opcion == Domingo || opcion == Sabado)
                cout << "\nYa se agotaron los fines de semana\n";
        else
                cout << "\nEsta bien, incluire un dia de descanso\n";
        return 0;
}

Como pueden ver al utilizar enum, automaticamente a cada uno de los integrantes del mismo los enumenara, es decir Domingo tendra el valor cero, Lunes el valor uno, Martes el valor dos y asi sucesivamente, luego haremos una variable llamada opcion, esta se encargara de almacenar nuestro ingreso, el valor entre 0 y 6 en la linea del metodo cin, despues tendra un condicional donde verificara si el valor es 0 o 6 y nos devolvera el primer mensaje de lo contrario nos devolvera el segundo, veamos la salida del ejemplo:

tinchicus@dbn001vrt:~/programacion/c++$ ./program/var03
Escriba un dia (0-6): 3

Esta bien, incluire un dia de descanso
tinchicus@dbn001vrt:~/programacion/c++$ ./program/var03
Escriba un dia (0-6): 0

Ya se agotaron los fines de semana
tinchicus@dbn001vrt:~/programacion/c++$

Observen como varia la salida en base al dia seleccionado y al condicional comentado anteriormente, ahora veamos el mismo ejemplo anterior pero definido por medio de const:

var04.cpp

# include <iostream>

using namespace std;

int main()
{
        const int Domingo = 0;
        const int Lunes = 1;
        const int Martes = 2;
        const int Miercoles = 3;
        const int Jueves = 4;
        const int Viernes = 5;
        const int Sabado = 6;
        int opcion;

        cout << "Escriba un dia (0-6): ";
        cin >> opcion;
        if (opcion == Domingo || opcion == Sabado)
                cout << "\nYa se agotaron los fines de semana\n";
        else
                cout << "\nEsta bien, incluire un dia de descanso\n";
        return 0;
}

Si lo compilamos y probamos deberemos obtener el mismo resultado que en el caso anterior, cual es la diferencia? Esta radicada en que nosotros tenemos un mejor control sobre las constantes a definir porque si bien en este caso es mas practico enum que const para otros donde nosotros debemos definir otros valores no secuenciales sera mejor const, es decir a la hora de generar constantes si son mas de tipo secuencial es preferible el uso de enum para que el lenguaje las genere automaticamente y no hacer tan engorroso nuestro codigo, y en el caso de constantes de tipo no secuencial sera mejor const.
En resumen, hoy hemos algunos tipos de variables, como trabajan, como se definen, algunos ejemplos, tambien hemos visto constantes, para que sirven, donde implementarlas y las dos formas mas comunes de definirlas, espero les haya sido util sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios