Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


1.7. Introducción a las variables: int

Las variables son un espacio de memoria al que nosotros asignamos un nombre y en el que podremos almacenar datos.

El primer ejemplo nos permitía escribir "Hola". El segundo nos permitía sumar dos números que habíamos prefijado en nuestro programa. Pero esto tampoco es "lo habitual", sino que esos números dependerán de valores que haya tecleado el usuario o de cálculos anteriores.

Por eso necesitaremos usar variables, en las que guardemos los datos con los que vamos a trabajar y también los resultados temporales. Vamos a ver como ejemplo lo que haríamos para sumar dos números enteros que fijásemos en el programa.

 

1.7.1. Definición de variables: números enteros

Para usar una cierta variable primero hay que declararla: indicar su nombre y el tipo de datos que querremos guardar.

El primer tipo de datos que usaremos serán números enteros (sin cifras decimales), que se indican con "int" (abreviatura del inglés "integer"). Después de esta palabra se indica el nombre que tendrá la variable:

int primerNumero;

Esa orden reserva espacio para almacenar un número entero, que podrá tomar distintos valores, y al que nos referiremos con el nombre "primerNumero".

Si vamos a usar dos o más números enteros, podemos declararlos en la misma línea:

int primerNumero, segundoNumero;

Ejercicio propuesto 1.7.1.1: Crea un programa que declare tres variables a, b y c, todas ellas para guardar números enteros, y que luego escriba "Hola en pantalla".

1.7.2. Asignación de valores

Podemos dar un valor a esa variable (guardar un número en esa posición de memoria) durante el programa haciendo

primerNumero = 234;

O también podemos darle un valor inicial ("inicializarla") antes de que empiece el programa, en el mismo momento en que la definimos:

int primerNumero = 234;

Incluso podemos definir e inicializar más de una variable a la vez:

int primerNumero = 234, segundoNumero = 567;

(esta línea reserva espacio para dos variables, que usaremos para almacenar números enteros; una de ellas se llama primerNumero y tiene como valor inicial 234 y la otra se llama segundoNumero y tiene como valor inicial 567).

Después ya podemos hacer operaciones con las variables, igual que las hacíamos con los números:

suma = primerNumero + segundoNumero;

Ejercicio propuesto 1.7.2.1: Crea una versión ampliada del programa del ejercicio 1.7.1.1, que dé los valores 1, 2 y 3 a las variables a, b y c, respectivamente.

 

1.7.3. Mostrar el valor de una variable en pantalla

Una vez que sabemos cómo mostrar un número en pantalla, es sencillo mostrar el valor de una variable: para un número hacíamos cosas como

printf("El resultado es %d", 3+4);

y si se trata de una variable será idéntico:

printf("El resultado es %d", suma);

Conocemos todo lo necesario para hacer una variante del programa que sumaba dos números, pero esta vez usando variables:

/* Ejemplo en C: sumar usando variables - ej01070301.c */

#include 

int main()
{
    int primerNumero;
    int segundoNumero;
    int suma;

    primerNumero = 234;
    segundoNumero = 567;
    printf("Comenzamos... ");

    suma = primerNumero + segundoNumero;
    printf("La suma de %d y %d es %d", 
        primerNumero, segundoNumero, suma);

    return 0;
}

Repasemos todo lo que hace, paso a paso:

Nota: las variables las podemos declarar dentro del cuerpo del programa (main) o fuera de él. En programas tan sencillos no habrá diferencia. Más adelante veremos que en ciertos casos sí se comportarán de forma distinta según donde las hayamos declarado.

Un detalle importante es que muchos compiladores de C obligan a declarar las variables antes de cualquier otra orden, de modo que el siguiente programa puede no parecerle correcto a compiladores de C previos al estándar C99, porque la variable "suma" se declara después de la orden "printf", separada del resto de declaraciones. A partir del estándar C99 sí se permite declarar variables en cualquier punto. También puede permitirlo algún compilador más antiguo que también sea compilador de C++, porque en este lenguaje sí se permite desde hace mucho tiempo declarar variables en cualquier punto del programa.

/* Ejemplo en C: sumar usando variables (2) - ej01070302.c */

/* 
Puede no funcionar en compiladores antiguos (previos al 
estándar C99): no todas las declaraciones de variables están 
situadas al principio del programa.
*/

#include 

int main()
{
    int primerNumero;
    int segundoNumero;

    primerNumero = 234;
    segundoNumero = 567;
    printf("Comenzamos... ");

    int suma;
    suma = primerNumero + segundoNumero;
    printf("La suma de %d y %d es %d", 
        primerNumero, segundoNumero, suma);

    return 0;
}

Nuestro fuente inicial se puede resumir un poco, si damos los valores a las variables en el momento de inicializarlas (algo que será menos frecuente en programas más complejos, en los que los valores no estén prefijados, pero que todavía nos podemos permitir):

/* Ejemplo en C: sumar usando variables (3) - ej01070303.c */
/* Versión "compacta" */

#include 

int main()
{
    int primerNumero = 234;
    int segundoNumero = 567;
    int suma = primerNumero + segundoNumero;
    printf("La suma de %d y %d es %d", 
        primerNumero, segundoNumero, suma);

    return 0;
}

Ejercicio propuesto 1.7.3.1: Crea una versión ampliada del programa del ejercicio 1.7.2.1, que muestre los valores de las variables a, b y c, así como su suma.
Ejercicio propuesto 1.7.3.2: Crea un programa que calcule el producto de los números 121 y 132, usando variables.

 

1.7.4. Incrementar una variable

######## 3.1.3. Incremento y decremento Conocemos la forma de realizar las operaciones aritméticas más habituales. Pero también existe una operación que es muy frecuente cuando se crean programas, especialmente (como ya hemos visto) a la hora de controlar bucles: incrementar el valor de una variable en una unidad: a = a + 1; Pues bien, en C# (y en otros lenguajes que derivan de C, como C++, Java y PHP), existe una notación más compacta para esta operación, y para la opuesta (el decremento): a++; es lo mismo que a = a+1; a--; es lo mismo que a = a-1; // Ejemplo_03_01_03a.cs // Incremento y decremento // Introducción a C#, por Nacho Cabanes using System; public class Ejemplo_03_01_03a { public static void Main() { int n = 10; Console.WriteLine("n vale {0}", n); n++; Console.WriteLine("Tras incrementar vale {0}", n); n--; n--; Console.WriteLine("Tras decrementar dos veces, vale {0}", n); } } Pero esto tiene algo más de dificultad de la que puede parecer en un primer vistazo: podemos distinguir entre "preincremento" y "postincremento". En C# es posible hacer asignaciones como b = a++; Así, si "a" valía 2, lo que esta instrucción hace es dar a "b" el valor de "a" y aumentar el valor de "a". Por tanto, al final tenemos que b=2 y a=3 (postincremento: se incrementa "a" tras asignar su valor). En cambio, si escribimos b = ++a; y "a" valía 2, primero aumentamos "a" y luego los asignamos a "b" (preincremento), de modo que a=3 y b=3. Por supuesto, también podemos distinguir postdecremento (a--) y predecremento (--a). Ejercicios propuestos: (3.1.3.1) Crea un programa que use tres variables x,y,z. Sus valores iniciales serán 15, -10, 2.147.483.647. Se deberá incrementar el valor de estas variables. ¿Qué valores esperas que se obtengan? Contrástalo con el resultado obtenido por el programa. (3.1.3.2) ¿Cuál sería el resultado de las siguientes operaciones? a=5; b=++a; c=a++; b=b*5; a=a*2; Calcúlalo a mano y luego crea un programa que lo resuelva, para ver si habías hallado la solución correcta. 3.1.4. Operaciones abreviadas: += Aún hay más. Tenemos incluso formas reducidas de escribir cosas como "a = a+5". Allá van a += b ; es lo mismo que a = a+b; a -= b ; es lo mismo que a = a-b; a *= b ; es lo mismo que a = a*b; a /= b ; es lo mismo que a = a/b; a %= b ; es lo mismo que a = a%b; // Ejemplo_03_01_04a.cs // Operaciones abreviadas // Introducción a C#, por Nacho Cabanes using System; public class Ejemplo_03_01_04a { public static void Main() { int n = 10; Console.WriteLine("n vale {0}", n); n *= 2; Console.WriteLine("Tras duplicarlo, vale {0}", n); n /= 3; Console.WriteLine("Tras dividirlo entre tres, vale {0}", n); } } Ejercicios propuestos: (3.1.4.1) Crea un programa que use tres variables x,y,z. Sus valores iniciales serán 15, -10, 214. Deberás incrementar el valor de estas variables en 12, usando el formato abreviado. ¿Qué valores esperas que se obtengan? Contrástalo con el resultado obtenido por el programa. (3.1.4.2) ¿Cuál sería el resultado de las siguientes operaciones? a=5; b=a+2; b-=3; c=-3; c*=2; ++c; a*=b; Crea un programa que te lo muestre. 3.1.5. Asignaciones múltiples Ya que estamos hablando de las asignaciones, es interesante comentar que en C# es posible hacer asignaciones múltiples: a = b = c = 1; // Ejemplo_03_01_05a.cs // Asignaciones múltiples // Introducción a C#, por Nacho Cabanes using System; public class Ejemplo_03_01_05a { public static void Main() { int a=5, b=2, c=-3; Console.WriteLine("a={0}, b={1}, c={2}", a, b, c); a = b = c = 4; Console.WriteLine("Ahora a={0}, b={1}, c={2}", a, b, c); a++; b--; c*=2; Console.WriteLine("Y finalmente a={0}, b={1}, c={2}", a, b, c); } } #######

###Una vez que sabemos cómo mostrar un número en pantalla, es sencillo mostrar el valor de una variable: para un número hacíamos cosas como