Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1.  
  2. class Wielomian{
  3. public:
  4.     Wielomian(){
  5.         wielomian.emplace_back(0);
  6.     }
  7.  
  8.     Wielomian(std::vector<double> wiel){
  9.         for(auto d : wiel){
  10.             wielomian.emplace_back(d);
  11.         }
  12.     }
  13.     void ustawWspolczynnik(int n, double value){
  14.         if(wielomian.size() < n+1) {
  15.             while (wielomian.size() < n && n != 0) {
  16.                 wielomian.emplace_back(0);
  17.             }
  18.             wielomian.emplace_back(value);
  19.         }else{
  20.             wielomian[n] = value;
  21.         }
  22.     }
  23.  
  24.     double wartosc(double x){
  25.         double result = 0;
  26.         result += wielomian.at(0);
  27.         for(int i=1; i< wielomian.size(); i++){
  28.             result += pow(x,i) * wielomian.at(i);
  29.         }
  30.         return result;
  31.     }
  32.  
  33.     Wielomian operator+(const Wielomian& other){
  34.         size_t size;
  35.         if(wielomian.size() > other.wielomian.size()){
  36.             size = wielomian.size();
  37.         } else {
  38.             size = other.wielomian.size();
  39.         }
  40.         std::vector<double> res;
  41.         for(int i=0; i< size; i++){
  42.             res.emplace_back(wielomian.at(i) + other.wielomian.at(i));
  43.         }
  44.         Wielomian result(res);
  45.         return result;
  46.     }
  47.  
  48.  
  49.     Wielomian operator*(const Wielomian& other){
  50.         size_t size = (wielomian.size())*(other.wielomian.size());
  51.         std::vector<double> res;
  52.         for(int x=0; x<size-1;x++){
  53.             res.emplace_back(0);
  54.         }
  55.  
  56.         for(int i=0; i<=wielomian.size()-1; i++){
  57.             for(int j=0; j<=other.wielomian.size()-1; j++){
  58.                // std::cout<< i+j <<" - " << wielomian.at(i)*other.wielomian.at(j) << "\n";
  59.                 res[i+j] += wielomian.at(i)*other.wielomian.at(j);
  60.             }
  61.         }
  62.         Wielomian result(res);
  63.  
  64.         return result;
  65.     }
  66.  
  67.     friend std::ostream& operator<<(std::ostream& out, Wielomian& w);
  68.     friend std::istream& operator>>(std::istream& in, Wielomian& w);
  69.  
  70.  
  71.  
  72.     void wyswietl(){
  73.         for(auto x : wielomian){
  74.             std::cout << x << " ";
  75.         }
  76.     }
  77.  
  78.  
  79. private:
  80.     std::vector<double> wielomian;
  81. };
  82.  
  83. std::ostream& operator<<(std::ostream& out, Wielomian& w){
  84.     for(int i=0; i<w.wielomian.size(); i++){
  85.         out << w.wielomian.at(i) << " ";
  86.     }
  87.     return out;
  88. }
  89.  
  90. std::istream& operator>>(std::istream& in, Wielomian& w){
  91.  
  92.     // ??????????????????????????/
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement