Hola a todos, soy nuevo en el foro y me preguntava si me podrian ayudar. Mi pràctica es la siguiente:
Polinomios de segundo grado
Hay que crear dos clases para la gestión de polinomios de segundo grado.
Clase Complejo
Tiene que contener dos *float, la parte real e imaginaria del complejo, guardadas de manera privada. Se tiene que construir a partir de dos float, uno (el real, el imaginario es cero) o ninguno (cero a ambos). Método Siete, con dos float. Método Ver, que mostrará los dos valores.
Clase Poli2
Tiene que contener los tres coeficientes del polinomio p(x)=ax^2+bx+c en la parte privada.
Métodos:
• Dos constructoras. Con tres y cero parámetro float. Sin parámetros, todos los
coeficientes se ponen a cero.
• Ver. Muestra el propio Poli2 (con dos decimales)
• Evaluar. Pasando como parámetro el float w, devuelve p(w).
• ResoldreR. Devuelve un booleano indicando si la ecuación basada en el polinomio tiene raíces reales. Si es el caso también devuelve dos float, pasados por referencia, con las raíces.
• Resolver. Devuelve dos Complejo, pasados por referencia, con las raíces de la ecuación.
• Derivar. Deriva el propio Poli2.
• Operator +. Suma el propio Poli2 con otro de pasado y devuelve el resultado.
• Operator *. Multiplica los coeficientes del propio Poli2 por un float.
• Descomponer. Devuelve -pasando por referencia- dos Poli2 de grado 1, tales que
multiplicados den el propio Poli2. También devuelve un boolean indicando si se puede hacer
la descomposición real.
Si añadimos un main como el que hay a continuación, el programa tendría que mostrar los resultados comentados.
Poli p(2,5,3);
Poli q(5,-2);
Poli r;
Complex c1,c2;
float f,g;
p.Veure(); // [2.00 5.00 3.00]
q.Veure(); // [5.00 -2.00 0.00]
r.Veure(); // [0.00 0.00 0.00]
f=p.Avaluar(3.1);
cout<<f<<endl; // 37.72
p.ResoldreR(f,g);
cout<<f<<" "<<g<<endl; // -1 -1.5
r=p+q;
r.Veure(); // [7.00 3.00 3.00]
q*1.5;
q. // [7.50 -3.00 0.00]
q.Derivar();
q.Veure(); // [0.00 15.00 -3.00]
q.Set(2,6,4);
if(q.ResoldreR(f,g))
cout<<f<<" "<<g<<endl; // -1 -2
else
cout<<"No solucio real\n";
q.Set(3,1,2);
q.ResoldreI(c1,c2);
c1.Veure(); // (-0.17 0.80)
c2.Veure(); // (-0.17 -0.80)
if(p.Descomposar(q,r)){
q.Veure(); // [0.00 1.00 1.00]
r.Veure(); // [0.00 1.00 1.50]
}
else
cout<<"No descomposable\n";