• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

[Introducción al lenguaje de programación C] Variables y constantes (Capítulo III)

Neur0na2

Timing Attack!
Registrado
13 Feb 2016
Mensajes
115
Puntos
0
Seguimos ampliando nuestro conocimiento sobre el lenguaje, y es que esto acaba de empezar.

En este capítulo comenzaremos viendo las variables y las constantes.

Una variable para explicarlo de una forma que podáis comprender fácilmente, es una especie de cajón que nos permite almacenar datos de un cierto tipo, por ejemplo números o letras y éstas pueden variar una vez inicializadas, de ahí su nombre.

Supongamos que tenemos este código en nuestra aplicación:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;

    printf("Nº de caramelos: %d\n", caramelos);

    getch();
    return 0;
}

Código:
int caramelos = 9;

Hemos creado una variable de tipo entero int con el nombre caramelos y le asignamos un valor de 9.

Código:
printf("Nº de caramelos: %d\n", caramelos);

La función printf ya la vimos en el anterior capítulo, pero vayamos a lo nuevo que hemos introducido dentro de la doble comilla. Hemos puesto una frase y posteriormente hemos puesto el símbolo % seguido de un carácter de tipo int (d es para los enteros), una coma y la llamada a la variable caramelos. Básicamente esto lo que hace es mostrar en pantalla la frase “Nº de caramelos:” y posteriormente el valor que le asignamos a la variable caramelos. Podéis probar a cambiar el valor de la variable caramelos, compilar y ver en pantalla el nuevo valor que le hemos dado.

Podemos crear tantas variables como queramos y mostrarlas en pantalla.

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;
    int chicles = 11;

    printf("Nº de caramelos: %d\n", caramelos);
    printf("Nº de chicles: %d\n", chicles);

    getch();
    return 0;
}

Código:
int chicles = 11;

Ahora hemos añadido otra variable entera que hemos llamado chicles y le hemos asignado un valor de 11. Pero, ¿y si quisiéramos imprimir en pantalla el valor de las variables en el mismo printf?

Esta sería la forma de hacerlo:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;
    int chicles = 11;

    printf("Tenemos un total de %d caramelos y %d chicles\n", caramelos, chicles);

    getch();
    return 0;
}

Recordad que primero se nos mostrarán en pantalla las variables según el orden en que las llamemos. Si quisiéramos imprimir en pantalla primero el valor de chicles antes que el de caramelos lo haríamos de la siguiente manera:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;
    int chicles = 11;

    printf("Tenemos un total de %d chicles y %d caramelos\n", chicles, caramelos);

    getch();
    return 0;
}

Evidentemente dentro de las dos comillas habría que modificar el texto de caramelos y chicles, puesto que si modificamos el orden de las variables a las que llamamos y no el orden del texto chicles y caramelos, estaríamos mostrando el valor de chicles donde caramelos y viceversa.

Bien, una vez visto esto también decir que podemos crear variables y no asignarles ningún valor inicialmente. A esto se le llama valor indefinido debido a que pueden tener cualquier valor, vamos a ver un ejemplo:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;
    int chicles = 11;
    int piruletas;

    printf("Tenemos un total de %d chicles y %d caramelos\n", chicles, caramelos);

    getch();
    return 0;
}

Si os fijáis ahora creamos otra variable entera llamada piruletas pero no le asignamos ningún valor. Pero en cualquier momento podemos asignarle el valor que queramos, por ejemplo el valor 15.

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;
    int chicles = 11;
    int piruletas;
    piruletas = 15;

    printf("Tenemos un total de %d chicles y %d caramelos\n", chicles, caramelos);
    printf(“Tenemos %d piruletas\n”, piruletas);

    getch();
    return 0;
}

Recordad que las variables pueden variar y por lo tanto, si la inicializamos con un valor lo podemos modificar cuando queramos. Ahora caramelos tiene un valor asignado de 16.

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int caramelos = 9;
    int chicles = 11;
    int piruletas;
    piruletas = 15;

    caramelos = 16;

    printf("Tenemos un total de %d chicles y %d caramelos\n", chicles, caramelos);
    printf("Tenemos %d\n", piruletas);

    getch();
    return 0;
}

Una vez visto el tipo entero, pasamos a ver el tipo float, que son los número decimales:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    float ExamenMates = 8.5;

    printf("Mi nota en el examen de matemáticas es: %f\n", ExamenMates);

    return 0;
}

En este caso hemos creado una variable de tipo flotante float llamada ExamenMates y le hemos asignado un valor de 8’5. Recordad que en C los valores decimales se indican con un punto.

Código:
printf("Mi nota en el examen de matemáticas es: %f\n", ExamenMates);

Al usar la función printf, hemos modificado la letra d, que usábamos para los tipos int por la letra f, que es la que usamos para mostrar los tipos float.

Es posible que al asignar un solo decimal a nuestra variable de tipo flotante e imprimir su valor en pantalla se nos muestren más decimales, en este caso en forma de ceros. Para solucionar este problema añadiremos justo a continuación del símbolo % esto 0.x, dónde x será el número que determine la cantidad de decimales a mostrar. Veamos un ejemplo:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    float ExamenMates = 8.5;

    printf("Mi nombre es: %0.1f\n", ExamenMates);

    getch();
    return 0;
}

Si en vez de poner %0.1f cambiamos el 1 por un 2, se nos mostrará el segundo decimal, que en este caso será el 0, por lo que se nos mostrará en pantalla el valor 8.50 y así sucesivamente.

Debéis recordad que si especificamos una variable de tipo float y le asignamos un valor entero (int) el compilador no os mostrará un error ya que los números flotantes (float) como comúnmente se les conoce en programación, incluyen también a los enteros, pero no al revés, mucho cuidado con esto.

Y para finalizar con las variables mostraremos un nuevo tipo de dato, el tipo char*.

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    char* miNombre = "Alfonso";

    printf("Mi nombre es: %s\n", miNombre);

    getch();
    return 0;
}

Código:
char* miNombre = "Alfonso";

Ahora hemos creado una variable de cadena de caracteres char* a la que hemos llamado miNombre y le hemos asignado el valor Alfonso. Fijaos que para asignar el valor de una cadena de caracteres debe ir entre dos comillas.

Código:
printf("Mi nombre es: %s\n", miNombre);

Ahora en printf para imprimir en pantalla una cadena de caracteres sustituiremos la letra d o f por la letra s.

Una vez visto las variables pasemos a las constantes.

Las constantes tienen la misma función que las variables, pero una vez son inicializadas no podremos modificar su valor. Son muy útiles para ahorrar memoria si queremos definir valores estáticos.

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    const int ordenadores = 21;

    printf("Nº de ordenadores: %d\n", ordenadores);

    getch();
    return 0;
}

Declaramos una constante const de tipo entero con el nombre ordenadores y le asignamos un valor de 21. Este valor que asignamos no lo vamos a poder modificar, por lo que si hiciésemos:

Código:
#include <stdio.h>

int main(int argc, char *argv[])
{
    const int ordenadores = 21;

    ordenadores = 23;

    printf("Nº de ordenadores: %d\n", ordenadores);

    getch();
    return 0;
}

El compilador nos mostraría un error en la línea de ordenadores = 23.

Esto es un vistazo muy rápido a las variables y las constantes, por lo que no hemos definido todos los tipos de datos posibles de momento. Cada tipo de dato ocupa una cantidad y engloba un rango de números en concreto, por lo que es importante saber elegir el tipo de dato según el valor que vamos a asignar. Os pongo una tabla que he encontrado en Google para que veáis esto más detalladamente.

Spoiler

En el próximo capítulo jugaremos mucho más con las variables y las constantes :eek:k:

Capítulo anterior
Capítulo siguiente
 
Última edición:
Arriba