سلام
دوست من برای پروژه پایان ترمش به یه مشکل بر خورده اونم اینه که باید یه تابع read تعریف کنه تا یک چند جمله ای رو بصورت رشته ای از ورودی بگیره توضیحاتش رو هم برام با عکس فرستاده ولی من چیزی نفهمیدم سورس برنامه هم برام فرستاده اگه میتونید راهنمایی کنید(توضیحات در بند b)
#include "iostream"
using namespace std;
class polynomial
{
float a[100];
int len;
public:
polynomial()
{
for(int i=0;i<100;i++)
a[i]=0;
}
void read();
void print();
float power(float x,int y);
float evaluate(float x);
void operator*(float f);
void operator*(polynomial&p);
void operator+(polynomial&p);
void operator+(float f);
void operator--();
polynomial operator--(int);
void operator+=(polynomial&p);
void operator+=(float f);
int operator==(polynomial&p);
int operator!=(polynomial&p);
void operator*=(float f);
void operator*=(polynomial&p);
};
void polynomial::read()
{
cout<<"enter a len of arry =";
cin>>len;
for(int i=0;i<len;i++)
{
cout<<"enter a zarib x^"<<i<<"=";
cin>>a[i];
}
}
void polynomial::print()
{
for(int i=0;i<len;i++)
cout<<a[i]<<"x^"<<i<<"+";
cout<<"0";
cout<<"\n";
}
float polynomial::power(float x,int y)
{
int p=1;
for(int i=0;i<y;i++)
p*=x;
return p;
}
float polynomial::evaluate(float x)
{
float c=0;
for(int i=0;i<len;i++)
c+=a[i]*power(x,i);
return c;
}
void polynomial::operator*(float f)
{
float c[100]={0};
for(int i=0;i<len;i++)
c[i]=f*a[i];
cout<<"\n";
cout<<"p*f=";
for(int i=0;i<len;i++)
cout<<c[i]<<"x^"<<i<<"+";
cout<<"0";
}
void polynomial::operator*(polynomial&p)
{
float c[100]={0};
int j,i,t=len+p.len;
for(int i=0;i<len;i++)
for(j=0;j<p.len;j++)
c[i+j]=(a[i]*(p.a[j]))+c[i+j];
cout<<"\n";
cout<<"p2*p3=";
for(int l=0;l<t;l++)
cout<<c[l]<<"x^"<<l<<"+";
cout<<"0";
}
void polynomial::operator+(float f)
{
a[0]=f+a[0];
cout<<"\n";
cout<<"p+f=";
for(int i=0;i<len;i++)
cout<<a[i]<<"x^"<<i<<"+";
cout<<"0";
}
void polynomial::operator+(polynomial&p)
{
float c[100]={0};
int max;
max=len;
if(p.len>max)
max=p.len;
for(int i=0;i<max;i++)
c[i]=a[i]+p.a[i];
cout<<"\n";
cout<<"p2+p3=";
for(int i=0;i<max;i++)
cout<<c[i]<<"x^"<<i<<"+";
cout<<"0";
}
void polynomial::operator--()
{
float c[100]={0};
for(int i=0;i<len;i++)
if(a[i]!=0)
c[i]=a[i]-1;
cout<<"--p=";
for(int i=0;i<len;i++)
cout<<c[i]<<"x^"<<i<<"+";
cout<<"0";
}
polynomial polynomial::operator--(int)
{
float c[100]={0};
polynomial temp;
for(int i=0;i<len;i++)
temp.a[i]=a[i];
for(int i=0;i<len;i++)
if(a[i]!=0)
c[i]=a[i]-1;
return temp;
}
void polynomial::operator+=(polynomial&p)
{
int max;
max=len;
if(p.len>max)
max=p.len;
for(int i=0;i<max;i++)
a[i]+=p.a[i];
cout<<"p2+=p3=";
for(int i=0;i<max;i++)
cout<<a[i]<<"x^"<<i<<"+";
cout<<"0";
}
void polynomial::operator+=(float f)
{
a[0]+=f;
cout<<"\n p+f=";
for(int i=0;i<len;i++)
cout<<a[i]<<"x^"<<i<<"+";
cout<<"0";
}
int polynomial::operator==(polynomial&p)
{
int max;
max=len;
if(p.len>max)
max=p.len;
if(p.len!=len)
return -1;
else
for(int i=0;i<max;i++)
if(a[i]==p.a[i])
continue;
else
return -1;
return 0;
}
int polynomial::operator!=(polynomial&p)
{
int max;
max=len;
if(p.len>max)
max=p.len;
if(p.len!=len)
return 0;
else
for(int i=0;i<max;i++)
if(a[i]==p.a[i])
continue;
else
return 0;
return -1;
}
void polynomial::operator*=(float f)
{
for(int i=0;i<len;i++)
a[i]*=f;
for(int i=0;i<len;i++)
cout<<a[i]<<"x^"<<i<<"+";
cout<<"0";
}
void polynomial::operator *=(polynomial&p)
{
int c[100]={0},i,j,t=len+p.len;
for(int i=0;i<len;i++)
c[i]=0;
for(int i=0;i<len;i++)
for(int j=0;j<p.len;j++)
a[i+j]=0;
for(int i=0;i<len;i++)
for(int j=0;j<p.len;j++)
a[i+j]=c[i]*(p.a[j])+a[i+j];
for(int l=0;l<t;l++)
cout<<a[l]<<"x^"<<l<<"+";
cout<<"0";
}
int main()
{
int y;
float z,t,w;
polynomial p1(),p2,p3,p4,p5;
p3.read();
p2.read();
p3.print();
p2.print();
cout<<"\nenter a float number";
cin>>t;
z=p3.evaluate(t);
cout<<z;
w=p2.evaluate(t);
cout<<"\n"<<w;
p3*t;
cout<<"\n";
p2*t;
cout<<"\n";
p3*p2;
cout<<"\n";
p2+t;
p3+t;
p2+p3;
cout<<"\n";
--p3;
cout<<"\n";
--p2;
cout<<"\n";
p4=p3--;
cout<<"p3--= "; p4.print();
cout<<"\n";
p5=p2--;
cout<<"p2--= "; p5.print();
cout<<"\n";
p3+=p2;
cout<<"\n";
p3+=t;
p2+=t;
p2==p3;
if(p2==p3==0)
cout<<"chand jomlei is equal";
else
cout<<"chand jomlei is not equal";
p2!=p3;
if(p2!=p3==0)
cout<<"chand jomlei is not equal";
else
cout<<"chand jomlei is equal";
p3*=t;
p2*=t;
cout<<"\n";
p3*=p2;
return 0;
}