Autor
|
Tema: Problema Ecuaciones De Segundo Grado (Leído 12,031 veces)
|
KaRaLLo
|
Hola, tengo una dudilla con un programa para resolver un ejercicio que consiste en crear un programa que resuelva una ecuacion de segundo grado :
Al poner valores como A= 1 B= -5 C = 6 en el método getVariables obj1.getVariables(1,-5,6), el programa actúa bien y me da como soluciones 3 y 2, perfecto
El problema está que cuando pongo por ejmplo valores como (6,-5,1) debería darme como resultado x1=1/2 y x2 1/3. Pero en cambio me da x1 = 18 y 12.
Quiero decir, que algunas ecuaciones me las resuelve bien y otras no.
MainEcuacion :
package boletin8_11;
public class MainEcuacion {
public static void main(String[] args) {
Ecuacion ec1 = new Ecuacion(); ec1.getVariables(4, -6, 2);
System.out.println(ec1.getPrimeraSolucion()+"\t"+ec1.getSegundaSolucion());
}
}
Clase ecuaciones :
package boletin8_11;
public class Ecuacion {
//variables float a; float b; float c;
//constructor public Ecuacion() {
a = 0; b = 0; c = 0;
}
public void getVariables(float var1, float var2, float var3) {
a = var1; b = var2; c = var3; }
public float getPrimeraSolucion() {
float discriminante = (float) (Math.pow(b, 2) - (4 * a * c)); float temp1 = (float) Math.sqrt(discriminante);
//esta linea la operacion para la primera solucion float temp2 = -b + temp1; float primeraSolucion = temp2 / 2 * a;
if (discriminante < 0) { System.out.println("La ecuacion no tiene solucion dentro de los numeros reales"); } else if (discriminante == 0) { System.out.println("La ecuacion solo tiene una solucion"); } else if (discriminante > 0) { System.out.println("La ecacion tiene 2 soluciones"); }
return primeraSolucion; }
public float getSegundaSolucion() {
float discriminante = (float) (Math.pow(b, 2) - (4 * a * c)); float temp1 = (float) Math.sqrt(discriminante);
float temp3 = -b - temp1; float segundaSolucion = temp3 / 2 * a;
return segundaSolucion; } }
por si sirve de algo estoy con netbeans 6,9 en ubuntu
|
|
|
En línea
|
Los programadores escriben código aunque sepan que no debería funcionar, pero de todas formas lo intentan, como recompilar todo, después de eso, dios sabe porqué, funciona
|
|
|
fenomeno92
Desconectado
Mensajes: 11
|
Creo que te estas complicando mucho y poniendo mucha tonteria para hacer 4 cuentas de nada. Haciendo un codigo rapido aplicando la formula para resolver las ecuaciones public double raizReal1(double a, double b, double c) { double r1; r1= ((-b + Math.sqrt(b*b - 4*a*c))/(2*a)); if ((b*b - 4*a*c)>=0) { return r1; } else { System.out.println("esta raiz no es real"); return Double.NaN; } } ni lo e compilado ni nada, asique seguro que da algun fallo en algun lado, pero para resolver una ecuacion solo te hace falta un metodo como ese y otro igual pero con el signo cambiado (-b - Math.sqrt(b*b - 4*a*c))/(2*a)). ya se que todo el tocho de la formula se puede poner mejor y mas claro pero como e dicho lo e echo rapido y con poca gana
|
|
« Última modificación: 30 Noviembre 2011, 13:14 pm por fenomeno92 »
|
En línea
|
|
|
|
KaRaLLo
|
else { System.out.println("esta raiz no es real"); return Double.NaN; }
Me podias explicar que lo que hace " Double.NaN" ? graciñas ^^
|
|
|
En línea
|
Los programadores escriben código aunque sepan que no debería funcionar, pero de todas formas lo intentan, como recompilar todo, después de eso, dios sabe porqué, funciona
|
|
|
fenomeno92
Desconectado
Mensajes: 11
|
Cuando hay pongo el Double.NaN es porque tengo que retornar un double en el metodo(ya que asi lo puse en su declaracion) y por tanto, al no poderse calcular, porque el discriminante es negativo, el Double.NaN es un "numero" double que significa error al calcular, por ejemplo,cuando una cuenta da infinito tengo entendido que java te pone por defecto Double.NaN
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ecuaciones de segundo grado... ¿Posible?
Programación Visual Basic
|
Debci
|
6
|
10,723
|
17 Julio 2009, 02:48 am
por h0oke
|
|
|
Resolucion de ecuaciones de segundo grado y primer grado tmb :s
Java
|
Debci
|
8
|
14,258
|
8 Noviembre 2009, 12:59 pm
por Debci
|
|
|
[Python] Ecuaciones de Segundo Grado - by xassiz
Scripting
|
xassiz_
|
2
|
8,386
|
17 Febrero 2010, 23:41 pm
por xassiz_
|
|
|
[C] Ecuaciones de segundo grado
« 1 2 »
Programación C/C++
|
STANHMAL
|
10
|
7,981
|
10 Julio 2010, 04:28 am
por STANHMAL
|
|
|
Pequeño problema al hacer un programa de ecuaciones de segundo grado
« 1 2 »
Programación C/C++
|
DickGumshoe
|
10
|
17,257
|
8 Noviembre 2011, 22:47 pm
por DickGumshoe
|
|