Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fcpena en 16 Abril 2016, 23:49 pm



Título: NeuN textbox de respuesta// formula cuadratica
Publicado por: fcpena en 16 Abril 2016, 23:49 pm
Hola!! al parecer hay un error en mi codigo y no se cual es. trato de calcular formula cuadratica y al apachar mi boton de calcular en los textbox de respuesta aparece NeuN alguien que me ayude con esto porfavor. :P :P


       Double a, b, c, x, x1;
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
   a = Convert::ToDouble(textBox1->Text);
   b = Convert::ToDouble(textBox2->Text);
   c = Convert::ToDouble(textBox3->Text);
   x= -b + sqrt(b*b-4*a*c)/2*a;
   x1= -b - sqrt(b*b - 4 * a*c) / 2 * a;
   textBox4->Text = Convert::ToString(x);
   textBox5->Text = Convert::ToString(x1);


Título: Re: NeuN textbox de respuesta// formula cuadratica
Publicado por: HardForo en 17 Abril 2016, 00:33 am
Si a =0 tendras division por cero y un NaN ("not a number")

Digamos el caso de  5x -7  (no hay un X^2 en tu ecuacion) lo puedes despejar directamente:

5x - 7 = 0
5x = 7
x =  7/5 

O sea...  x = -c / b   (unica solucion)


Título: Re: NeuN textbox de respuesta// formula cuadratica
Publicado por: ivancea96 en 17 Abril 2016, 00:55 am
Esa operación está mal planteada. Tienes que poner paréntesis.
Actualmente tienes esto:
Código:
-b +        (   (sqrt(b*b-4*a*c) / 2)    *a)

Y quieres lograr esto:
Código:
(-b + sqrt(b*b-4*a*c) ) / (2*a)

Ahora hay 2 problemas: no hay raiz cuadrada de números negativos, que ha de ser el problema que tenías, y no se divide entre 0.

Así que:
-Si a y b son 0, error.
-Si a es 0 y b no, como dijo boctulus: -c/b
-Si b es 0 y a no: sqrt(-c/a), comprobando que -c/a sea positivo o cero.
-Si a y b son distintos de 0, la fórmula, salvo que b*b-4*a*c sea negativo, en tal caso error.