Skip to content

NastyaMortina/Lab_1.Sem_4

Repository files navigation

Команда:

  • Мортина Анастасия
  • Мамаева Ольга
  • Лупша Егор
  • Косарев Егор
  • Шушпанов Никита

Лабораторная работа 1: Алгебра полиномов

Цели и задачи

В рамках лабораторной работы ставится задача создания программных средств, поддерживающих реализацию шести видов таблиц, предназначенных для эффектривного хранения полинома, его имени и ссылки на объект соответсвующего класса:

  • неупорядоченные таблицы:
    • Линейная таблица на массиве;
    • Линейная таблица на списке;
  • упорядоенные таблицы:
    • Таблица на поисковом дереве (АВЛ или красно-черном);
    • Таблица на массиве;
  • хеш-таблицы:
    • Хеш-таблица с открытым перемешиванием;
    • Хеш-таблица со списками (метод цепочек).

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

  • ввод полинома и его имени;
  • организация хранения полинома;
  • удаление введенного ранее полинома;
  • сложение;
  • вычитание;
  • умножение;
  • деление;
  • нахождение производной при заданной переменной дифференцирования;
  • нахождение неопределенного интеграла;
  • вычисление значения полинома при заданных значениях переменных;
  • вывод полиномов и результата операций;
  • возможность получения выражения из полиномов.

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

В процессе выполнения лабораторной работы требуется использовать систему контроля версий [Git][git] и фрэймворк для разработки автоматических тестов [Google Test][gtest].

Условия и ограничения

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

  • разработака структуры хранения должна быть реализована в виде различных таблиц и ориентирована на представление полиномов от трех переменнных;
  • степени переменных полиномов не могут превышать значение 9;
  • в структуре хранения должны находиться мономы только с ненулевыми коэффициентами;
  • для организации быстрого доступа использовать упорядоченное хранение мономов (лексикографический порядок);
  • имя полинома должно быть уникально.

Список объектов

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

  • таблицы:
    • линейная на массиве;
    • линейная на списке;
    • упорядоченная на массиве;
    • на поисковом дереве (АВЛ или красно-черном);
    • хеш таблица с открытым перемешиванием;
    • хеш таблица со списками (метод цепочек).
  • список;
  • моном;
  • полином.

Список основных алгоритмов

Для работы с полиномами будут необходимы такие алгоритмы, как:

  • сложение;
  • вычитание;
  • умножение;
  • дифференцирование;
  • интегрирование;
  • вычисление в точке.

Для работы с таблицами понадобятся алгоритмы:

  • вставка;
  • удаление;
  • поиск;
  • сортировка(для упорядоченных);
  • запись/чтение в файл.

Общая структура проекта

Структура проекта:

  • gtest — библиотека Google Test с модульными тестами.
  • base — директория для размещения заголовочных файлов и тестового приложения.
  • README.md — информация о проекте, которую вы сейчас читаете.
  • Служебные файлы:
    • .gitignore — перечень расширений файлов, игнорируемых Git при добавлении файлов в репозиторий.

Используемые инструменты

  • Система контроля версий [Git][git].
  • Фреймворк для написания автоматических тестов [Google Test][gtest].
  • Среда разработки Microsoft Visual Studio 2019.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published