PrInf11: Bucles while
| Práctica de Informática | |
|---|---|
| Bucles con while | |
| Práctica anterior | Siguiente práctica |
| Este artículo es un guión de prácticas de Informática | |
Existe otro tipo de bucles que nos permiten repetir un conjunto de comandos si no sabemos cuántas veces se tiene que repetir. Lo que necesitamos saber es qué condición tiene que cumplirse para que se repitan los comandos. Son los denominados bucles while. En esta práctica vamos a introducir los bucles while con un ejemplo de lanzamiento de dardos. Supongamos que la probabilidad de acertar en el centro de una diana es el [math]5\%[/math], ¿cuántas veces tendremos que tirar el dardo para acertar en el centro? En principio, es imposible saber el número de tiradas necesario, unas veces será mayor, otras menor. Pero sí sabemos la condición que tiene que cumplirse: mientras no acertemos en el centro de la diana, seguiremos tirando el dardo.
Contenido
1 Requisitos previos
Es importante entender el concepto de bucle y haber realizado la práctica anterior.
También es importante haber visto el siguiente vídeo antes de realizar esta práctica:
2 Comandos que se aprenderán en esta práctica
| while |
3 Contenido de la práctica
Lanzar un dardo y acertar en el centro de la diana es una tarea difícil. Supongamos que la posibilidad de acertar en el centro de la diana es del [math]5\%[/math]. ¿Cuántas veces tendremos que lanzar el dardo para acertar en el centro? Para responder a esta pregunta necesitaremos repetir la tirada del dardo tantas veces como sea necesario. Es imposible saber cuántas veces hasta que no hayamos acertado en el centro de la diana. Por tanto, es la situación ideal para resolver usando un bucle while.
La primera cuestión a resolver es cómo programar la tirada de un dardo. Dado que tirar un dardo es un fenómeno aleatorio, podemos intentar usar el comando rand para simular un dardo. El comando rand devuelve números uniformemente distribuidos entre 0 y 1. Por tanto, aproximadamente el 5% de las veces nos devolverá un número inferior a 0.05. Por tanto, el código que detecta si el dardo ha acertado en el centro de la diana podría ser el siguiente:
if rand() < 0.05
% El dardo ha acertado en el centro de la diana
endEl programa tendrá que hacer dos tareas principales:
- Llevar una cuenta de cuántas tiradas se ha realizado, y actualizar esta cuenta dentro del cuerpo del if mostrado en el código anterior
- Repetir la tirada del dardo tantas veces como sea necesario.