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

Problema de las Jarras No se hacerlo

Estas en el tema de Problema de las Jarras No se hacerlo en el foro de Java en Foros del Web. El objetivo de este ejercicio es crear una clase Jarra que utilizaremos para “simular” algunas de las acciones que podemos realizar con una jarra. Nuestras ...
  #1 (permalink)  
Antiguo 08/03/2012, 03:06
 
Fecha de Ingreso: octubre-2011
Mensajes: 15
Antigüedad: 12 años, 6 meses
Puntos: 1
Problema de las Jarras No se hacerlo

El objetivo de este ejercicio es crear una clase Jarra que utilizaremos para “simular” algunas de las acciones que podemos realizar con una jarra.

Nuestras jarras van a poder contener cierta cantidad de agua. Así, cada jarra tiene una determinada capacidad (en litros) que será la misma durante la vida de la jarra (dada en el constructor).

En un momento determinado una jarra dispondrá de una cantidad de agua que podrá variar en el tiempo. Las acciones que podremos realizar sobre una jarra son:
- Llenar la jarra por completo desde un grifo;
- Vaciarla enteramente y,
- Llenarla con el agua que contiene otra jarra (bien hasta que la jarra receptora quede colmada o hasta que la jarra que volcamos se vacíe por completo).

Por ejemplo: Disponemos de dos jarras A y B de capacidades 7 y 4 litros respectivamente.

Podemos llenar la jarra A (no podemos echar menos del total de la jarra porque no sabríamos a ciencia cierta cuanta agua tendría). Luego volcar A sobre B (no cabe todo por lo que en A quedan 3 litros y B está llena).

Ahora vaciar B. Después volver a volcar A sobre B. En esta situación, A está vacía y B tiene 3 litros.

Hay que construir la clase Jarra con los métodos necesarios para realizar las operaciones que acabamos de describir. Además de dichas operaciones necesitamos métodos para consultar tanto la cantidad de agua que tiene una jarra como su capacidad. Definir el método toString() que devuelva un String que
represente los datos de la jarra.

Para probar nuestra nueva clase vamos a construir una aplicación que cree dos jarras, una con capacidad para 5 litros y otra para 7. Una vez creadas hemos de realizar las operaciones necesarias para dejar en una de las jarras exactamente un litro de agua.


El problema es que soy novato en esto y me mandan el primer día de prácticas este ejercicio.
Muchas gracias
  #2 (permalink)  
Antiguo 11/03/2012, 02:01
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Problema de las Jarras No se hacerlo

Bueno pues después de durar como 3 horas dándole a este problema

pude hacerlo... pero sin metodos ya despues tu los puedes arreglar...

cree dos textfield para la captura de datos y un boton para colocarle esos valores a unas variables.. capacidad_a y capacidad_b

las variables que use son:

//A
int capacidad_a = 0;
int nivelagua_a = 0;
int nivelaguadesde_a = 0;
int cantidad_a = 0;

//B
int capacidad_b = 0;
int nivelagua_b = 0;
int nivelaguadesde_b = 0;
int cantidad_b = 0;
//TextArea---Resultado
String dato = "";

hice un boton por cada accion Llenar A, Vaciar A, Pasar a B, Llenar B, Vaciar B, Pasar a A,
y dentro de cada boton coloque lo correspondiente

//llenar A
cantidad_a = capacidad_a;
nivelagua_a = cantidad_a;

//vaciarA
cantidad_a = 0;
nivelagua_a = 0;

//pasaraB
if(nivelagua_b==0)
{
if(capacidad_a<capacidad_b)
nivelaguadesde_a = nivelagua_a;
if(capacidad_a>capacidad_b)
nivelaguadesde_a = capacidad_b;
}
if(nivelagua_b>0)
nivelaguadesde_a = capacidad_b-nivelagua_b;
nivelagua_b = nivelagua_b + nivelaguadesde_a;
cantidad_b = nivelagua_b;
nivelagua_a = nivelagua_a - nivelaguadesde_a;
cantidad_a = nivelagua_a;

para B lo mismo solo tener cuidado con cambiar la respectiva letra

//llenarB
cantidad_b = capacidad_b;
nivelagua_b = cantidad_b;

//vaciarB
cantidad_b = 0;
nivelagua_b = 0;

//pasaraA
if(nivelagua_a==0)
{
if(capacidad_b<capacidad_a)
nivelaguadesde_b = nivelagua_b;
if(capacidad_b>capacidad_a)
nivelaguadesde_b = capacidad_a;
}
if(nivelagua_a>0)
nivelaguadesde_b = capacidad_a-nivelagua_a;
nivelagua_a = nivelagua_a + nivelaguadesde_b;
cantidad_a = nivelagua_a;
nivelagua_b = nivelagua_b - nivelaguadesde_b;
cantidad_b = nivelagua_b;

probe colocando los valores A 5 B 7 (llenando a B) y A7 B5 (llenando a A) mm se supone que es usando el de menor capacidad

el resultado lo iba mostrando en un textarea asi:

A: 0 B: 5 A: 5 B: 0 A: 5 B: 5 A: 7 B: 3 A: 0 B: 3 A: 3 B: 0 A: 3 B: 5 A: 7 B: 1

en cada boton puse
dato = jta_proc.getText();
jta_proc.setText(" "+dato+" A: "+cantidad_a+" B: "+cantidad_b+" ");


y claro una funcion limpiar llamada desde un boton para probar el programita con otros datos

jTextField1.setText("");
jTextField2.setText("");
jta_proc.setText("");
//A
capacidad_a = 0;
nivelagua_a = 0;
nivelaguadesde_a = 0;
cantidad_a = 0;
//B
capacidad_b = 0;
nivelagua_b = 0;
nivelaguadesde_b = 0;
cantidad_b = 0;


de todos modos funciona.. es algo que puede ser sencillo para unos jejej pero no se atrevieron a hacerlo.. si puedes quitar cosas que sobren te agradezco... entre cosas de sueño-- creo que lo explique bien... son las 3am-- luego me conecto a despejar dudas...

Etiquetas: clase, hacerlo, jar, string
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:34.