Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЛР_ТМП.doc
Скачиваний:
7
Добавлен:
09.11.2019
Размер:
1.24 Mб
Скачать

Реализация алгоритмов обработки полиномов

1. Ввод полинома

Ввод полинома целесообразно оформить как ввод текстовой строки с формульным выражением, описывающим вводимый полином. Возможная форма задания полинома может быть выбрана следующей

P='x7y2z1+3x2z1-6y2-3z9 '

Q='-7x2z1+6y2+5'

Можно принять, что коэффициенты мономов имеют целый тип; при вводе полинома рекомендуется контролировать наличие мономов с одинаковыми степенями переменных и осуществлять приведение подобных членов.

2. Вывод полинома

Вывод полинома осуществляется обходом списка и печатью коэффициента и степеней каждого монома.

Следует отметить, что голова полинома играет роль барьера при обходе списка: цикл завершается, когда текущим звеном окажется головное звено.

Рекомендуемая форма печати полинома состоит в представлении полинома в виде текстовой строки с формульным выражением, описывающим полином. Например, полином P(x,y,z) из примера может быть представлен как строка

P(x,y,z)='x7y2z1-4x2z1-3x9+5'

3.Удаление полинома.

При удалении полинома предлагается возвращать освободившуюся память в кучу. В этом случае не образуется мусор из освободившихся звеньев.

При удалении полинома осуществляется обход списка аналогично предыдущей операции, и каждое звено возвращается в кучу.

4.Копирование полинома.

При копировании полинома сначала создается голова копии, затем обходится исходный список и к результирующему списку присоединяется новое звено (память под него выделяется из кучи), информация в которое копируется из текущего звена исходного списка:

5.Сложение полиномов.

Для сложения полиномов P и Q производится одновременный обход обоих списков, начиная с головных звеньев, по правилу слияния упорядоченных массивов. Сумма формируется на месте первого слагаемого (P). При этом, если свернутая степень текущего монома полинома Q больше свернутой степени текущего монома полинома P, то копия монома полинома Q вставляется в полином P; в полиноме Q осуществляется переход на следующее звено. Если свернутая степень текущего монома полинома P больше свернутой степени текущего монома полинома Q, то в полиноме P осуществляется переход на следующее звено. Если свернутые степени текущих мономов полиномов P и Q совпадают, то осуществляется приведение подобных членов к коэффициенту монома полинома P прибавляется коэффициент монома полинома Q. Если при этом сумма коэффициентов оказывается равной нулю, то соответствующий моном полинома P исключается из списка. В обоих списках осуществляется переход к следующему звену.

Для реализации операций вставки и удаления звеньев в односвязных списках необходимы указатели как текущего, так и предыдущего звеньев.

Процедуры и функции, реализующие операции над полиномами, рекомендуется оформить в виде отдельной библиотеки.

3. Порядок выполнения работы

  1. Получить вариант задания у преподавателя.

  2. Разработать программу.

  3. Продемонстрировать выполнение преподавателю.

  4. Оформить и защитить отчет.

4. Требования к оформлению отчета

Отчет по лабораторной работе должен содержать следующие разделы:

  • задание по лабораторной работе;

  • листинг программы;

  • выводы по проделанной работе.