Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Resolver ecuacion

Estas en el tema de Resolver ecuacion en el foro de C/C++ en Foros del Web. Hola, Tengo que hacer una practica en C para resolver esta ecuacion: ax^2+bx+c, se que se resuelve asi x = (-b +/- sqr(b^2 - 4ac)) ...
  #1 (permalink)  
Antiguo 28/02/2007, 03:49
 
Fecha de Ingreso: noviembre-2006
Mensajes: 46
Antigüedad: 17 años, 5 meses
Puntos: 0
Resolver ecuacion

Hola,

Tengo que hacer una practica en C para resolver esta ecuacion: ax^2+bx+c, se que se resuelve asi x = (-b +/- sqr(b^2 - 4ac)) / 2a. Lo que pasa es que tengo que crear una estructura con un float real y un float imaginario. Lo que no entiendo es como resolverlo, puede ser que el float imaginario sea el resultado de la raiz cuadrada por si el resultado es negativo?? pero el float real que es? y ya teniendo el float real y el imaginario como lo resuelvo?

Muchas gracias!

Un saludo.
  #2 (permalink)  
Antiguo 28/02/2007, 13:01
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: Resolver ecuacion

que tal,

Primero que nada, sabes como resolverlo a mano en caso de que te de un valor imaginario?
Supongo que solamente te pediran que lo dejes expresado, entonces:
suponiendo que a = 100, b = 50, c = 500
sqrt(b^2 - 4ac) te daria un valor imaginario 'i'.
matematicamente lo podrias dejar expresado asi:
x = (-50 +/- i) 200

efectivamente, el float imaginario seria el resultado de la raiz cuadrada.

supongamos que tu codigo para programar la raiz cuadrada es asi:
float raizcuadrada = 0;
raizcuadrada = sqrt( (b*b) - (4*a*c) );

ahora vendria una condicion para saber que haras dependiendo si es imaginario o no:

if ( _isnan( raizcuadrada) ) // si es imaginario
{
// imprime el resultado expresado en forma imaginaria
}

else
{
// termina de resolver la ecuacion
// si llegas aqui, quiere decir que el resultado de tu
// raiz cuadrada, es un "float real"...
}

ahora, si tienes que resolver la ecuacion imaginaria.... sinceramente no recuerdo como se hacia, pero si no es asi, espero te haya servido mi explicacion.......

saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.