Tutorial de programación en C Parte 3 – Conceptos básicos de las variables
Hasta ahora, hemos hablado de los fundamentos de lo que es un programa en C, de cómo compilarlo y ejecutarlo, y de qué son los preprocesadores. Si has repasado estos tutoriales, es hora de que hablemos del siguiente tema, que son las variables.
Las variables son uno de los elementos centrales de la programación en C, ya que almacenan valores que los programadores pueden utilizar según sus necesidades. Entendamos sus fundamentos a través de un ejemplo. Lo siguiente es un programa básico en C:
#include <stdio.h>
int main (void)
{
int a = 10;
char b = 'z';
float c = 1.5;
printf("\n a=%d, b=%c, c=%f \n", a,b,c);
return 0;
}
En anteriores tutoriales de programación en C, ya hemos explicado cosas como qué es ‘stdio.h’, qué significa ‘#include’ y qué es una función (especialmente ‘main’). Así que saltaremos directamente a la parte de las variables.
La línea ‘int a =10’ significa que hay una variable llamada ‘a’ que puede contener valores de tipo entero (‘int’), y el valor actual que contiene es ’10’. Del mismo modo, ‘b’ puede contener caracteres y ‘c’ puede contener números de coma flotante, siendo sus valores actuales ‘z’ y ‘1,5’, respectivamente.
El programa de ejemplo mostrado arriba imprime estos valores en la salida mediante la función ‘Printf’. Observa que %d, %c y %f se utilizan para indicar a la función ‘printf’ que las variables ‘a’, ‘b’ y ‘c’ deben ser tratadas como enteros, caracteres y flotantes, respectivamente.
Operaciones sobre las variables
Por supuesto, puedes hacer mucho más que imprimir estos valores en la salida. Por ejemplo, el siguiente programa calcula el factorial del número 5.
#include <stdio.h>
int main (void)
{
int num = 5;
int result = 1;
while (num > 0)
{
result = result * num;
num = num -1;
}
printf("\n Factorial of 5 is %d\n", result);
return 0;
}
Para los que no lo sepan, el factorial de un número, digamos «n», es el resultado de la siguiente multiplicación:
nx(n-1)x(n-2)x.....1
Así, si el número es 5, el factorial de 5 (o, ¡5!) sería 5x4x3x2x1, que es igual a 120.
Volviendo al programa, hemos definido dos variables enteras llamadas «num» y «resultado». Mientras que num contiene el número cuyo factorial hay que calcular (5 en este caso), ‘resultado’ sólo contiene un valor ficticio de ‘1’ para empezar. Luego viene un bucle «while».
Como su nombre indica, los bucles se utilizan en las funciones C para ejecutar repetidamente un conjunto de instrucciones. En el caso de ‘while’, el bucle comienza comprobando una condición (‘num debe ser mayor que cero’ en este caso) y luego las instrucciones dentro del bucle se ejecutan repetidamente hasta que la condición de ‘while’ sea falsa.
En nuestro caso, el valor de ‘num’ es inicialmente 5. Por lo tanto, la ejecución entrará dentro del bucle y el primer valor del resultado ‘sería’ ‘5’ (1×5). Después, ‘num’ se convierte en ‘num -1’, lo que significa que el nuevo valor de ‘num’ es ahora 4.
El bucle se ejecuta de nuevo porque 4 sigue siendo mayor que cero. Esta vez, ‘resultado’ sería 5×4, que es 20. Y ‘num’ se convierte entonces en (4-1), que es 3. De este modo, el bucle continúa ejecutándose hasta que ‘num’ se convierte en 0, y en ese momento, el resultado es ‘120’, que es el factorial de 5.
Esta es la salida producida por este programa:
Factorial of 5 is 120
Ahora, en lugar de un valor concreto (como «5» en este caso), ¿qué pasa si quieres que el usuario del programa especifique el número cuyo factorial debe calcularse? Pues bien, eso se puede hacer de la siguiente manera:
#include <stdio.h>
int main (void)
{
int num = 0, temp=0;
printf("\n Enter a positive integer: ");
scanf("%d", &num);
temp = num;
int result = 1;
while (temp > 0)
{
result = result * temp;
temp = temp -1;
}
printf("\n Factorial of %d is %d\n", num, result);
return 0;
}
Aquí hemos utilizado una nueva función llamada ‘scanf’, que hace exactamente lo contrario que ‘printf’: acepta la entrada del usuario.
Ahora bien, cada variable tiene asociada una determinada cantidad de memoria en términos de bytes. La función ‘scanf’ requiere que le pases la dirección inicial de la memoria de una variable, a la que puedes acceder anteponiendo ‘&’ al nombre de la variable.
Aquí hemos introducido una nueva variable ‘temp’, ya que necesitamos el número real pasado por el usuario (almacenado aquí en ‘num’) en la última sentencia ‘printf’.
Conclusión
En este tutorial, hemos tocado los fundamentos de las variables. Este tutorial debería haberte dado una idea básica de lo que son las variables y de cómo se pueden utilizar en el lenguaje de programación C. Hay otros aspectos relacionados con las variables que deben ser discutidos – lo haremos en el próximo tutorial.