Чтобы выполнить домашнее задание, необходимо:
- Создать форк репозитория. Для этого нужно быть зарегистрированным на GitHub и нажать на кнопку Fork справа сверху, на странице репозитория. Форк — это просто копия репозитория, которая хранится на вашем аккаунте GitHub.
- Написать код, проверить, что он проходит тесты и отформатирован.
- Создать пулл-реквест в ветку
mainвашего форка и прислать ссылку на этот пулл-реквест в тг https://t.me/mchernigin. - Дождаться проверки, исправить замечания, если имеются.
- После получения разрешения, влить пулл-реквест в вашу ветку
main.
При появлении нового задания перед выполнением необходимо выполнить следующие команды:
git fetch origin
git switch -c <branch-name> # например, task1, task2, ...
git rebase origin/main
После выполнения этих команд, возможно, будет необходимо исправить конфликты. Когда конфликты будут исправлены, можно приступать!
В домашних заданиях подключена опция компилятора -Werror, переводящая
предупреждения в ошибки компиляции и не позволяющая собрать программу, если
есть хотя бы одно предупреждение.
На самом деле, далеко не во всех проектах при сборке используется данная опция, однако быть внимательным к предупреждениям — полезный навык, так как зачастую они свидетельствуют о каких-либо ошибках либо недоработках в коде.
Писать читаемый отформатированный код — так же полезный навык, программисту по жизни чаще приходится читать код, а неотформатированный код читать гораздо сложнее. Мы не требуем конкретный стиль оформления, но если ваше решение будет оформлено небрежно, проверяющий попросит это исправить.
Пользователям Linux и MacOS так же доступна утилита clang-format позволяющая
автоматически отформатировать код в нужном файле, например, для задания 1:
clang-format -i task1/main.c
Способ установки clang-format на вашу систему вы сможете найти сами на
просторах интернета.
Помимо проверки со стороны преподавателей в этом задании, как и в последующих
других, добавлены автоматические проверки прохождения тестов с помощью механизма
Github Actions (см. папку .github/workflows).
Caution
Решения, не проходящие автоматическую проверку, проверяться не будут.