Skip to content

AlgorithmsDafeMipt2024/autumn_homework

Repository files navigation

Домашнее задание для 2 семестра алгоритмов и структур данных

Для удобства можно пользоваться папкой lib, все файлы из этой папки будут подключаться к любой задаче

Можно получить дополнительные баллы, если добавить интересные текстовые задачи. Необходимы текст задачи, решение и тесты. Каждая задача отдельный ПР, полчуть дополнительные баллы можно только если пулл реквест замержен в основную ветку.

Можно получить дополнительные баллы, если добавить теорию в папку doc. Делается в отдельном ПР, полчуть дополнительные баллы можно только если пулл реквест замержен в основную ветку.

Код должен быть отформатирован clang-format'ом со стилем Google

Карта проекта

  • doc - теория, которую добавляет преподаватель или студенты
  • lib - папка для ваших структур, которые вы используете во множестве задач
  • additional tasks - сюда обычно оформляются особые задания от преподавателя (как дополнительная теория, или личные задания)

Каждое задание выглядит так:

  • task_N
    • src
      • main.cpp - нужен для вашего личного тестирования результата. Для проверки он не используется
      • test.cpp - здесь в должны написать тестирование вашего алгоритма с помощью <gtest/gtest.h>
    • CMakeLists.txt
    • README.md - тут описано задание и требования к используемому алгоритму

Инструкция для работы с репозиторием

  1. Создайте fork этого репозитория
  2. Перейдите в него, и найдите зеленую кнопку Code
  3. В открывающемся списке выберите левую вкладку Codespaces
  4. Создайте новое окружение (метка "+") или откройте старое

Готово!

Советы при работе с codespaces

  • При работе с заданиями желательно создавать файлы .hpp и .cpp с заданием, причем .hpp - именно заголовочный файл, который будет импортироваться вами в test.cpp для тестирования
  • Если вы работаете через VS Code, то чтобы поменять цель сборки, нажмите Ctrl+p, и введите >CMake: Set Launch/Debug Target
  • Если при запуске тестов консоль остается пустой, проверьте что int main() внутри main.cpp соответствующего задания пуст
  • Если вся среда неожиданно зависла и очень долго пытается соединиться с сервером - попробуйте выключить интернет на 10 секунд и включить снова. Если не помогает - ищите более надежную сеть(
  • При ошибке ./googletest/src/gtest-internal-inl.h:685:: Condition !original_working_dir_.IsEmpty() failed проверьте что структура задания не нарушена: main.cpp, test.cpp

Шаблон теста:

#include <gtest/gtest.h>

Test(test_name, test_number) {
    /* code */
    ASSERT_EQ(expected_value, real_value); // лучше сравнивать что то простое, например bool и int
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published