PDA

Ver la Versión Completa Con Imagenes : Pequeño Problema [Java]


Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
Juan Topo
04-03-2010, 09:58:35
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

import javax.swing.JOptionPane;

public class AreaTriangulo {

public static void main(String[] args) {
Double Altura, Base, Area;

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

Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
[Joe Black]
04-03-2010, 11:18:58
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
Ya habia solucionado el problema, pero igual queria leer la opinion tuya.

Lo que hice fue cambiar las condiciones mire:

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
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
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
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
busca sobre DecimalFormat en java.....eso te puede ayudar....

Juan Topo
05-03-2010, 09:53:57
Ok lo buscare, pero ya sera despues de que llegue de la Universidad

[Joe Black]
05-03-2010, 14:56:54
Aqui esta la informacion oficial del api de Java sobre esta clase

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

Juan Topo
05-03-2010, 22:38:15
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

import javax.swing.JOptionPane;

public class Problemas {

public static void main(String[] args) {

int NumEnt, Cuadrado, Doble ;
double Mitad, Porcentaje;


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

[Joe Black]
06-03-2010, 07:47:01
definiste la variable cuadrado de tipo int y la funcion Math.pow te retorna un double, simplemente asigna la variable cuadrado como un double.....este tipo de errores los puedes ir viendo mirando cuando llames a una funcion que tipo de dato te devuelve, asi sabes que asignación de tipo debes hacer a la variable....

Juan Topo
11-03-2010, 20:05:56
Severo problema el que me pusieron, hasta un parcero lo dejo cabezon. xD mirenlo

5. Averiguar si un número es par o impar (NO UTILIZAR LA FUNCION MOD)

Mero guiro cucho, nito eso =P, se les agradece a los que ayuden

☠Xavi Camorra☠
12-03-2010, 09:38:52
LOL eso esta muy facil, divida el numero por 2 guardelo en una variable de tipo Float o BigDecimal, verifique si el residuo decimal es 0 en ese caso el numero es par si no es impar. Salu2

Juan Topo
12-03-2010, 09:57:27
Eso esta pensando yo =D, si el resultado es decimal es impar, si no par ♥

[Joe Black]
12-03-2010, 10:40:29
Con esta formula

http://www.latecladeescape.com/w0/images/stories/algoritmos/funcpar.png


Si p es = 1 entonces es par, si p es = -1 entonces es impar



Esta formula tambien funciona

Si n es par entonces (N/2) * 2 = N

Juan Topo
12-03-2010, 10:46:16
Joe Black como siempre muchas gracias.

Repu pa los dos

☠Xavi Camorra☠
12-03-2010, 11:43:58
Todo bn parcero cuando necesites algo, se le puede colaborar solo es q envie msg

ARICARRARO
02-12-2010, 23:14:10
Buen ejemplo. Que bueno que encontraste la solución por tu cuenta.