- "Creo que ha dicho 'Bienaventurados los queseros'".
- "¿Por qué precisamente los queseros?"
- "Hombre, no hay que tomarlo literalmente, se refiere a todos los fabricantes de productos lácteos."
(La Vida de Brian)
Más bucles y otras cosas interesantes
Una alternativa al bucle while es el bucle for. Lo introduzco para que sepáis de qué va, pero su funcionalidad es la misma que el while. De hecho cualquier bucle for se puede escribir como un while y viceversa.
Código: Seleccionar todo
for (inicialización; condición de repetición; incremento)
Por ejemplo:
Código: Seleccionar todo
#include <stdio.h>
int main(int argc, char* argv[])
{
int i, limite;
printf("Introduce el limite: ");
scanf("%d", &limite);
// i = 0 inicializa i a cero antes de comenzar el bucle
// El bucle continuará mientras i < limite
// i++ incrementa i en 1 a cada vuelta del bucle
for(i=0; i<limite; i++)
printf("%d ", i);
printf("\n");
return 0;
}
No creo que haya mucho que explicar sobre esto. Cualquier duda, no dudéis en preguntar.
Me gustaría introducir una función bastante interesante: el generador de números pseudo-aleatorios. Se llaman pseudo-aleatorios porque para un ordenador no existe nada aleatorio, y estos números se generan mediante algunos cálculos para hacer parecer que son pura suerte. Os dejo un ejemplo comentado:
Código: Seleccionar todo
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char* argv[])
{
int dado_maquina, dado_humano;
printf("Vamos a jugar a los dados... ¿Te atreves a jugar contra mí?\n");
printf("Tú tiras primero. Presiona una tecla para tirar el dado.\n");
getchar();
// Iniciamos el generador de números aleatorios con el tiempo de la computadora
srand(time(NULL));
// rand() nos devuelve un número pseudo-aleatorio entre 0 y una constante.
// Para reducirlo entre dos números de nuestra elección basta con usar un módulo (el resto de la división)
// y una suma.
// En este caso sacamos un número entre 1 y 6, ambos incluídos.
dado_humano = (rand() % 6) + 1;
printf("Tu tirada ha sido: %d\n", dado_humano);
printf("Ahora tiro yo... Espero tu permiso para tirar.\n");
getchar();
srand(time(NULL));
dado_maquina = (rand() % 6) + 1;
printf("Mi tirada ha sido: %d\n", dado_maquina);
if (dado_maquina > dado_humano)
printf("Eres un mortal sin mucha suerte\n");
else if (dado_maquina == dado_humano)
printf("Vaya coincidencia...\n");
else
printf("Eres un mortal con bastante suerte... En la próxima versión no será tan fácil.\n");
return 0;
}
Y ahora os toca a vosotros practicar:
1) Escribir un programa que simule el sorteo de lotería. En nuestro caso, el billete de lotería consta de 5 cifras.
2) Reescribir el juego de adivinar el número secreto, sólo que esta vez sea la computadora la que genere un número secreto por sí misma.
3) Modificar el ejemplo del juego de dado puesto arriba para que siempre gane la computadora. ¿Es esto posible?
Descarga en PDF (cortesía de Dark Pallacus):
<< Anterior Siguiente >>