Autor
|
Tema: Tengo un problema con eclipse (Leído 4,184 veces)
|
JackFiresoul
Desconectado
Mensajes: 4
|
bueno tngo un problema con la ejecucion de un programa que he echo y no consigo solucionarlo. Si alguien me puede ayudar se lo agradeceria mucho, llevo como una semana pensando en esto y no hay manera (tambien es cierto que llevo usando eclipse solo unas 2 semanas y que antes no he tocado programacion para nada). Bueno aqui esta el codigo del programa:
/*Realizar un programa, que proporcionando una cantidad de euros, te diga cual es la menor cantidad de billetes y monedas que se debe usar para cubrir dicha cantidad de euros*/ public class ejercicio_1 {
public static void main(String[] args) { double x = 888.88/*cantidad de euros proporcionada*/, z, e, c; z= x-(int)x; e = (int) x; c = z * 100; int a1, a2, b1, b2, c1, c2, d1, d2, e1, e2, f1, f2, g1, g2, h1, h2, i1; a1 = (int) e / 500; a2 = (int) e % 500; b1 = a2 / 200; b2 = a2 % 200; c1 = b2 / 100; c2 = b2 % 100; d1 = c2 / 50; d2 = c2 % 50; e1 = d2 / 20; e2 = d2 % 20; f1 = e2 / 10; f2 = e2 % 10; g1 = f2 / 5; g2 = f2 % 5; h1 = g2 / 2; h2 = g2 % 2; i1 = h2 / 1; //billetes y monedas de euro
int j1, j2, k1, k2, l1, l2, m1, m2, n1, n2, ñ; j1 = (int) c / 50; j2 = (int) c % 50; k1 = j2 / 20; k2 = j2 % 20; l1 = k2 / 10; l2 = k2 % 10; m1 = l2 / 5; m2 = l2 % 5; n1 = m2 / 2; n2 = m2 % 2; ñ = n2 / 1; //centimos
System.out.println("en " + x + " euros hay:"); System.out.println(a1 + " billetes de 500€"); System.out.println(b1 + " billetes de 200€"); System.out.println(c1 + " billetes de 100€"); System.out.println(d1 + " billetes de 50€"); System.out.println(e1 + " billetes de 20€"); System.out.println(f1 + " billetes de 10€"); System.out.println(g1 + " billetes de 5€"); System.out.println(h1 + " monedas de 2€"); System.out.println(i1 + " monedas de 1€"); System.out.println(j1 + " monedas de 50 cent"); System.out.println(k1 + " monedas de 20 cent"); System.out.println(l1 + " monedas de 10 cent"); System.out.println(m1 + " monedas de 5 cent"); System.out.println(n1 + " monedas de 2 cent"); System.out.println("y " +ñ +" monedas de 1 cent"); }
}
y aqui esta el resultado:
en 888.88 euros hay: 1 billetes de 500€ 1 billetes de 200€ 1 billetes de 100€ 1 billetes de 50€ 1 billetes de 20€ 1 billetes de 10€ 1 billetes de 5€ 1 monedas de 2€ 1 monedas de 1€ 1 monedas de 50 cent 1 monedas de 20 cent 1 monedas de 10 cent 1 monedas de 5 cent 1 monedas de 2 cent y 0 monedas de 1 cent
como veis me quita un centimo, pero eso solo pasa con algunas cifras, por ejemplo, con 888,70, me lo da bien, y me gustaria solucionar el problema, por favor ayudarme o me volvere loco.
Pd: creo que el problema esta en el redondeo de decimales, que no lo haga bien tras la separacion de la parte entera y la decimal.
Muchas gracias por adelantado
|
|
|
En línea
|
|
|
|
JackFiresoul
Desconectado
Mensajes: 4
|
una cosa, acabo de leer unos temas y me he dado cuenta que, no he puesto de mi parte al poner, por ejemplo "a1" en vez de "quinientos" en el "int" y en el resto de las cosas, y tambien siento no haber enmarcado los codigos y los resultados, pero es que no se como hacerlo y tampoco se como hacer que dandole por ejemplo pestaña (codigo) aparezca el codigo, (para asi reducir el tamaño del mensaje).
|
|
|
En línea
|
|
|
|
markosliveup
Desconectado
Mensajes: 25
|
estoy tan aburrido que me puse a verlo jaja
mira el problema creo (pobre un solo numero) es que en la parte en que asignas el valor a n1, m2 vale 2. Entonces en la asinacion de n2 cuando calcula el resto da 0. tendrias que dividir..
|
|
|
En línea
|
|
|
|
JackFiresoul
Desconectado
Mensajes: 4
|
El caso es que me da el mismo problema si pongo,por ejemplo: x=#.80
(Pongo # porque la parte euro no me da errores sin importar la cifra)
En el caso de #.80, me pone una de 50 cent, una de 20 cent, (se salta la de 10 cent) y me pone una de 5 cent y 2 de 2 cent En total 79 cent en vez de 80, y hay el resto no llega a ser igual a 2, y de todos modos m2 en el caso anterior valia 3, el resto de 8/5 es 3 o al menos eso deberia dar si hacemos todas las cuentas a mano, con esas mismas variables, asi que creo que el problema esta en z=x-(int)x, que no da los decimales que aparecen sino por ejemplo, 0.87999999955, en ese caso la variable c es 87 en vez de 88 como deberia ser y hay esta la raiz del problema, creo, pero el caso es que no se como solucionarlo si me podeis ayudar a solucionarlo estaria eternamente
agradecido con el que me haya ayudado
de todas formas muchas gracias por el intento XD
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 195
|
Bueno aqui te dejo un codigo que hice hace tiempo para esto, llamado morraya o asi le decimos aca jeje public class MORRAYA { public static void main (String[] args ) { String nombre = read. data("Empleado:"); int pago = read.dataInt("Total a Pagar:"); imprimir(nombre,pago,m); } private static String[] morraya0 (int pago ) { int[] c = {1000,500,200,100,50,20,10,5,2,1}; int resto = 0; for(int d=0;d<c.length;d++) { resto = (int)pago/c[d]; m[d] = resto + " Billetes de $" + c[d] + ".00"; pago = pago-(resto*c[d]); } return m; } private static void imprimir (String nombre, int pago, String[] m ) { System. out. println("PARA PAGARLE A " + nombre + " $" + pago + " SE NECESITA:"); } }
Espero te sirva si aun no logras darte de una idea de como adaptarlo a tu codigo ahi avisas y te hecho una mano n_n Saludos! P.D. En mi codigo puse que todos son billetes, aunque claro no hay billetes de 10,5,2,1 xD ahi solo hacemos una comprobacion antes de agregar el mensaje al vector jeej y ya ponemos moneda en vez de billetes xD
|
|
« Última modificación: 2 Octubre 2011, 04:28 am por s00rk »
|
En línea
|
|
|
|
JackFiresoul
Desconectado
Mensajes: 4
|
muchas gracias, s00rk no se si el codigo me funcionara, pues antes de mirar el foro de nuevo se me ha ocurrido una forma usando las pocas herramientas que aunque seguramente mi codigo sea mucho mas largo que el tuyo XD bueno aqui esta ( he cambiado las variables para que sean mas facieles de entender XD): /*Realizar un programa, que proporcionando una cantidad de euros, te diga cual es la menor cantidad de billetes y monedas que se debe usar para cubrir dicha cantidad de euros*/
public class ejercicio_1 { public static void main(String[] args) { double x = 888.88, z, e, c; z= x-(int)x; e = (int) x; c = z * 100; int quinientos1, quinientos2, doscientos1, doscientos2, cien1, cien2, cincuenta1, cincuenta2, veinte1, veinte2, diez1, diez2, cinco1, cinco2, dos1, dos2, uno1; quinientos1 = (int) e / 500; quinientos2 = (int) e % 500; doscientos1 = quinientos2 / 200; doscientos2 = quinientos2 % 200; cien1 = doscientos2 / 100; cien2 = doscientos2 % 100; cincuenta1 = cien2 / 50; cincuenta2 = cien2 % 50; veinte1 = cincuenta2 / 20; veinte2 = cincuenta2 % 20; diez1 = veinte2 / 10; diez2 = veinte2 % 10; cinco1 = diez2 / 5; cinco2 = diez2 % 5; dos1 = cinco2 / 2; dos2 = cinco2 % 2; uno1 = dos2 / 1; int cincuenta3, cincuenta4, veinte3, veinte4, diez3, diez4, cinco3, cinco4, dos3, dos4, uno2; cincuenta3 = (int) c / 50; cincuenta4 = (int) c % 50; veinte3 = cincuenta4 / 20; veinte4 = cincuenta4 % 20; diez3 = veinte4 / 10; diez4 = veinte4 % 10; cinco3 = diez4 / 5; cinco4 = diez4 % 5; dos3 = cinco4 / 2; dos4 = cinco4 % 2; uno2= dos4/ 1; System.out.println("en " + x + " euros hay:"); double j3,k3,l3,m3,n3,ñ2, ñ1; j3=cincuenta3;k3=veinte3;l3=diez3;m3=cinco3;n3=dos3;ñ2=uno2; ñ1=((j3*50)+(k3*20)+(l3*10)+(m3*5)+(n3*2)+(ñ2*1))/100; if ((ñ1+e)<x){ x=x+0.01; z= x-(int)x; c = z * 100; cincuenta3 = (int) c / 50; cincuenta4 = (int) c % 50; veinte3 = cincuenta4 / 20; veinte4 = cincuenta4 % 20; diez3 = veinte4 / 10; diez4 = veinte4 % 10; cinco3 = diez4 / 5; cinco4 = diez4 % 5; dos3 = cinco4 / 2; dos4 = cinco4 % 2; uno2 = dos4 / 1; } else{} System.out.println(quinientos1 + " billetes de 500€"); System.out.println(doscientos1 + " billetes de 200€"); System.out.println(cien1 + " billetes de 100€"); System.out.println(cincuenta1 + " billetes de 50€"); System.out.println(veinte1 + " billetes de 20€"); System.out.println(diez1 + " billetes de 10€"); System.out.println(cinco1 + " billetes de 5€"); System.out.println(dos1 + " monedas de 2€"); System.out.println(uno1 + " monedas de 1€"); System.out.println(cincuenta3 + " monedas de 50 cent"); System.out.println(veinte3 + " monedas de 20 cent"); System.out.println(diez3 + " monedas de 10 cent"); System.out.println(cinco3 + " monedas de 5 cent"); System.out.println(dos3 + " monedas de 2 cent"); System.out.println("y " +uno2+" monedas de 1 cent"); }
}
el resultado de esta forma ya me da bien, he posteado para agradecer la ayuda y para proporcionar alguna ayuda a algun novato como yo que no entienda para que sirven la mitad de las cosas XD
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema: Eclipse y Gráficos
Programación C/C++
|
tanisdlj
|
0
|
1,779
|
5 Mayo 2010, 13:40 pm
por tanisdlj
|
|
|
Problema sencillo en eclipse
Java
|
usernovell
|
2
|
2,171
|
15 Marzo 2013, 17:27 pm
por 1mpuls0
|
|
|
[C++] Problema con bucle en Eclipse
Programación C/C++
|
HijoDePuta
|
4
|
3,018
|
9 Agosto 2013, 20:14 pm
por HijoDePuta
|
|
|
Problema Eclipse
Java
|
Tronos154
|
8
|
4,042
|
30 Enero 2014, 17:26 pm
por ~ Yoya ~
|
|
|
Problema con eclipse c/c++
Programación C/C++
|
zaphiel
|
7
|
6,981
|
4 Diciembre 2014, 17:13 pm
por Eternal Idol
|
|