Quisiera que alguien me diga si este ejercicio esta bien os lo pongo:
P4-2: Calcular las raíces de una ecuación de segundo grado ax^2+bx+c=0 con coeficientes
enteros
Las raíces vienen determinadas por la ecuación:
(la expresión de una ecuación de segundo grado)
La función sqrt() de la librería matemática extrae la raíz cuadrada de un número positivo. Para
poder usarla añade la cabecera #include <cmath> al fichero fuente.
Para extraer la raíz de un número negativo debes cambiarlo previamente de signo (multiplicarlo por (-
1)) y tener en cuenta a partir de ese momento la naturaleza imaginaria del resultado.
El programa considerará todos los casos particulares: que a sea 0 (la ecuación no es de 2º grado y
así evitamos dividir por 0), que a y b sean 0 (absurdo), que el discriminante sea 0 (raíz doble real), etc.
Donde sea necesario debes usar static_cast<double>(variable)para obtener los resultados
correctos y evitar así obtener la división entera en lugar de la correcta en coma flotante.
Muchas gracias por vuestro tiempo.
saludos.
P4-2: Calcular las raíces de una ecuación de segundo grado ax^2+bx+c=0 con coeficientes
enteros
Las raíces vienen determinadas por la ecuación:
(la expresión de una ecuación de segundo grado)
La función sqrt() de la librería matemática extrae la raíz cuadrada de un número positivo. Para
poder usarla añade la cabecera #include <cmath> al fichero fuente.
Para extraer la raíz de un número negativo debes cambiarlo previamente de signo (multiplicarlo por (-
1)) y tener en cuenta a partir de ese momento la naturaleza imaginaria del resultado.
El programa considerará todos los casos particulares: que a sea 0 (la ecuación no es de 2º grado y
así evitamos dividir por 0), que a y b sean 0 (absurdo), que el discriminante sea 0 (raíz doble real), etc.
Donde sea necesario debes usar static_cast<double>(variable)para obtener los resultados
correctos y evitar así obtener la división entera en lugar de la correcta en coma flotante.
Código (cpp) [Seleccionar]
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int b,a,c,disc;
int raiz;
cout <<"Introduce un valor para b: ";
cin >> b;
cout <<"Introduce un valor para a: ";
cin >>a;
cout<<"Introduce un valor para c: ";
cin >>c;
if(a==0&& b==0){
cout <<"Absurdo"<<endl;
return 0;}
else if(a==0){
cout<<"No es una ecuacion de segundo grado"<<endl;
return 0;}
disc=(b*b)-(4*a*c);
if (disc<0){
disc=-1*disc;
raiz=sqrt(disc);
cout<<"x1="<<raiz<<" x2="<<"-"<<raiz<<"i"<<endl;
return 0;
}
else
raiz=sqrt(disc);
cout<<"x1= "<<raiz<<" x2= "<<"-"<<raiz;
}
Muchas gracias por vuestro tiempo.
saludos.