Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Duda con ejercicio propuesto Urna

Estas en el tema de Duda con ejercicio propuesto Urna en el foro de Java en Foros del Web. Buenos días, llevo rato dandole vueltas y no consigo aclararme con ciertas sentencias de un código ya hecho. Mi pregunta es: ¿Qué hacen las líneas ...
  #1 (permalink)  
Antiguo 21/02/2013, 04:31
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 12 años, 1 mes
Puntos: 0
Duda con ejercicio propuesto Urna

Buenos días, llevo rato dandole vueltas y no consigo aclararme con ciertas sentencias de un código ya hecho.

Mi pregunta es: ¿Qué hacen las líneas 12 y 40? Si necesitáis más información sobre el ejercicio decidmelo y copiare el enunciado. Desde ya, muchas gracias :)

Código Java:
Ver original
  1. public class Urna
  2. {
  3.     protected int blancas,negras;
  4.    
  5.     public Urna(int blancas,int negras)
  6.     {
  7.         this.blancas=blancas;
  8.         this.negras=negras;
  9.     }
  10.     public Urna()
  11.     {
  12.         this (1,1);
  13.     }
  14.     public int totalBolas()
  15.     {
  16.         return (blancas+negras);
  17.     }
  18.     public boolean quedaMasDeUnaBola()
  19.     {
  20.         if(blancas+negras>1)
  21.             return true;
  22.         return false;
  23.     }
  24.     public boolean quedanBolas()
  25.     {
  26.         if(totalBolas()>0)
  27.             return true;
  28.         return false;
  29.     }
  30.     public void meteBola(int color)
  31.     {
  32.         if (color==1)
  33.             blancas++;
  34.         else
  35.             negras++;
  36.     }
  37.  
  38.     public int sacaBola() //1=blancas 0=negras
  39.     {
  40.         int x=(int)(Math.random()*totalBolas()+1);
  41.         if(x<=blancas)
  42.         {
  43.             blancas--;
  44.             return 1;
  45.         }
  46.         else
  47.         {
  48.             negras--;
  49.             return 0;
  50.         }
  51.     }
  52.    
  53. }
  #2 (permalink)  
Antiguo 21/02/2013, 05:05
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: Duda con ejercicio propuesto Urna

//Constructor con parámetros
public Urna(int blancas,int negras)
{
this.blancas=blancas;
this.negras=negras;
}

public Urna()
{
this (1,1);
}

Es un constructor por defecto, que en vez de dejar los atributos sin asignar, llama a su propio constructor con parámetros indicándole 1 blanca y 1 negra.

Lo otro...

int x=(int)(Math.random()*totalBolas()+1);

Saca un número aleatorio en el rango especificado
Para más información consulta:
http://lineadecodigo.com/java/numero-aleatorio-en-java/
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 21/02/2013, 05:09
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda con ejercicio propuesto Urna

Entiendo lo del metodo constructor y que se llama a si mismo, pero no entiendo cual es la razón por la que asigna los valores (1,1).

Lo del random me ha quedado claro, gracias.
  #4 (permalink)  
Antiguo 21/02/2013, 12:29
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: Duda con ejercicio propuesto Urna

lo primero porque siendo int los atributos deben inicializarse de alguna manera.

El tema de añadirle 1,1 es irrelevante. Supongo que querría tener al menos un minimo de bolas de cada tipo para poder hacer una prueba de extracción.

Tb puedes crearlo añadiendo 0,0 y despues añadirle bolas con el método meteBola
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 22/02/2013, 03:28
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda con ejercicio propuesto Urna

Comprendo, muchas gracias por aclararme esas pequeñas dudas.

Solucionado.

Etiquetas: ejercicio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:51.