- Реализовать предложенные задачи. Лабораторная работа считается выполненной, если команда реализовала все задачи.
- Задачи 2-7 оформляются как отдельные пулл-реквесты.
- Пулл-реквест для задачи 2 и 3 команда вливает в основную ветку самостоятельно, до выполнения остальных задач. Остальные пулл-реквесты вливаются только после проверки и принятием преподавателем.
- Задачи 4-7 реализуются как отдельные статические библиотеки и тестирующие программы.
- Создать репозиторий на github.com или на gitverse.ru.
- В основной ветке должен присутствовать README.md со списком участников команды и наименованием группы.
- Убедиться, что все участники команды имеют доступ к репозиторию
- Подготовить общий Makefile
- Предусмотреть цели для:
- очистка рабочей директории от генерируемых файлов
- проверка форматирования
- форматирование
- запуск тестов (любые файлы с суффиксом
_test)
Настроить CI для:
- Проверка форматирования
- Запуск тестов
Реализовать функцию нахождения вещественных корней квадратного уравнения. Если корней несколько, то корни возвращаются из функции отсортированными по возрастанию.
Проверить работу функции при следующих ситуациях:
- При нулевом коэффициенте
a предусмотреть невозможность вычисления значений корней.
- При коэффициентах
a = 1, b = 0, c = -1, которые задают положительный дискриминант, функция возвращает список из двух вещественных корней: [-1, 1].
- При коэффициентах
a = 1, b = 0, c = 0, которые задают нулевой дискриминант, функция возвращает список из одного вещественного корня: [0]
- При коэффициентах
a = 1, b = 0, c = 1, которые задают отрицательный дискриминант, функция возвращает пустой список вещественных корней: []
- При коэффициентах
a = 1, b = 0, c = -1E-7, функция возвращает список из двух вещественных корней: [-3E-4, 3E-4], с точностью до 4 знака.
- При коэффициентах
a = 1, b = -1E+10, c = -1, функция возвращает список из двух вещественных корней: [-1E-10, 1E+10], с точностью до 11 знака.
- При коэффициентах
a = 1, b = 0, c = -1E-8, функция возвращает список из одного вещественного корня: [0] , с точностью до 7 знака.
- Использовать метод трапеций
- Предусмотреть возможность передачи в функцию вычисления указатель на функцию одной вещественной переменной
- Проверить работу реализации
- Принять во внимание особенности работы с числами с плавающей точкой
- Реализовать операции:
- Добавить элемент: в начало, в конец, в середину (по порядковому номеру)
- Удалить элемент
- Найти элемент по порядковому номеру
- подсчёт количества элементов
- Проверить работу реализации
Реализовать операции:
- проверка стека на наличие в нем элементов
- операция вставки нового элемента
- операция удаления нового элемента.
- Проверить работу реализации
- Имеется один репозиторий на команду. Репозиторий не является форком репозитория с занятий.
- Задачи 2-7 оформлены как пулл-реквесты
- В описании PR присутствует описание задачи и ФИО исполнителя.
- Ссылка на PR отправлена в форму.
- Проверена работа реализаций (тесты).
- Удовлетворительные ответы на дополнительные вопросы.
- Linux (Ubuntu). Можно WSL
- Makefile, gcc, clang-format, GDB, Git
- http://mech.math.msu.su/~iliagri/zip/sem2book.pdf (Глава 1, 2)
- https://education.yandex.ru/handbook/algorithms/article/odnosvyaznyj-spisok, https://ru.wikipedia.org/wiki/Связный_список
- https://education.yandex.ru/handbook/algorithms/article/stek, https://ru.wikipedia.org/wiki/Стек
- https://habr.com/ru/articles/535960/
- https://www.cs.umd.edu/~srhuang/teaching/cmsc212/gdb-tutorial-handout.pdf
- https://learngitbranching.js.org/?locale=ru_RU
- https://git-scm.com/book/ru/v2
- https://docs.github.com/ru/authentication/connecting-to-github-with-ssh
- https://docs.github.com/en/actions/about-github-actions/about-continuous-integration-with-github-actions
- https://www.conventionalcommits.org/en/v1.0.0/
- https://firststeps.ru/linux/r.php?4
- https://firststeps.ru/linux/r.php?5