Ya lo he conseguido hacer, el problema es que lo hemos hecho entre tres compañeros y ahora tenemos que cambiarlo para que no parezca que nos ayudamos, ya que el profesor de la carrera tienes un programa que detecta copias, alguna idea?
-----------------
#include <iostream>
#include <cmath>
#define MAXGRADO 20
using namespace std;
typedef unsigned int uint;
class poli {//CLASE POLINOMIO
//ATRIBUTOS DE LA CLASE
private:
float coef[MAXGRADO+1];
uint grado;
float eval;
public:
poli();
void setgrado(uint grado);
uint getgrado() const;
float getcoef(uint i) const;
void setcoef(uint i);
void setpoli(float c[]);
float operator [] (uint i) const;
float&operator [] (uint i);
float operator () (float a) const;
operator int () const;
operator float () const;
friend ostream & operator<<(ostream & out, const poli & a);
friend istream & operator>>(istream & in, poli & a);
};
int main() {
float x[3],y[3],z[3];
poli a,b;
cout<<"Introduzca el polinomio a: "<<endl;
cin>>a;
cout<<"nIntroduzca el polinomio b: "<<endl;
cin>>b;
for (int i=0;i<3;i++) {
x=rand();
y=a(x);
z=b(x);
}
cout<<"Polinomio a: "<<a<<endl;
for (int i=0;i<3;i++) {
cout<<"Evaluaciones del polinomio a en: x="<<x<< ",es : "<< y<<endl;
}
cout<<"Polinomio b: "<<b<<endl;
for (int i=0;i<3;i++) {
cout<<"Evaluaciones del polinomio b en: x="<<x<< ",es : "<< z<<endl;
}
system("PAUSE");
return 0;
};
poli::poli():grado(0),eval(0) {// costructor por defecto grado 0 y coef 0
for(int i=0;i<MAXGRADO;i++) coef=0;
}
uint poli::getgrado() const { //devuelve el grado del polinomio
return grado;
}
void poli::setgrado(uint g) {//ajusta el grado a un entero sin signo dado
if(g<=MAXGRADO){
for (int i=g+1;i<MAXGRADO;i++) {
coef=0;
}
grado=g;
}
}
void poli::setpoli(float c[]) {//cambia los coef del pol por los del array
for (int i=0;i<=grado;i++) coef=c;
}
float poli::operator [] (uint i) const {
return ((grado>0)?coef[i%grado]:coef[0]);
}
float&poli::operator [] (uint i) {
return ((grado>0)?coef[i%grado]:coef[0]);
}
float poli::operator () (float a) const {
float res=0;
for(int i=0;i<=grado;i++) {
res+=coef*pow(a,i);
}
return res;
}
poli::operator int () const {
return this->getgrado();
}
poli::operator float() const{
return eval;
}
ostream & operator<<(ostream & out, const poli & a) {//operador insercion
out<<a.grado<<endl;
for(uint i=0; i<a.grado; i++) out << ' ' << a.coef;
return out;
}
istream & operator>>(istream & in, poli & a) {//operador extraccion
in >> a.grado;
for(uint i=0; i<a.grado; i++) in >> a.coef;
return in;
}