Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int const Max = 2; // Максимальная степень полинома
- class Polynomial
- {
- public:
- double *coefficients = new double[Max]; // Массив коэффициентов
- Polynomial() // Конструктор, проставляющий нули по умолчанию
- {
- for (int i = 0; i < Max + 1; i++)
- {
- coefficients[i] = 0;
- }
- }
- void input() // Заполнение массива коэффициентов
- {
- for (int i = 0; i < Max + 1; i++)
- {
- cout << "Введите " << i << "-ую степень" << endl;
- cin >> coefficients[i];
- }
- }
- double value(double y) // Значение в точке
- {
- double result = 0;
- for (int i = 0; i < Max + 1; i++)
- {
- result = result + (coefficients[i] * pow(y, i));
- }
- return result;
- }
- void show() // Вывод полинома
- {
- for (int i = 0; i < Max + 1; i++)
- {
- cout << "+(" << coefficients[i] << ")(x^" << i << ")";
- }
- cout << endl;
- }
- Polynomial operator*(double b) // Умножение полинома на число
- {
- Polynomial result;
- for (int i = 0; i <= Max; i++)
- {
- result.coefficients[i] = coefficients[i] * b;
- }
- return result;
- }
- Polynomial operator+(Polynomial obj) // Сумма полиномов
- {
- Polynomial result;
- for (int i = 0; i <= Max; i++)
- {
- result.coefficients[i] = coefficients[i] + obj.coefficients[i];
- }
- return result;
- }
- Polynomial operator-(Polynomial obj) // Разность полинов
- {
- Polynomial result;
- for (int i = 0; i <= Max; i++)
- {
- result.coefficients[i] = coefficients[i] - obj.coefficients[i];
- }
- return result;
- }
- Polynomial operator* (Polynomial obj) // Произведение полиномов
- {
- Polynomial result;
- for (int i = 0; i < Max + 1; i++)
- {
- for (int j = 0; j < Max + 1; j++)
- {
- result.coefficients[i + j] += coefficients[i] * obj.coefficients[j];
- }
- }
- return result;
- }
- };
- int main()
- {
- setlocale(LC_ALL, "ru");
- Polynomial Polynomial1, Polynomial2; // Создаем два полинома
- Polynomial1.input(); // Вводим коэффициенты первого полинома
- Polynomial2.input(); // Вводим коэффициенты второго полинома
- cout << Polynomial1.value(1) << endl; // Значение полинома в точке
- (Polynomial1 * Polynomial2).show(); // Произведение полиномов (степени выше Max игнорируются)
- (Polynomial1 - Polynomial2).show(); // Разность полиномов
- (Polynomial1 * 2).show(); // Умножение на многочлен
- (Polynomial1 + Polynomial2).show(); // Сумма полиномов
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement