К РК №1 необходимо индивидуально решить ИЗ №1 по программированию на языке С в соответствии с назначенным вариантом, а также разбиться на команды, продумать идею семестровых проектов, разбить их на задачи и поделить их между участниками команды.
ИЗ1 посвящено приобретению навыков безопасной работы с памятью на языке C с использованием базовых структур данных и налаживания базовой инфраструктуры для автоматической проверки кода. В качестве результата ИЗ1 ожидается:
- грамотное разбиение проекта на файлы;
- использование безопасного стиля программирования - проверка возможных ошибок, корректное завершение программы в случае их возникновения и правильная работа с памятью;
- максимальное покрытие кода юнит-тестами;
- рабочий CI, включающий в себя автоматическую сборку проекта, статический и динамический анализ кода, прохождение линтеров и форматтеров, запуск юнит-тестов под valgrind и санитайзерами, и получение отчёта о покрытии кода тестами
- все автоматические проверки должны проходить на итоговой версии, которая проходит ревью
Вариант #49 Составить программу определения такой максимальной последовательности среди элементов заданного целочисленного массива, элементы которой являются арифметической прогрессией. Элементы последовательности функция должна вернуть через указатель-параметр, а ее длину — через возвращаемый результат.
Требования к оформлению: Программа должна быть реализована на языке C и работать для произвольных наборов входных данных (в том числе и ошибочных), вводимых пользователем с клавиатуры. Должна быть выполнена грамотная декомпозиция на функции и файлы. Помимо самой программы необходимо: – разработать набор юнит-тестов, проверяющих корректную работу реализованных функций. Обеспечить максимальное покрытие исходного кода тестами; – оформить задачу в виде Merge Request отдельной ветки в основную ветку проекта. Внимание: в основной ветке проекта никакого кода быть не должно! – развернуть CI, в рамках которого автоматизировать сборку проекта, прохождение юнит-тестов под valgrind, генерацию отчёта о покрытии кода тестами, линтера и статического анализатора исходного кода; – после прохождения всех проверок необходимо отправить код на ревью своему преподавателю; – ревью - процесс итерационный. До наступления дедлайна можно проходить несколько итераций, улучшая свою оценку. Решения после дедлайна не принимаются;