Diferencia entre revisiones de «PrInf14: Interrumpir bucles while»

De MateWiki
Saltar a: navegación, buscar
(Contenido de la práctica)
Línea 19: Línea 19:
  
 
== Contenido de la práctica ==
 
== Contenido de la práctica ==
 +
En esta práctica vamos a realizar una simulación de un juego con una moneda. El juego consiste en tirar una moneda varias veces. Si el jugador saca tres caras, gana un premio en euros igual al número de tiradas que se hayan realizado. Si saca tres cruces, pierde la cantidad en euros igual al número de tiradas realizado. Nuestro programa tiene que tirar la moneda las veces que sean necesarias para sacar tres caras o tres cruces, y luego mostrar el número de tiradas que han sido necesarias.
 +
 +
 +
Para simular el lanzamiento de una moneda usaremos la función ''rand'', que devuelve un número aleatorio entre 0 y 1. Si el número es menor que 0.5, entenderemos que ha salido cara, y si no lo es, que ha salido cruz.
 +
 +
 +
El primer paso consiste en crear tres variables para llevar la cuenta del número de tiradas, caras y cruces:
 +
{{#tag:source|tiradas = 0;
 +
nCaras = 0;
 +
nCruces = 0;|lang="matlab"}}
 +
Una vez creadas estas variables, tenemos que repetir la tirada tantas veces como sea necesario. Como no podemos saber el número de tiradas que hará falta, tenemos que usar un bucle ''while'' para repetir los comandos. {{ Tarea | ¿Cuál es la condición que tiene que cumplir el bucle ''while'' para seguir realizando tiradas}}
  
 
== Ejercicio post-práctica ==
 
== Ejercicio post-práctica ==
  
 
[[Categoría:Prácticas de Informática]]
 
[[Categoría:Prácticas de Informática]]

Revisión del 17:37 2 ago 2013

Práctica de Informática
Cómo interrumpir bucles while
Práctica anterior Siguiente práctica
Este artículo es un guión de prácticas de Informática


Warning.png Este artículo está en versión beta. El autor de este artículo no lo ha terminado todavía, por favor no lo edites hasta que elimine este mensaje.

En un bucle while, no sabemos a priori cuántas veces se va ejecutar el bucle. Pero sí podemos saber la condición que tiene que cumplirse para que se siga ejecutando el bucle. Si esta condición es muy compleja, puede ser recomendable simplificarla y añadir algún break o continue al cuerpo del bucle. De nuevo, el uso de break y continue debería ser minoritario, ya que muchas veces hacen el código más difícil de entender y modificar, y más propenso a contener fallos. En esta práctica vamos a ver una condición compleja, y cómo añadiendo un break hacemos el programa más sencillo.

1 Requisitos previos

Es importante haber realizado las siguientes prácticas antes de realizar esta práctica:

Para la segunda parte de la práctica, también puede ser necesario repasar la práctica sobre expresiones lógicas:

2 Vídeos posteriores

Tras realizar esta práctica, el siguiente vídeo te ayudará a afianzar conocimientos:

3 Contenido de la práctica

En esta práctica vamos a realizar una simulación de un juego con una moneda. El juego consiste en tirar una moneda varias veces. Si el jugador saca tres caras, gana un premio en euros igual al número de tiradas que se hayan realizado. Si saca tres cruces, pierde la cantidad en euros igual al número de tiradas realizado. Nuestro programa tiene que tirar la moneda las veces que sean necesarias para sacar tres caras o tres cruces, y luego mostrar el número de tiradas que han sido necesarias.


Para simular el lanzamiento de una moneda usaremos la función rand, que devuelve un número aleatorio entre 0 y 1. Si el número es menor que 0.5, entenderemos que ha salido cara, y si no lo es, que ha salido cruz.


El primer paso consiste en crear tres variables para llevar la cuenta del número de tiradas, caras y cruces:

tiradas = 0;
nCaras = 0;
nCruces = 0;

Una vez creadas estas variables, tenemos que repetir la tirada tantas veces como sea necesario. Como no podemos saber el número de tiradas que hará falta, tenemos que usar un bucle while para repetir los comandos.

Lapiz.png Tarea: ¿Cuál es la condición que tiene que cumplir el bucle while para seguir realizando tiradas


4 Ejercicio post-práctica