Hola
Podrían ayudarme a corregir este código.Algo anda mal. En la parte que comenté el codigo es porque está en C, pero no se como pornerlo en java dentro del JOptionPane. Y como se haría eso con un ciclo for, que creo es mas rapido?
public int demeNumero(String t) {
String num = JOptionPane.showInputDialog(t);
int n = Integer.parseInt(num);
return n;
}
public void ejercicio03() {
int mes=1;
double cantdinero,intereses=0;
cantdinero = demeNumero("Ingrese la cantidad de dinero");
while(mes<=12)
{
intereses= cantdinero *0.02;
cantdinero=cantdinero+intereses;
JOptionPane.showMessageDialog(null, " " );
//printf("En el mes %d tiene en el banco %.2f\n",mes,cantdinero);
mes++;
JOptionPane.showMessageDialog(null, " " );
//printf("\n\nDESPUES DE %d MESES-->TIENE EN EL BANCO:%f\n",mes-1,cantdinero);
}
}
public void menu() {
int opcion = demeNumero("1. Ejercicio03 \n");
//
switch (opcion) {
case 1:
ejercicio03();
menu();
break;
}
}
}
Gracias
Estimado amigo sin esfuerzo y dolor no hay recompensa si esperas que en tu vida exista alguien detrás tuyo para salvarte la vida, nunca, nunca,nunca ! evolucionarás satisfactoriamente.
Te voy a ayudar porque aquí en Underc0de somos una gran familia, pero no vivimos en LAZY TOWN ("Ciudad de gandules")
Mira el bucle for sería así
for (int mes= 1; mes <=12; mes++){
JOptionPane.showMessageDialog (null, "En el mes "+mes+" tiene en el banco %.2 \n"+mes+" cantdinero="+cantdinero, "Underc0de.org somos una Familia unida", JOptionPane.INFORMATION_MESSAGE);
}
El código que te he puesto arriba va en base a la pregunta que has dicho de traducirlo a java el código C y meterlo en un JOptionPane pero de la forma que estás enfocando el código no me gusta nada ¿De qué sirve meter en un bucle for o while e imprimir el mismo resultado en distintos meses?
Y te digo lo mismo que le digo a todo el mundo lo primero que se debe aprender es a Buscar,Leer y comprender.
Estoy de acuerdo con Hu3co, creo que te hace falta leer mas, tu programación se me hace muy confusa y creo que se puede ordenar de una mejor manera, si sabes C, se te hara mas facil comprender como funciona java.
Existe una gran diferencia entre C y Java: Programación orientada a objetos (POO u OOP por sus siglas en inglés). Dos lenguajes no se parecen si se miran desde el punto de vista semántico, si no, por su comportamiento interno.
De poco te servirá C si vas a programar en Java. En Java se usa mucho la POO por ser diseñado para tal. Si no sabes POO, aquí puedes ver un tutorial de Oracle (http://docs.oracle.com/javase/tutorial/java/concepts/).
Lo que debes de hacer es modularizar tu código y hacer un código limpio, sin importar si estás empezando o no, aunque es cierto que ésto se gana también con la experiencia.
Por ejemplo, a simple vista, trata de un préstamo, así que podemos crear una clase llamada BankLoan que represente un préstamo:
public class BankLoan {
public static final float INTEREST_RATE = 0.2f;
private int dues;
private float borrowedMoney;
public BankLoan(borrowedMoney, dues) {
this.borrowedMoney = borrowedMoney;
this.dues = dues;
}
public BankLoanReport getLoanReport() {
return new BankLoanReport(INTEREST_RATE, borrowedMoney, dues);
}
}
Ahora, para saber el reporte del simulador de préstamo (cuotas e interés), podemos crear una clase llamada BankLoanReport:
public class BankLoanReport {
private List<Float> duesAmounts;
private float totalInterest;
private float interestRate;
private float borrowedMoney;
public BankLoanReport(float interestRate, float borrowedMoney, int dues) {
this.duesAmounts = new ArrayList<>();
this.totalInteres = 0.0f;
this.interestRate = interestRate;
this.borrowedMoney = borrowedMoney;
this.dues = dues;
}
public List<Float> getDuesAmounts() {
for(int i=0; i<dues; i++) {
dues.add(borrowedMoney * interestRate);
}
return duesAmounts;
}
public float getTotalInteres() {
float temp = 0.0f;
for(float dueAmount : duesAmounts) {
temp += dueAmount;
}
totalInterest = temp * interestRate;
}
}
La clase anterior nos mostrará el reporte del préstamo. Por último, hagamos el menú:
public class System {
private final static Scanner READER;
static {
READER = new Scanner(System.in);
}
public void showMenu() {
System.out.println("¿Qué cantidad de dinero desea?");
float money = READER.nextFloat();
System.out.println("¿En cuántas cuotas?");
int dues = READER.nextInt();
return new Object[] {money, dues};
}
public void process() {
Object[] data = showMenu();
BankLoan loan = new BankLoan((Float) data[0], (Integer) data[1]);
BankLoanReport report = loan.getLoanReport();
System.out.println("[+] Cuotas a pagar");
for(float amount : report.getDuesAmounts()) {
System.out.println(amount);
}
System.out.println("[+] Interés total");
report.getTotalInterest();
}
}
Y ya tenemos el simulador de préstamos. Como ves, la POO se trata de modularizar, de delegar responsabilidades y de cumplir nos principios de desarrollo de software (DRY, SRP, etc).
No sé programar en C. Disculpen las molestias y gracias por la ayuda y consejos ;D