DeNunCianDo

DeNunCianDo (https://www.denunciando.com/)
-   Programacion (https://www.denunciando.com/programacion-115/)
-   -   Pequeño Problema [Java] (https://www.denunciando.com/programacion-115/200201-pequeno-problema-java.html)

Juan Topo 04-03-2010 09:58:35

Pequeño Problema [Java]
 
Bueno, otra vez yo molestando, prefiero ser canson y pregunton y no callado y quedarme con las dudas.

En clase aun no nos han enseñado los condicionales [if....else], pero yo me puse a leer y a cacharrear.

El primer programa me dio, pero el segundo no. Miren el codigo

Código PHP:

import javax.swing.JOptionPane;

public class 
AreaTriangulo {

    public static 
void main(String[] args) {
        
Double AlturaBaseArea;
            
        
Base=Double.parseDouble(JOptionPane.showInputDialog("Digite La Base Del Triangulo"));
        
Altura=Double.parseDouble(JOptionPane.showInputDialog("Digite La Altura Del Triangulo"));
        
 
                   
        
Area=(Base*Altura)/2;
            
        
JOptionPane.showMessageDialog(null,"El Area Del Triangulo Es: \n\t"+Area);
        
               if (
Base==Altura) {            
                  
JOptionPane.showMessageDialog(null," La Base Y La Altura Son Iguales \n\t");            
               } else if (
Base>Altura) {
             
JOptionPane.showMessageDialog(null," Base Es Mayor Que Altura En Longitud \n\t");
            } else {
            
JOptionPane.showMessageDialog(null," Altura Es Mayor Que Base En Longitud \n\t");
            }                    
           
    }


El problema del programa es que al ejecutarlo y poner un valor igual a base y altura me toma el else y me dice que Altura Es Mayor Que Base En Longitud. No he podido saber como organizarlo, no me toma el (Base==Altura) y ya he puesto ese pedazo por todos lados.

Si alguien me pudiera ayudar se le agradeceria

[Joe Black] 04-03-2010 11:18:58

Respuesta: Pequeño Problema [Java]
 
Listo documentandome encontre la diferencia, cuando tu usas == lo que estas haciendo es mirando si dos objetos son los mismos, en tu caso tienes dos objetos diferentes de la misma clase, osea Double, estos objetos toman el mismo valor pero en si son diferentes. Para saber si dos objetos diferentes toman el mismo valor debes usar lo siguiente.....

if(Base.equals(Altura)){

}


Cambiando esa sentencia ya funciona el ejemplo parcero.....

Juan Topo 04-03-2010 11:46:24

Respuesta: Pequeño Problema [Java]
 
Ya habia solucionado el problema, pero igual queria leer la opinion tuya.

Lo que hice fue cambiar las condiciones mire:

Código PHP:

               if (Base>Altura) {            
                  
JOptionPane.showMessageDialog(null," La Base Es Mayor Que Altura En Longitud \n\t");          
               } else if (
Base==Altura) {
             
JOptionPane.showMessageDialog(null," La Altura Es Mayor Que La Base En Longitud \n\t");
            } else {
            
JOptionPane.showMessageDialog(null," La Base Y La Altura Son Iguales \n\t");
            } 

Aunque la tuya tambien funciono y me gusta mas :D, ya que la que yo mismo arregle no entiendo, porque pongo "else if (Base==ALtura) y la primera impresion es Altura>Base y el ELSE es la igualdad :S eso pa mi no tiene logica.

Muchas gracias por tu gran ayuda en 2 veces.

Si algo seguire molestando, como dije "prefiero ser canson y pregunton y no callado y quedarme con las dudas."

Juan Topo 04-03-2010 12:01:21

Respuesta: Pequeño Problema [Java]
 
Perdon por el doble post.

Un man me hizo caer en cuenta, que cuando yo defino la variabel como "Double" estoy es definiendo un objeto y no la variable; cambie a double pa definir y como yo tenia el codigo principal me funciono =P, guevete yo.

Parce igual ya me distes un poco mas de conocimiento con el equals

[Joe Black] 04-03-2010 13:38:04

Respuesta: Pequeño Problema [Java]
 
Si es lo que te dije en el post anterior el == compara si dos objetos son iguales....como definiste Double tenes dos objetos diferentes pero con el mismo valor....el equals lo que hace es comparar si dos objetos distintos tienen asignado el mismo valor.......esto es lo bonito de la programacion orientada a objetos.....al principio es dificil entenderlo pero ya despues le coges el tiro....fresco que todos pasamos por eso.....

Juan Topo 04-03-2010 21:37:16

Respuesta: Pequeño Problema [Java]
 
Hahahaha, no lo decia tanto por eso, es que no son objetos, son variables xD.

Severa gueva yo. Yo pesbana que double y Double servian para lo mismo a la hora de definir variables :P.

EDIT: Tengo otro problemita. En un codigo se hace una division, pero solo me sale la parte entera ejemplo: 5/2= 2.0 :S, Sensei Joe Black, iluminame

[Joe Black] 05-03-2010 07:31:04

Respuesta: Pequeño Problema [Java]
 
busca sobre DecimalFormat en java.....eso te puede ayudar....

Juan Topo 05-03-2010 09:53:57

Respuesta: Pequeño Problema [Java]
 
Ok lo buscare, pero ya sera despues de que llegue de la Universidad

[Joe Black] 05-03-2010 14:56:54

Respuesta: Pequeño Problema [Java]
 
Aqui esta la informacion oficial del api de Java sobre esta clase

http://java.sun.com/j2se/1.4.2/docs/...malFormat.html

Juan Topo 05-03-2010 22:38:15

Respuesta: Pequeño Problema [Java]
 
Joe Black muchas gracias por esa info, ayuda mucho =].

Ahora tengo un problema con la potencia.

Lo que pasa es que en el algoritmo nos piden el:

Cuadrado de un numero entero, el doble, la mitad y el porcentaje.

El cuadrado hasta donde he buscado es con la funcion Math.por(Base, exponente)

Al poner como base la variable NumEnt no me da y sale el siguiente error.

found : double
required: int
Cuadrado=Math.pow(NumEnt,2);
^
1 error

Aca les dejo el codigo

Código PHP:

import javax.swing.JOptionPane;

public class 
Problemas {
    
    public static 
void main(String[] args) {
            
            
int NumEntCuadradoDoble ;
            
double MitadPorcentaje;
           
           
               
NumEnt=Integer.parseInt(JOptionPane.showInputDialog("Digite Numero Entero :"));
               
               
Cuadrado=Math.pow(NumEnt,2);
               
Doble=(NumEnt*2);
               
Mitad=(NumEnt/2);
               
Porcentaje=(NumEnt*0.3);
               
               
System.out.print("El Cuadrado del numero entero es: "+Cuadrado+", El Doble del numero entero es: "+Doble+", La Mitad del numero entero es: "+Mitad" Y su porcentaje es: "+Porcentaje);    

   
    }


Uds saben que si me ayudan se llevan su repu asi tengan 23987329874932 de repu :P


La franja horaria es GMT -5. Ahora son las 12:13:13.

Desarrollado por: vBulletin® Versión 3.8.9
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.

DeNunCianDo.CoM ©

Page generated in 0,02146 seconds with 8 queries

SEO by vBSEO