Правила оформления и написания работ

Общие правила

Работы должны удовлетворять следующим требованиям:

  • Корректно обрабатывать ошибки при взаимодействии с внешним миром: ошибки ввода-вывода, некорректный пользовательский ввод и прочее. Если это произошло – необходимо вывести сообщение об ошибке (на английском языке) и завершить исполнение с ненулевым кодом возврата.

  • Программа никогда не должна падать. Падение – признак ошибок в реализации.

  • Программа не должна содержать лишних сущностей: закомментированных больших участков кода, неиспользуемых переменных и функций и тому подобное. Это засоряет код и увеличивает время проверки.

  • Должно присутствовать разумное разделение на файлы и правильно сформированные заголовочные файлы с минимальными зависимостями. Неразумное разделение неблагоприятно влияет на состояние проверяющего, что также увеличивает время проверки.

Результат выполнения лабораторной работы – консольная программа, обрабатывающая параметры командной строки и использующая стандартные потоки ввода и вывода. Тестирование заданий не предусматривает интерактивного взаимодействия. Ошибки входных данных должны немедленно обрабатываться, так как исправлять ввод при неинтерактивном взаимодействии невозможно.

При успешном выполнении программа возвращает код 0. Если же что-то пошло не так, то она сообщает о проблеме через ненулевой код возврата (exit code) и сообщение об ошибке в поток вывода ошибок. Если программа неожиданно завершается с "не вашим" кодом возврата, то полезную информацию о возможных причинах можно найти, например, на сайте.

За что можно потерять баллы

Кроме правильности результата будет учитываться скорость работы программы. То есть, если проверяющий не дождался за разумное время завершения работы программы, то тест будет считаться не пройденным.

В программе можно использовать только стандартные библиотеки и заголовочные файлы. Например, <bits/stdc++.h> таковым не является и его использование влечёт за собой потерю баллов.

Если программа использует функции, которые явно не объявлены в файле с исходным кодом (например, функции из <algorithm> без подключения <algorithm> и пр.), то за это также будут снижаться баллы (даже если у вас всё работает).

Last updated