Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Run.EXE en 18 Agosto 2012, 20:20 pm



Título: [?] Código no tira resultados correctos
Publicado por: Run.EXE en 18 Agosto 2012, 20:20 pm
Estimados, resulta que estoy aprendiendo a usar JOptionPane, junto con switch y otras cositas. Bueno, estuve haciendo un programa para calcular operaciones básicas de geometría, pero a pesar de que no logro visualizar error alguno, no me arroja resultados correctos para cada dato.  Acá dejo el código para que lo vean (ojo, no está terminado un caso, pero están las operaciones que corresponden y las que sin embargo no me dan los resultados correspondientes:

[spoiler]
Código:
package geometriabasica;
import javax.swing.*;
import java.awt.*;
import java.lang.Math.*;
/**
 * @author Run.EXE
 */
public class GeometriaBasica {
    public static void main(String[] args) {
        int a;
        String opcion;
        opcion = JOptionPane.showInputDialog("Ingrese figura a calcular:\n"+"1-Rectángulo\n"+"2-Círculo\n"+"0-Salir");
        a=Integer.parseInt(opcion);
        switch(a){
           
            case(1):{
               
                String x;
                int c;
                x = JOptionPane.showInputDialog("Ingrese dato a calcular:\n"+"1-Perímetro\n"+"2-Área");
                c = Integer.parseInt(x);
                    switch(c){
                       
                        case(1):{
                            JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
                            double largo;
                            largo=Double.parseDouble(x);
                            JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");
                            double ancho;
                            ancho = Double.parseDouble(x);
                            double perimetro;
                            perimetro=(largo*2)+(ancho*2);
                            JOptionPane.showMessageDialog(null, "El perimetro del rectángulo es: " +perimetro);
                        }break;
                        case(2):{
                           
                            JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
                            double largo;
                            largo=Double.parseDouble(x);
                            JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");
                            double ancho;
                            ancho = Double.parseDouble(x);
                           
                            double area;
                            area = largo*ancho;
                            JOptionPane.showMessageDialog(null, "El área del rectángulo es: "+area);
                        }break;
                    }
                   
            }break;
               
               
            case(2):{
               
                String x;
                int c;
                x=JOptionPane.showInputDialog("Ingrese dato a calcular\n"+"1-Perimetro\n"+"2-Area");
                c=Integer.parseInt(x);
                    switch(c){
                        case(1):{
                            double radio;
                            JOptionPane.showInputDialog("Ingrese radio: ");
                            radio=Double.parseDouble(x);
                            double PI;
                            PI = 3.1415;
                            double perimetro;
                            perimetro = 2*PI*radio;
                            JOptionPane.showMessageDialog(null, "El perimetro de la figura es: " +perimetro);
                        }break;
                        case(2):{
                            double radio;
                            JOptionPane.showInputDialog("Ingrese radio: ");
                            radio=Double.parseDouble(x);
                            double PI = 3.1415;
                            double area = PI*radio*radio;
                            JOptionPane.showMessageDialog(null, "El area de la figura es: " +radio);
                        }break;
                        default: JOptionPane.showMessageDialog(null, "Ingrese una opcion válida");
                    }
               
               
            }break;
               
               
            case(0):{
               
            }break;
            default: JOptionPane.showMessageDialog(null, "Ingrese una opcion válida");
        }
       
    }
}
[/spoiler]

Muchas gracias de antemano a quién me pueda ayudar :3


Título: Re: [?] Código no tira resultados correctos
Publicado por: horny3 en 19 Agosto 2012, 04:02 am
Hola

Tu error esta en "x", por eso sales 100pre el valor de "4.00"
Código
  1.  
  2. String opcion;
  3.        opcion = JOptionPane.showInputDialog("Ingrese figura a calcular:\n"+"1-Rectángulo\n"+"2-Círculo\n"+"0-Salir");
  4.        a=Integer.parseInt(opcion);
  5.        switch(a){
  6.  
  7.            case(1):{
  8.  
  9.                String x; //declaras la variable
  10.                int c;
  11.                x = JOptionPane.showInputDialog("Ingrese dato a calcular:\n"+"1-Perímetro\n"+"2-Área"); //la parte \n"+"1 sta de mas puede ser \n 1-Perimetro
  12.                c = Integer.parseInt(x); // le das a c el valor de x=1 (ejemplo)
  13.                    switch(c){
  14.  
  15.                        case(1):{
  16.                            JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
  17.                            double largo;
  18.                            largo=Double.parseDouble(x);//x sigue valiendo 1, no recepcionas el valor del joption :D
  19.                            JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");
  20.                            double ancho;
  21.                            ancho = Double.parseDouble(x); // x sigue valiendo 1, no recepcionas el valor del joption :D
  22.                            double perimetro;
  23.                            perimetro=(largo*2)+(ancho*2); // 1*2+1*2 --> usas x
  24.                            JOptionPane.showMessageDialog(null, "El perimetro del rectángulo es: " +perimetro);
  25.                        }break;
  26.  

Te paso la solucion

Código
  1. int a;
  2.        String opcion;
  3.        opcion = JOptionPane.showInputDialog("Ingrese figura a calcular: \n 1-Rectángulo \n 2-Círculo\n 0-Salir");
  4.        a=Integer.parseInt(opcion);
  5.        switch(a)
  6.        {
  7.  
  8.            case(1):
  9.            {
  10.                String x;
  11.                int c;
  12.                x = JOptionPane.showInputDialog("Ingrese dato a calcular: \n 1-Perímetro \n 2-Área");
  13.                c = Integer.parseInt(x);
  14.                    switch(c)
  15.                    {
  16.  
  17.                        case 1:
  18.                            String largo,ancho;
  19.                            double perimetro;
  20.                            largo=JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
  21.                            ancho= JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");                            
  22.                            perimetro=2*Double.valueOf(largo)+2*Double.valueOf(ancho);
  23.                            JOptionPane.showMessageDialog(null, "El perimetro del rectángulo es: " +perimetro);
  24.  
  25.                        break;
  26.                        case 2:
  27.                            largo=JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
  28.                            ancho=JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");
  29.                            double area;
  30.                            area = Double.valueOf(largo)*Double.valueOf(ancho);
  31.                            JOptionPane.showMessageDialog(null, "El área del rectángulo es: "+area);
  32.  
  33.                        break;
  34.                    }
  35.  
  36.            }break;
  37.  

Salu2


Título: Re: [?] Código no tira resultados correctos
Publicado por: Run.EXE en 19 Agosto 2012, 22:56 pm
Muchas gracias por responder, creo que debo practicar más el ingreso de datos con el JOptionPane :3


Título: [?] Código no tira resultados correctos
Publicado por: Debci en 20 Agosto 2012, 20:38 pm
El mensaje '[?] Código no tira resultados correctos (http://foro.elhacker.net/index.php?topic=369345)' fue bloqueado
Caso cerrado
Leer reglas:
http://foro.elhacker.net/reglas