Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int MuestraMenu();
- void MostrarSoluciones(double x1, double x2, int n);
- class ec2grado {
- public:
- double a; // Coefic. de a*x^2+b*x+c
- double b,c;
- bool solucion; // true si la ecuacion tiene solucion
- bool coeficientes; // true si la ecuacion ya tiene los coeficientes
- void Inicializar() {
- a= 0;
- b= 0;
- c= 0;
- solucion= false;
- coeficientes= false;
- }
- void PedirCoeficientes() {
- cout<<"Dime los coeficientes a, b, c de la ecuación ax^2+bx+c=0: \n";
- cin >> a >> b >> c;
- coeficientes= true;
- }
- void MostrarEcuacion() {
- cout<<a<<"x^2 + "<<b<<"x + "<<c;
- }
- int ResolverEcuacion(double &x1, double &x2) {
- if ((!solucion) || (!coeficientes))
- return 0;
- if (a==0) {
- x1= -c/b;
- return 1;
- }
- x1= (-b+sqrt(b*b-4*a*c))/(2*a);
- x2= (-b-sqrt(b*b-4*a*c))/(2*a);
- return 2;
- }
- bool tieneSolucion() {
- double aux= b*b-4*a*c;
- if ((aux < 0) || ((a==0) && (b==0))) {
- solucion= false;
- return false;
- }
- solucion= true;
- return true;
- }
- };
- int main() {
- ec2grado e; // Variable que modela los coeficientes de la ecuación
- double sol1, sol2; // Variables solución de la ecuación
- int nsol= 0; // Numero de soluciones de la ecuación
- int opc; // Opcion seleccionada del menu de opciones
- bool terminar= false;
- e.Inicializar(); // Inicializamos datos miembro (variables) del objeto
- // Cuerpo del programa
- do {
- opc= MuestraMenu(); // Mostramos menu de opciones
- // Seleccionamos la acción correspondiente a la opción
- switch(opc) {
- case 1:
- e.PedirCoeficientes();
- break;
- case 2:
- if (e.coeficientes) {
- if (e.tieneSolucion())
- nsol= e.ResolverEcuacion(sol1, sol2);
- else
- cout<<"\n\tLa ecuacion no tiene soluciones reales\n\n";
- } else
- cout<<"\n\tAun no ha definido los coeficientes\n\n";
- break;
- case 3:
- if (e.coeficientes) {
- MostrarSoluciones(sol1, sol2, nsol);
- } else
- cout<<"\n\tAun no ha definido los coeficientes\n\n";
- break;
- case 4:
- terminar= true;
- break;
- default:
- cout<<"\nEsa opcion no es valida...\n\n";
- break;
- }
- } while (!terminar);
- cout<<"\nFin del programa\n";
- return 0;
- }
- int MuestraMenu() {
- int opcion;
- cout<<"\n1- Introducir coeficientes\n";
- cout<<"2- Calcular resultados\n";
- cout<<"3- Mostrar Soluciones\n";
- cout<<"4- Terminar\n";
- cout<<"\n\tEscoja una opcion: ";
- cin>>opcion;
- return opcion;
- }
- void MostrarSoluciones(double x1, double x2, int n) {
- switch(n) {
- case 0:
- cout<<"La ecuacion no tiene soluciones reales\n";
- break;
- case 1:
- cout<<"La ecuación es de primer grado. ";
- cout<<"Su solucion es x="<<x1<<endl;
- break;
- case 2:
- cout<<"Las soluciones son x1= "<<x1<<" y x2="<<x2<<endl;
- break;
- default:
- cout<<"El parametro n="<<n<<" no es valido"<<endl;
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement