#ifndef POLY_CALC_H #define POLY_CALC_H // Структура для представления слагаемого typedef struct { int coefficient; // коэффициент int exponent; // степень переменной } Term; // Структура для представления полинома typedef struct { Term *terms; // массив слагаемых int size; // количество слагаемых int capacity; // вместимость массива } Polynomial; typedef struct { char name; Polynomial poly; } Variable; // Инициализация полинома void init_polynomial(Polynomial *p); // Добавление слагаемого в полином void add_term(Polynomial *p, int coeff, int exp); // Сортировка слагаемых в полиноме по убыванию степени void sort_polynomial(Polynomial *p); // Освобождение памяти, занятой полиномом void free_polynomial(Polynomial *p); // Копирование полинома // Polynomial copy_poly(Polynomial *p); // Печать полинома void print_polynomial(Polynomial *p, char letter); // Возвращает копию полинома Polynomial copy_poly(Polynomial *p); // Например есть полином x+1 и терм (2,1)=2x, значит в полиноме есть // incremental (увеличиваемое), т.е. есть к чему прибавить 2x Term* exist_incremental(Polynomial *p, Term term); // Сложение одного слагаемого и полинома (вспомогательная функция) void add_term_and_poly(Polynomial *p, Term term); // Вернет сумму двух полиномов Polynomial add_polynomials(Polynomial *p1, Polynomial *p2); // Вычтет p2 из p1 и вернет разность Polynomial sub_polynomials(Polynomial *p1, Polynomial *p2); // Перемножит полиномы, вернет результат Polynomial mul_polynomials(Polynomial *p1, Polynomial *p2); // Возведение полинома в целую степень Polynomial deg_poly(Polynomial *p1, int degree); #endif