Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Wielomian
- {
- int n;
- double *wsp;
- public:
- void wypisz();
- Wielomian();
- Wielomian (int r);
- Wielomian(int x, double *w);
- Wielomian(const Wielomian &W);
- ~Wielomian();
- Wielomian& operator=(const Wielomian & W);
- Wielomian &operator+(Wielomian &W);
- friend ostream &operator<<(ostream & out, Wielomian W);
- friend istream &operator>>(istream & in,Wielomian &W);
- };
- Wielomian::Wielomian(int r)
- {
- n=r;
- wsp=new double[n];
- /* for(int i=0;i<n;i++)
- {
- cin>>wsp[i];
- }*/
- }
- istream &operator>>(istream&in,Wielomian &W)
- {
- W.wsp=new double[W.n];
- for(int i=0;i<W.n;i++)
- {
- cin>>W.wsp[i];
- }
- return in;
- }
- ostream &operator<<(ostream & out, Wielomian W)
- {
- for(int i=W.n-1; i>=0; i--)
- {
- if(i==W.n-1)
- {
- cout<<W.wsp[i]<<"x^"<<i-1;
- }
- else if(i!=0)
- {
- int x=i-1;
- if(x!=0)
- {
- cout<<"+"<<W.wsp[i]<<"x^"<<x;
- }
- else
- {
- cout<<"+"<<W.wsp[i]<<"x";
- }
- }
- else if(i==0)
- {
- cout<<"+"<<W.wsp[i]<<endl;
- }
- }
- return out;
- }
- Wielomian::Wielomian()
- {
- n=1;
- wsp=new double[n];
- for(int i=0; i<n; i++)
- {
- wsp[i]=0;
- }
- }
- Wielomian::Wielomian(int x,double *w)
- {
- n=x;
- wsp=new double[n];
- for(int i=0; i<n; i++)
- {
- wsp[i]=w[i];
- }
- }
- Wielomian::Wielomian(const Wielomian& W)
- {
- n=W.n;
- delete[]wsp;
- wsp=new double[n];
- for(int i=0; i<n; i++)
- {
- wsp[i]=W.wsp[i];
- }
- }
- Wielomian::~Wielomian()
- {
- delete []wsp;
- }
- void Wielomian::wypisz()
- {
- for(int i=n-1; i>=0; i--)
- {
- if(i==n-1)
- {
- cout<<wsp[i]<<"x^"<<i-1;
- }
- else if(i!=0)
- {
- int x=i-1;
- if(x!=0)
- {
- cout<<"+"<<wsp[i]<<"x^"<<x;
- }
- else
- {
- cout<<"+"<<wsp[i]<<"x";
- }
- }
- else if(i==0)
- {
- cout<<"+"<<wsp[i]<<endl;
- }
- }
- }
- Wielomian & Wielomian::operator=(const Wielomian& W)
- {
- n=W.n;
- delete[]wsp;
- wsp=new double[n];
- for(int i=0;i<n;i++)
- {
- wsp[i]=W.wsp[i];
- }
- return *this;
- }
- Wielomian & Wielomian::operator+(Wielomian& W)
- {
- int roz;
- if(n<W.n)roz=W.n;
- else roz=n;
- double *tab1=new double[n];
- Wielomian Wynik(roz,tab1);
- for(int i=0; i<roz; i++)
- {
- Wynik.wsp[i]=wsp[i]+W.wsp[i];
- }
- return(Wynik);
- }
- int main()
- {
- double *tab=new double[5];
- tab[0]=4.0;
- tab[1]=3.0;
- tab[2]=5.0;
- tab[3]=2.0;
- tab[4]=4.0;
- Wielomian A(5,tab);
- Wielomian B(5,tab);
- Wielomian C;
- C=A+B;
- cin>>B;
- cout<<B<<endl;
- cout <<C<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement