raiz cuadrada??
holaa! intento hacer una ecuacion de segundo grado pero no me compila, si alguien me ayuda..muchas gracias!! =)
yo lo he intentado asi:
#include <iostream>
#include <cmath>
using namespace std;
int main (){
int a, b, c, r1, r2;
cout<<"Introduce el coeficiente de 2º grado: ";
cin>>a;
cout<<"Introduce el coeficiente de 1º grado: ";
cin>>b;
cout<<"Introduce el termino independiente: ";
cin>>c;
r1 = (-b + sqrt(b*b-4*a*c)) / (2*a);
r2 = (-b - sqrt(b*b-4*a*c)) / (2*a);
if ((2*a)==0)
cout<<"ERRORn";
else if ((sqrt(b^2-4*a*c))<0)
cout<<"ERRORn";
else cout<<"El resultado es: "<< r1 << "y" << r2 <<endl;
system ("PAUSE");
return 0;
}
yo lo he intentado asi:
#include <iostream>
#include <cmath>
using namespace std;
int main (){
int a, b, c, r1, r2;
cout<<"Introduce el coeficiente de 2º grado: ";
cin>>a;
cout<<"Introduce el coeficiente de 1º grado: ";
cin>>b;
cout<<"Introduce el termino independiente: ";
cin>>c;
r1 = (-b + sqrt(b*b-4*a*c)) / (2*a);
r2 = (-b - sqrt(b*b-4*a*c)) / (2*a);
if ((2*a)==0)
cout<<"ERRORn";
else if ((sqrt(b^2-4*a*c))<0)
cout<<"ERRORn";
else cout<<"El resultado es: "<< r1 << "y" << r2 <<endl;
system ("PAUSE");
return 0;
}
No sé a qué te refieres con que no te compila, porque, a primera vista, de cara al compilador el código tiene un fallo cuando preguntas por el signo de la raíz. En C/C++ no existe un signo para exponenciación, deberías haberlo hecho como en las líneas en que calculas las raíces. El resto es (aparentemente) correcto. Veo otros problemas, que son:
1. Las variables para coeficientes y resultado las has declarado de tipo entero. Para el tipo de operación que quieres hacer, lo lógico es que sean de tipo double.
2. Estás preguntando si 2*a es cero después de haber efectuado la división. Evidentemente, deberías preguntar antes de dividir. Además, basta con preguntar si a es cero.
3. Estás preguntando si la raíz es negativa, cuando deberías haber preguntado si aquello a lo que vas a extraer la raíz es negativo. Además, lo haces después de haber intentado calcular las raíces.
En resumen, las comprobaciones del denominador y del contenido de la raíz deberías de haberlo efectuado antes de intentar calcular las raíces.
Si sigue sin compilar, indica qué compilador utilizas y qué mensajes de error te da.
Saludos,
1. Las variables para coeficientes y resultado las has declarado de tipo entero. Para el tipo de operación que quieres hacer, lo lógico es que sean de tipo double.
2. Estás preguntando si 2*a es cero después de haber efectuado la división. Evidentemente, deberías preguntar antes de dividir. Además, basta con preguntar si a es cero.
3. Estás preguntando si la raíz es negativa, cuando deberías haber preguntado si aquello a lo que vas a extraer la raíz es negativo. Además, lo haces después de haber intentado calcular las raíces.
En resumen, las comprobaciones del denominador y del contenido de la raíz deberías de haberlo efectuado antes de intentar calcular las raíces.
Si sigue sin compilar, indica qué compilador utilizas y qué mensajes de error te da.
Saludos,
muchas gracias! hice los cambios que me dijistes y algunos más, ya funciona perfectametente! =)
#include <iostream>
#include <cmath>
using namespace std;
int main (){
double a, b, c, r1, r2;
cout<<"Introduce el coeficiente de 2º grado: ";
cin>>a;
cout<<"Introduce el coeficiente de 1º grado: ";
cin>>b;
cout<<"Introduce el termino independiente: ";
cin>>c;
if ((a!=0) && (b*b-4*a*c)>=0){
r1 = (-b + sqrt(b*b-4*a*c)) / (2*a);
r2 = (-b - sqrt(b*b-4*a*c)) / (2*a);
cout<<"Las raices son: "<< r1 << "y" << r2 <<endl;
}
else if ((a!=0) && (b*b-4*a*c)<0)
cout<<"La ecuacion no tiene solucion"<<endl;
else if(a==0){
r1=-c / b;
cout<<"La unica raiz es: "<<r1<<endl;
}
system ("PAUSE");
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
int main (){
double a, b, c, r1, r2;
cout<<"Introduce el coeficiente de 2º grado: ";
cin>>a;
cout<<"Introduce el coeficiente de 1º grado: ";
cin>>b;
cout<<"Introduce el termino independiente: ";
cin>>c;
if ((a!=0) && (b*b-4*a*c)>=0){
r1 = (-b + sqrt(b*b-4*a*c)) / (2*a);
r2 = (-b - sqrt(b*b-4*a*c)) / (2*a);
cout<<"Las raices son: "<< r1 << "y" << r2 <<endl;
}
else if ((a!=0) && (b*b-4*a*c)<0)
cout<<"La ecuacion no tiene solucion"<<endl;
else if(a==0){
r1=-c / b;
cout<<"La unica raiz es: "<<r1<<endl;
}
system ("PAUSE");
return 0;
}