Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //main
- #include "wielomian.h"
- using namespace std;
- int main()
- {
- double wsp[3];
- wsp[0]=1;
- wsp[1]=2;
- wsp[2]=3;
- wielomian *w, *k;
- printf("test\n");
- w = new wielomian(2,wsp);
- printf("test2\n");
- cout<<w;
- return 0;
- }
- //funkcje
- #include "wielomian.h"
- using namespace std;
- wielomian::wielomian(int st, double wsp) : stopien(st)
- {
- wspolczynniki = new double[st+1];
- wspolczynniki[0] = wsp;
- }
- wielomian::wielomian(int st, const double wsp[]) : stopien(st)
- {
- wspolczynniki = new double[st+1];
- if(wsp[st]==0)
- throw string("Wspolczynnik przy najwiekszej potedze jest rowny zero zatem stopien jest bledny!\n");
- for(int i=0; i<st; i++)
- {
- wspolczynniki[i]=wsp[i];
- }
- }
- wielomian::wielomian (std::initializer_list<double> wsp)
- {
- // int pom = 0;
- // while(wsp.end()-pom == 0 || wsp.end()-pom == wsp.begin())
- // pom++;
- for(auto iterator = wsp.begin(); iterator != wsp.end(); stopien++, iterator++)
- {
- wspolczynniki[stopien] = *iterator;
- }
- }
- wielomian::~wielomian()
- {
- delete[] wspolczynniki;
- }
- wielomian::wielomian(const wielomian &pierwotny)
- {
- stopien = pierwotny.stopien;
- for (int i=0 ; i<stopien; i++)
- wspolczynniki[i] = pierwotny.wspolczynniki[i];
- }
- wielomian::wielomian(wielomian &&pierwotny)
- {
- stopien = pierwotny.stopien;
- wspolczynniki = pierwotny.wspolczynniki;
- pierwotny.wspolczynniki = nullptr;
- }
- wielomian& wielomian::operator = (const wielomian &pierwotny)
- {
- this->~wielomian();
- stopien = pierwotny.stopien;
- for (int i=0 ; i<stopien; i++)
- wspolczynniki[i] = pierwotny.wspolczynniki[i];
- return *this;
- }
- wielomian& wielomian::operator = (wielomian &&pierwotny)
- {
- this->~wielomian();
- stopien = pierwotny.stopien;
- wspolczynniki = pierwotny.wspolczynniki;
- pierwotny.wspolczynniki = nullptr;
- return *this;
- }
- istream& operator >> (istream &we, wielomian &wzor)
- {
- we >> wzor.stopien;
- for (int i=0; i<=wzor.stopien; i++)
- {
- we >> wzor.wspolczynniki[i];
- }
- return we;
- }
- ostream& operator << (ostream &wy, const wielomian &wzor)
- {
- for (int i=wzor.stopien; i>=1; i++)
- {
- wy << wzor.wspolczynniki[i] << "*x^" << i << " + ";
- }
- wy << wzor.wspolczynniki[0] << endl;
- return wy;
- }
- wielomian operator +(const wielomian &u, const wielomian &v)
- {
- if(u.stopien > v.stopien)
- {
- for (int i=0; i<=v.stopien; i++)
- {
- u.wspolczynniki[i] = u.wspolczynniki[i] + v.wspolczynniki[i];
- }
- return u;
- }
- for (int i=0; i<=u.stopien; i++)
- {
- v.wspolczynniki[i] = u.wspolczynniki[i] + v.wspolczynniki[i];
- }
- return v;
- }
- //deklaracje
- #include <iostream>
- #include <string>
- class wielomian
- {
- private:
- int stopien; // stopieñ wielomianu
- double *wspolczynniki; // wspó³czynniki wielomianu
- public:
- wielomian(int st=0, double wsp=1.0); // konstruktor tworz¹cy jednomian
- wielomian(int st, const double wsp[]); // konstruktor tworz¹cy wielomian
- wielomian(std::initializer_list<double> wsp); // lista wspó³czynników
- wielomian(const wielomian &pierwotny); // konstruktor kopij¹cy
- wielomian(wielomian &&pierwotny); // konstruktor przenosz¹cy
- wielomian& operator = (const wielomian &w); // przypisanie kopij¹ce
- wielomian& operator = (wielomian &&w); // przypisanie przenosz¹ce
- ~wielomian (); // destruktor
- friend std::istream& operator >> (std::istream &we, wielomian &w);
- friend std::ostream& operator << (std::ostream &wy, const wielomian &w);
- friend wielomian operator + (const wielomian &u, const wielomian &v);
- // friend wielomian operator - (const wielomian &u, const wielomian &v);
- // friend wielomian operator * (const wielomian &u, const wielomian &v);
- // //friend wielomian operator * (double c);
- // wielomian& operator += (const wielomian &v);
- // wielomian& operator -= (const wielomian &v);
- // wielomian& operator *= (const wielomian &v);
- // wielomian& operator *= (double c);
- // double operator () (double x) const; // obliczenie wartoœci wielomianu w x-sie
- // double operator [] (int i) const; // odczytanie i-tego wspó³czynnika
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement