En un programa completo, es necesario utilizar y controlar mucha información, nos volveríamos locos si esa información no se almacenará, o no la pudieramo identificar. En este capítulo aprenderemos a utilizar variables, e identificaremos los tipos de datos básicos, sólo una sencilla aproximación. Sin duda es una parte elemental en la programación.
Antes de empezar es necesario que entiendas ciertos términos.
La memoria en una computadora, al igual que en el ser humano, se encarga de retener información. Es muy común, y de hecho correcto, que también se le llame RAM a la que corresponde al ordenador. La memoria RAM es esencial en el funcionamiento de una computadora, simplemente si no se pudieran retener datos, no existirían las cosas como las conocemos hoy. Es muy común que confundamos la memoria RAM con el Disco Duro, pero son cosas totalmente distintas. La memoria RAM es temporal, en cuanto apagamos el ordenador, su información desaparece; el Disco Duro es casi permanente, retiene información durante mucho, mucho tiempo. Todos los programas hacen uso de la memoria RAM, en ella guardan información que será utilizada, desde imagenes hasta números.
Ahora hablemos de unidades. Estoy casi seguro que alguna vez has oído: "Mi disco duro es de 100 <<gigas>>" o "Me quedan 2 <<megas>> en mi PenDrive" o cosas parecidas. También estoy casi seguro que alguna vez tes has detenido a pensar: "¿Qué demonios es un <<giga>>?".
En informática se utilizan estas unidades de medida. Podemos decir que surgen del sistema binario (1/0). Pueden indicar desde el tamaño de un dato, hasta la capacidad de un dispositivo. Son la unidad de información. No vale la pena extenderse mucho sobre esto, vamos al grano.
La unidad más pequeña es el Bit: Binary Unit (Unidad de Binario).
8 Bits = 1 Byte (Octeto)
A partir de aquí, se utilizan prefijos, para indicar multiplos de Bytes:
No deben confundirse sus símbolos con Kb (KiloBit) o Mb (MegaBit). Recuerda 1 bit (b) es diferente a 1 byte (B).

Esta es una memoria Ram de los años 80´s. Se pueden apreciar los bits físicos como pequeñas celdas.
Suficiente teoría, vamos al Laboratorio (Quiero decir: Abre el Dev-C++ :P).
Son cosas diferentes, pero están estrechamente relacionadas. Esta es otra cosa que le da a C un gran poder y flexibilidad. El poder elegir qué tipo de dato usar, nos permite guiarnos, y por otro lado evita el uso de memoria innecesario. Una variable de Entero, no pesa la mismo que un Caracter, ni se comporta igual. Vamos a ver qué y cuáles son los tipos de datos:
Ahora vamos a poner en práctica esto que acabas de aprender. De nuevo, escribe tú mismo el código, no lo copies. Al terminar de escribirlo compílalo y observa el resultado. Explicaré todo línea por línea.
#include <stdio.h>
int main()
{
/* Declaración de Variables*/
int a,b,suma;
/*Asignado valores a las variables previamente establecidas*/
suma = 1000;
a = 2000;
b = a + suma;
/*Imprimiendo en pantalla las variables*/
printf("a = %i\n",a);
printf("suma = %i\n",suma);
printf ("a + suma = %i\n",b);
printf("Tamano en bits de int: %i",sizeof( int )*8);
getchar();
return 0;
}
Lo primero ya lo sabes. Las directivas. Llamamos a stdio.h.
Iniciamos la función principal: int main().
Esta parte es importante:
Aquí, declaramos las variables que usaremos dentro de int main().
Una variable es, podemos decir, un lugar reservado en la memoria, declarar una variable es decirle al ordenador que reserve X número de bits en ella. Al explicar todo el programa, tendrás una visión más completa sobre qué es una variable.
Las variables pueden ser locales o globales, se diferencian en que las primeras, sólo pueden ser usadas en la función en donde han sido declaradas; las segundas pueden ser usadas en cualquier función del programa, siempre se declaran después de las directivas y fuera de cualquier función.
Ahora, en el programa, estamos declarando 3 variables a la vez: a,b y suma. A esas tres variables les estamos reservando en memoria el número de bits que equivale un dato int (Entero). Podemos declarar, como en el programa, tantas variables como queramos siempre y cuando queramos que sean del mismo tipo. a,b y suma son enteros(int). El equivalente "largo" de lo anterior sería:
int main()
{
/* Declaración de Variables*/
int a;
Lo que hacemos para reduir estas líneas es declarar al mismo tiempo a,b y suma ya que las 3 son enteros.
Ahora asignamos un valor a esa reservación de memoria que hicimos al declarar las variables:
suma almacena al número entero 1000, a almacena al entero 2000, y b almacena la suma de a (2000) y suma (1000). Fíjate que se le asigna el valor a b, ya que fueron almacenados valores en suma y a. Si hubieramos escrito b = a + suma; antes de haber definido a y suma el compilador hubiera marcado un error. También fíjate que no es necesario que sigas el orden en que declaraste las variable para asgnarle un valor.
También es posible asignarles un valor al mismo tiempo que se declaran, no lo recomiendo, en un código largo te pierdes y pueden llegar a dar problemas, en cualqueir caso, aquí está el método:
Ahora, estudiaremos un uso más de la función printf:
Entre paréntesis puedes ver 2 argumentos. Hasta aquí ya deberías de conocer el primero "a = %i\n" entre comillas se indica el texto que aparecerá en pantalla; en este caso estamos diciendo que se muestre " a = %i" y se de un salto de línea. Conoce a tu nuevo mejor aliado el % este símbolo te ayudará a imprimir el valor almacenado en variables; en este ejemplo estamos usando %i la i viene de el tipo de dato int, estamos indicando que se muestre un dato del tipo int. El segundo argumento va estrechamente ligado al %, en el escribimos una a que como ya vimos quedó definida al momento de declarar y darle valor a esa variable; la variable que se encuentre en el segundo argumento va a ser aquella que se muestre en el primer %. El resultado en pantalla será:
a = 2000
Lo mismo sucede con las siguientes declaraciones de printf:
En la primera hacemos lo mismo, sólo que trabajamos con la variable suma.
La segunda mostrará en pantalla "a + suma =" y a continucación mostrará el valor almacenado en b, es decir la suma de a y suma; recordemos: b = a + suma. Es exactamente lo mismo, sólo que b es una variable más compleja.
El siguiente fragmento es muy curioso y de suma importancia en este tutorial:
De nuevo, lo que está entre comillas se imprimirá en pantalla. El %i hace referencia al siguiente arggumento (igual que en las funciones anteriores). Sólo que este útimo argumento no se refiere a ninguna variable previemante establecida. Analizemos esta parte: sizeof( int )*8 sizeof es una función ya definida, lo que hace es obtener el tamaño en bytes de lo que se encuentre entre sus paréntesis, en este caso, siplemente ponemos entre paréntesis int para que obtenga el tamaño de ese tipo de datos, después lo multiplicamos por 8 para hacer la conversión a bits. Es simple, aunque no lo parezca.
Finalmente:
Establecemos (con getchar()) que si no se preisona Enter, el programa no se cierra. Y que si la función termina correctamente devuelva un 0.
El programa es simple, aunque la explicación parezca larga, recuerda que toda esta "parrafada" sólo se refiere a los enteros (int), aún falta estudiar float, double y char. No te deseperes, su uso es extremadamente parecido, te tomará 1 minuto comprenderlo.
#include <stdio.h>
int main()
{
float a,b,c;
a = 0.55;
b = 350.1;
c = a + b;
printf("El resultado de a + b es: %f\n",c);
printf("Tamano en bits de float: %i",sizeof( float )*8);
getchar();
return 0;
La primera parte, ya la conoces: las directivas. Después iniciamos main.
Aquí, se definen las variables como tipo float (flotante):
Su uso es el mismo que en Interger. Pero recuerda que float es para números decimales.
Ahora definimos los valores de cada variable tipo float:
Estos pasos ya los tienes muy estudiados. Puedes ver que a y b son números decimales.
Ahora imprimimos las variables:
Fíjate que después del % usamos una f (float) así, asegurmaos que el valor que aparecerá en pantalla será un decimal.
En el segundo printf calculamos el valor de un dato tipo float, funciona exactamente igual que en el ejemplo de int, sólo que cambiamos a float entre paréntesis. También funciona, si pones una variable ya declarada en los paréntesis, según su tipo, será su tamaño.
Su funcionamiento es el mismo que el de float, únicamente cambia la forma de declarar (Eso ya lo deberías de saber)
Declaramos 3 variables tipo double.
Se imprimen en pantalla de la misma forma que un float.
Para saber su tamaño puedes escribir:
Generlamente el resultado de esto será 64.
Ahora estudiemos un tipo de dato, que para mi gusto, es muy interesante: char.
Como expliqué anteriormente los datos del tipo char almacenan carcateres. Son las variables más "ligeras" y sólo pueden almacenar una sola letra o un número entero.
¿Números? Char es un tipo de dato dedicado a carcateres, pero, tienes que saber que existen equivalentes numéricos a las letras, se le conoce como código ASCII. No sirve de mucho saber el código ASCII y utilizarlo para imprimir letras, pero la importancia de los char radica en que al poder almacenar números enteros, pueden sustituir a int, el beneficio es que un char mide 8 bits, frente a 32 de un interger.
Existen programas que se les conoce como Bloatware, su principal carcaterística es que están "inflados" contienen cosas inecesarias que terminan convertidas es un programa muy pesado. Este puede ser un buen truco para evitar el Software Gordo.
Ahora estudiemos su uso, es idéntico al de los otros tipos.
#include <stdio.h>
int main()
{
char letra;
int ascii = 66;
letra = 'A';
printf("La letra almacenada en la variable es: %c. Y su valor ASCII es: %i.\n",letra,letra);
printf("El co\'digo ASCII es: %i. Y su correspondiente letra es: %c.",ascii,ascii);
getchar();
return 0;
}
Empecemos a analizar la función principal:
Aquí declaramos 2 variables un entero y un caracter, ascii y letra respectivamente. Fíjate que estamos dándole un valor a ascii al mismo tiempo que la declaramos. Ya es de suponerse que estas familiarizado con esto, no me extenderé más.
Le asignamos un valor a letra. Fíjate que el carcater está "encerrado" en ''.
Ahora, estudiemos un poco más a printf. Fíjate que en la primer función, estamos usando dos %, uno con c (para caracteres) y otro con i (para enteros). Ahora nota que se está sumando un argumento más, el primer % corresponde al 2° argumento, el segundo % corresponde al tercer argumento.
El primer % tiene una C, la C viene de carcater, y va ligado al segundo argumento: "letra" por lo tanto imprimirá A. El segundole damos forma de entero (int), pero está ligado de nuevo, a la variable letra; esto da lugar a que se imprima el equivalente en código ASCII de A (65).
El segundo printf funciona inversamente, ya que en lugar de utilizar una letra, utilizamos un número. Compila y ejecuta tu programa, es más fácil entenderlo así.
Con esto doy por terminada la primera aproximación a las variables y los tipos de datos. Si tienes alguna duda, no dudes en postear aquí, o siempre puedes utilizar los foros de programación.
Comentarios
SuperTanos vuelve con un
SuperTanos vuelve con un nuevo tuto de programacion ;-)
Muy bueno el tuto. Ahora me pongo a leerlo
Salu2
El primer ejemplo...
Si me equivoco me perdonais,
jeje
Pero en el primer ejemplo no debveria ser asi:
/*Jugando con los enteros*/
#include <stdio.h>
int main()
{
/* Declaración de Variables*/
int a,b,suma;
/*Asignado valores a las variables previamente establecidas*/
a = 2000;
b = 1000;
suma = a + b;
/*Imprimiendo en pantalla las variables*/
printf("a = %i\n",a);
printf("b = %i\n",b);
printf ("a + b = %i\n",suma);
printf("Tamano en bits de int: %i",sizeof( int )*8);
getchar();
return 0;
}
No obligatorio
Pues si te fijas bien el tuto, el quizo almacenar en 'b' el valor de la suma de las variables 'a' y 'suma', aunque seria mas correcto como lo dices, para que no haya confución, pero eso no afecta en nada el programa.
Saludos.
psp.scenebeta.com más que una web una comunidad unida.
Quiero una DS!!!!!!!!!!!
Ok!!
Es que me estaba liando xDD, Gracias.