elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [?] Código no tira resultados correctos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [?] Código no tira resultados correctos  (Leído 2,542 veces)
Run.EXE

Desconectado Desconectado

Mensajes: 8



Ver Perfil WWW
[?] Código no tira resultados correctos
« 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


En línea

horny3

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: [?] Código no tira resultados correctos
« Respuesta #1 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


En línea

Observo, analizo y callo mientras me voy decepcionando en silencio.
Run.EXE

Desconectado Desconectado

Mensajes: 8



Ver Perfil WWW
Re: [?] Código no tira resultados correctos
« Respuesta #2 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
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
[?] Código no tira resultados correctos
« Respuesta #3 en: 20 Agosto 2012, 20:38 pm »

El mensaje '[?] Código no tira resultados correctos' fue bloqueado
Caso cerrado
Leer reglas:
http://foro.elhacker.net/reglas
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
El Windows LIVE ID que has escrito o la contraseña no son correctos? GTA 4
Juegos y Consolas
Attaque77 2 6,210 Último mensaje 5 Diciembre 2010, 16:24 pm
por Attaque77
codigo java no tira
Java
Pirat3net 2 2,179 Último mensaje 6 Diciembre 2011, 23:26 pm
por KaL3o
Qué resultados obtienes al ejecutar este código?
Dudas Generales
@XSStringManolo 9 3,676 Último mensaje 4 Octubre 2019, 19:11 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines