НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНВЕРСИТЕТ
ИМ. ЛОБАЧЕВСКОГО
ФАКУЛЬТЕТ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И
КИБЕРНЕТИКИ
АНАЛИТИЧЕСКОЕ ПРЕОБРАЗОВАНИЕ ПОЛИНОМОВ
ОТ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ
Исполнитель:
Гусева О.А.
Руководитель:
Баркалов К.А.
2002год
1, Введение стр.3
2.Постановка задачи стр.4
3.Описание алгоритма программы стр.5
4.Приложение стр. -
5.Список литературы стр.
ВВЕДЕНИЕ
Полиномом от многих переменных называется выражение вида
где а –числовые коэффициенты, х –имена переменных, к -количество переменных, от которого зависит полином, n-количество многочленов данного полинома.
При моделировании работы с полиномами необходимо выбрать его представления. Представления различают: канонические и нормальные, а так же плотные и разреженные.
Для удобства мы используем канонический и разреженный виды записи полинома, чтобы для сравнения равенства объектов не пришлось производить арифметические операции и не хранить нулевые коэффициенты.
Полином представляет собой последовательность одночленов. Каждый одночлен представляет собой последовательность множителей. В силу этого, основная проблема - выбрать структуру хранения для последовательности. Последовательность - линейная структура. Обновление линейной структуры наиболее эффективна в виде списков. Поэтому полиномы всегда хранятся в виде списков. Полиномы упорядочиваются по убыванию степеней мономов, тогда формой хранения удобно выбрать циклический список. Каждое звено списка соответствует моному с нулевым коэффициентом.
Звено состоит из трех полей и включает поле для хранения коэффициентов,
Поле для хранения свернутой степени и поле для хранения указателя на звено следующего по порядку монома.
Следующим после последнего звена является первое звено списка.
Первым звеном списка называется «головное» звено (голова списка),
поле свернутой степени, которого равно –1. Нулевой полином представляется только головой списка.
Структура хранения нулевого полинома.
Структура хранения полиномов.
Доступ полинома будет осуществляться динамическими таблицами. В таблицах хранятся записи одинаковой структуры, и каждая запись имеет особое поле –ключевое, с помощью которого она идентифицируется. Стандартным образом для таблицы отводится массив определенной длины. Таблица является динамической структурой, так как для нее определены операции обновления данной структуры, то есть операции вставки нового элемента процедурой New и удаление вставок Dispos.
Требуется разработать алгоритм реализации системы алгоритмических преобразований полиномов от трех переменных. Нужно реализовать следующие операции в аналитическом представлении исходных данных и результатов:
· ввод полиномов;
· вывод полиномов;
· сложение полиномов;
· вычитание полиномов;
· умножение полинома на число.
Для моделирования работы полинома выбираются объекты: полином от трех переменных с вещественными коэффициентами. Степень по каждой переменной ограничена диапазоном 0...9. При таком предположении максимально возможное количество мономов в полиноме-1000.
Для определения старшинства мономов вводится следующее правило. Во-первых, фиксируется старшинство переменных. Будем считать, что х- самая старшая переменная, затем следует –y, затем-z. Для каждого монома определяем его «свернутую степень» (индекс). Для монома x y z индекс равен А*100+В*10+С (по условию задачи А, В и С не выше 9). Старшим считается моном с большей свернутой степенью. Например,
x y старше xy z так как 310 больше 176.
Результатом программы является бесконечный цикл, который можно прервать в любой момент одним нажатием клавиши. Пользователь вводит полиномы и производит с ними необходимые ему операции (сложение, вычитание, умножение на число) и получает результат.
При разработке программы используется макромодуль POLINOM, в котором выполнены все аналитические преобразования полиномов, а также ввод и вывод полиномов, запись полинома в таблицу и удаление его из таблицы. Все это осуществляется с помощью следующих функций:POISK, NewPol, DelPol, NolPol, DelPolinom, ReadPol, WritePol, SumPol, SubtPol, MultPol.
ОПИСАНИЕ АЛГОРИТМА ПРОГРАММЫ.
Задаем бесконечный цикл, в котором выводим на экран все поставленные перед нами задачи и последнюю - выход из этого цикла, то есть программы:
1.Ввод полиномов.
2.Вывод полиномов.
3.Сложение полиномов.
4.Вычитание полиномов.
5.Умножение полинома на число.
6.Выход.
И затем с помощью case происходит реализация каждого этого пункта.
Выполняем очистку буфера клавиатуры и делаем задержку.
ЛИТЕРАТУРА.
Балло Л. В., Барышева И.В., Гергель В.П.,Гришагин В.А., Долгов Г. А., Кулакова А. П. Методы программирования: программа курса и описание лабораторных работ/ Под общей редакцией Гергеля В. П., Стронгина Р. Г. Нижний Новгород: Изд-во Нижегород. Университета, 1997.141 с. Структура хранения нулевого полинома
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.