Advertisement
Guest User

CPolynom.cpp

a guest
Mar 29th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include "CPolynom.h"
  2.  
  3. CPolynom::CPolynom() {
  4.     this->order = 0;
  5.     this->exp = 0;
  6.     this->coef = 0;
  7.     this->polyCoef = nullptr;
  8. }
  9.  
  10. CPolynom::CPolynom(int order) {
  11.  
  12.     this->order = order;
  13.     polyCoef = new double[order + 1];
  14.  
  15.     for (int i = 0; i < order; i++) {
  16.         this->polyCoef[i] = 0;
  17.     }
  18.  
  19. }
  20.  
  21. void CPolynom::Coef(int exp, double coef) {
  22.     if (exp >= order || exp < 0)
  23.         std::cout << "Eksponent nije validan " << std::endl;
  24.     this->polyCoef[exp] = coef;
  25.  
  26. }
  27.  
  28. CPolynom* CPolynom::Add(CPolynom poly1, CPolynom poly2) {
  29.     double* temp;
  30.     int i;
  31.  
  32.     if (poly1.order > poly2.order) {
  33.         temp = new double[poly1.order];
  34.  
  35.         for (i = 0; i < poly2.order; i++)
  36.             temp[i] = poly1.polyCoef[i] + poly2.polyCoef[i];
  37.         for (; i < poly1.order; i++)
  38.             temp[i] = poly1.polyCoef[i];
  39.     }
  40.     else {
  41.         temp = new double[poly2.order];
  42.  
  43.         for (i = 0; i < poly1.order; i++)
  44.             temp[i] = poly2.polyCoef[i] + poly1.polyCoef[i];
  45.         for (; i < poly2.order; i++)
  46.             temp[i] = poly2.polyCoef[i];
  47.     }
  48.  
  49.     CPolynom* result = new CPolynom(i);
  50.     result->polyCoef = new double[i];
  51.     memcpy(result->polyCoef, temp, sizeof(double)*i);
  52.     delete[] temp;
  53.  
  54.     return result;
  55. }
  56.  
  57. CPolynom* CPolynom::Mul(CPolynom poly1, CPolynom poly2) {
  58.     CPolynom* result = new CPolynom(poly1.order + poly2.order);
  59.  
  60.     for (int i = 0; i < poly1.order; i++)
  61.         for (int j = 0; j < poly2.order; j++)
  62.             result->polyCoef[i + j] += poly1.polyCoef[i] * poly2.polyCoef[j];
  63.  
  64.     return result;
  65. }
  66.  
  67. void CPolynom::Print() {
  68.     for (int i = 0; i < order; i++) {
  69.         std::cout << polyCoef[i] << " " << std::endl;
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement