Реализованы все задачи из спика заданий:
1) Определить тип данных Polynom – представление полиномов от одной
переменной - x. Для представления можно, например, использовать
списки. Полином в виде списка можно представить как список
коэффициентов или как список пар чисел – (коэффициент,
степень).
Например, полином 2+x^3 будет иметь представление [2,0,0,1] в
первом случае и [(2,0), (1,3)] – во втором.
Во втором случае все операции будут реализовываться гораздо проще,
если поддерживать инвариант представления, гарантирующий, что все
пары упорядочены по возрастанию степеней.
2) Реализовать операции над полиномами: PolyAdd – сложение, PolySub
– вычитание, PolyMul – умножение.
3) Реализовать функцию PolyEval(Polynom,num) – значение полинома в
точке. Например, PolyEval(1+x^2,2) = 1+2^2 = 5
4) Реализовать функцию преобразования полинома в строку
PolyToStr.
Например, для первого представления, PolyToStr([1,
-2,0,1])="1-2*x+x^3"
5) Реализовать функцию дифференцирования полинома DerivePoly
Например, для первого представления, DerivePoly([1,
-2,2,1])=[-2,4,3]
6) Реализовать функцию преобразования строки в полином
PolyFromStr.
Например, для первого представления,
PolyFromStr("1-2*x+x^3+-3*x")=[1, -5,0,1]
7) Упростить выражение ( (1+x+2*x^2-3*x^3+4*x^4-5*x^5)*(
6+5*x+4*x^2+3*x^3+2*x^4+x^5)-(1+x+x^2+x^3+x^4) )'
Для реализации выбран вариант с простыми списками (список
коэффициентов)