Diferencia entre revisiones de «PrInf11: Bucles while»

De MateWiki
Saltar a: navegación, buscar

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/mat/public_html/w/includes/diff/DairikiDiff.php on line 434
(Contenido de la práctica)
(Contenido de la práctica)
Línea 26: Línea 26:
  
 
El programa tendrá que hacer dos tareas principales:
 
El 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
+
* Llevar una cuenta de cuántas tiradas se ha realizado, y actualizar esta cuenta cada vez que se realice una tirada.
 
* Repetir la tirada del dardo tantas veces como sea necesario.
 
* Repetir la tirada del dardo tantas veces como sea necesario.
  
Para llevar la cuenta usaremos una variable de nombre ''tiradas'', que valdrá inicialmente 0.
+
Para llevar la cuenta usaremos una variable de nombre ''tiradas'', que valdrá inicialmente 0, y cuyo valor se incremente con cada tirada.
  
Para repetir la tirada, tendremos que usar un bucle ''while''. {{ Tarea | ¿Cuál es la condición que tiene que cumplir el bucle ''while? Si no lo tienes muy claro, echa un vistazo al vídeo [[Prog17: Bucles while]] }}
+
Para repetir la tirada, tendremos que usar un bucle ''while''. Necesitaremos otra variable que nos . {{ Tarea | ¿Cuál es la condición que tiene que cumplir el bucle ''while''? Si no lo tienes muy claro, echa un vistazo al vídeo [[Prog17: Bucles while]] }}
  
 
== Ejercicio post-práctica ==
 
== Ejercicio post-práctica ==

Revisión del 12:53 23 jul 2013

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.

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
end

El programa tendrá que hacer dos tareas principales:

  • Llevar una cuenta de cuántas tiradas se ha realizado, y actualizar esta cuenta cada vez que se realice una tirada.
  • Repetir la tirada del dardo tantas veces como sea necesario.

Para llevar la cuenta usaremos una variable de nombre tiradas, que valdrá inicialmente 0, y cuyo valor se incremente con cada tirada.

Para repetir la tirada, tendremos que usar un bucle while. Necesitaremos otra variable que nos .

Lapiz.png Tarea: ¿Cuál es la condición que tiene que cumplir el bucle while? Si no lo tienes muy claro, echa un vistazo al vídeo Prog17: Bucles while


4 Ejercicio post-práctica