Лабораторная работа 7 для студентов курса “Программирование на основе классов и шаблонов” 2 семестра кафедры ИУ5 МГТУ им Н.Э. Баумана.
TermPolynomialЗайдите в свою локальную директорию с репозиторием для выполнения лабораторных работ. Заберите ветку с соответствующей лабораторной работой из общего репозитория:
git pull upstream
или
git pull upstream lab_7
Переключитесь на ветку с текущей лабораторной работой:
git checkout lab_7
Свяжите ветку локального репозитория с вашим удаленным репозиторием:
git push --set-upstream origin lab_7
Написать программу для ввода и обработки полиномов, состоящих из термов. Необходимо реализовать два класса:
Term — одночлен;Polynomial — полином.ОСТОРОЖНО
В работе запрещено использование контейнеров STL (vector, list и др.).
В данной работе можно использовать самостоятельно разработанный вектор из предыдущей работы.
Ввод полинома
-1;3x^2 – x^2, -3x^2 + x^2;Обратите внимание, что по заданию вы должны уметь работать со строками такого вида:
3x^2 - x^2 - 3x^2 + x ^2 + 5x^5 - 4x^3 +x^2 - 7
Пробелы расставлены в случайном порядке.
Результат разбора такой строки - полином.
В перегрузке оператора ввода необходимо:
Term;При добавлении терма допускается использовать перегрузку сложения полинома с термом.
Для разбора на термы можно использовать самостоятельно разработанный вектор из предыдущей работы или динамический массив.
ОСТОРОЖНО
Запрещено выполнять парсинг отдельного терма внутри класса
Polynomial.
Парсинг конкретного терма необходимо делегировать классуTerm.
Иными словами, полином должен только детектировать термы в строке.
TermОбщая характеристика
Класс представляет одночлен вида:
ax^n
Поля класса
coef — коэффициент;power — степень.Методы
3 -> ;3 2 -> ;3;3x;x^3;-3x^3.Polynomial.Продемонстрируйте работу с классом Term в функции main() отдельно от Polynomial.
PolynomialОбщая характеристика
Полином — это сумма одночленов.
Поля класса
Term* terms;
int size; // фактический размер
int capacity; // max выделенная память для массива
bool order; // true — по возрастанию, false — по убыванию
Требования
Методы
0;3, для представления полинома 3.Term(3, 2), для представления полинома .x.Операторы
+ — сложение;+=;- — вычитание;-=;* — умножение;*=;= - присваивание;== — сравнение;>> - ввод;<< — вывод.Продемонстрируйте работу с классом Polynomial в функции main().
Важно:
Классы
TermиPolynomialдолжны быть упакованы в отдельную статическую библиотеку.