Advertisement
bondarev_79

Зачёт

May 28th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int const Max = 2;                                                // Максимальная степень полинома
  7.  
  8. class Polynomial
  9. {
  10. public:
  11.     double *coefficients = new double[Max];                       // Массив коэффициентов
  12.  
  13.     Polynomial()                                                  // Конструктор, проставляющий нули по умолчанию
  14.     {
  15.         for (int i = 0; i < Max + 1; i++)
  16.         {
  17.             coefficients[i] = 0;
  18.         }
  19.     }
  20.  
  21.     void input()                                                  // Заполнение массива коэффициентов
  22.     {
  23.         for (int i = 0; i < Max + 1; i++)
  24.         {
  25.             cout << "Введите " << i << "-ую степень" << endl;
  26.             cin >> coefficients[i];
  27.         }
  28.     }
  29.  
  30.     double value(double y)                                        // Значение в точке
  31.     {
  32.         double result = 0;
  33.         for (int i = 0; i < Max + 1; i++)
  34.         {
  35.             result = result + (coefficients[i] * pow(y, i));
  36.         }
  37.         return result;
  38.     }
  39.  
  40.     void show()                                                    // Вывод полинома
  41.     {
  42.         for (int i = 0; i < Max + 1; i++)
  43.         {
  44.             cout << "+(" << coefficients[i] << ")(x^" << i << ")";
  45.         }
  46.         cout << endl;
  47.     }
  48.  
  49.     Polynomial operator*(double b)                                 // Умножение полинома на число
  50.     {
  51.         Polynomial result;
  52.         for (int i = 0; i <= Max; i++)
  53.         {
  54.             result.coefficients[i] = coefficients[i] * b;
  55.         }
  56.         return result;
  57.     }
  58.  
  59.     Polynomial operator+(Polynomial obj)                          // Сумма полиномов
  60.     {
  61.         Polynomial result;
  62.         for (int i = 0; i <= Max; i++)
  63.         {
  64.             result.coefficients[i] = coefficients[i] + obj.coefficients[i];
  65.         }
  66.         return result;
  67.     }
  68.  
  69.     Polynomial operator-(Polynomial obj)                         // Разность полинов
  70.     {
  71.         Polynomial result;
  72.         for (int i = 0; i <= Max; i++)
  73.         {
  74.             result.coefficients[i] = coefficients[i] - obj.coefficients[i];
  75.         }
  76.         return result;
  77.     }
  78.  
  79.     Polynomial operator* (Polynomial obj)                         // Произведение полиномов                      
  80.     {
  81.         Polynomial result;
  82.         for (int i = 0; i < Max + 1; i++)
  83.         {
  84.             for (int j = 0; j < Max + 1; j++)
  85.             {
  86.                 result.coefficients[i + j] += coefficients[i] * obj.coefficients[j];
  87.             }
  88.         }
  89.         return result;
  90.     }
  91.  
  92. };
  93.  
  94. int main()
  95. {
  96.     setlocale(LC_ALL, "ru");
  97.     Polynomial Polynomial1, Polynomial2;                                    // Создаем два полинома
  98.     Polynomial1.input();                                                    // Вводим коэффициенты первого полинома
  99.     Polynomial2.input();                                                    // Вводим коэффициенты второго полинома
  100.     cout << Polynomial1.value(1) << endl;                                   // Значение полинома в точке
  101.     (Polynomial1 * Polynomial2).show();                                     // Произведение полиномов (степени выше Max игнорируются)
  102.     (Polynomial1 - Polynomial2).show();                                     // Разность полиномов
  103.     (Polynomial1 * 2).show();                                               // Умножение на многочлен
  104.     (Polynomial1 + Polynomial2).show();                                     // Сумма полиномов
  105.     return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement