Правила оформления и написания работ
Основные правила
Обработка ошибок
Все ошибки (например, некорректный ввод) должны обрабатываться.
При возникновении ошибки программа выводит сообщение на английском языке в stderr и завершается с ненулевым кодом возврата.
Падение программы (необработанные исключения, аварийное завершение) недопустимо.
Завершение без должной отчистки ресурсов (утечки памяти, выход через
exit, ...) недопустимо.
Чистота кода
Запрещены:
Закомментированные блоки кода.
Неиспользуемые переменные и функции.
Избыточные зависимости между модулями.
Требуется логичное разделение на файлы с минимальными зависимостями.
Формат программы
Результат работы – консольное приложение, обрабатывающее аргументы командной строки.
Ввод/вывод осуществляется через файловые потоки. Интерактивный режим не поддерживается.
Успешное выполнение – код возврата 0, ошибки – ненулевой код + сообщение в stderr.
Список кодов завершения – febooti.com.
Критерии оценки
Чистый, эффективный и отказоустойчивый код – ключевое требование. Нарушение правил ведёт к снижению оценки.
Обязательные требования
Программа должна соответствовать языку и стандартам, указанному в задании.
Решать поставленную задачу.
Использовать только стандартные библиотеки (если иное не обозначено в условии).
Корректно освобождать ресурсы (память, файлы).
Обрабатывать ошибки:
Невозможность открыть файл.
Ошибки выделения памяти.
Неверное число аргументов командной строки.
Некорректный формат данных (если не гарантируется их валидность).
Вывод данных:
Результат – только в указанный файл или stdout (согласно заданию).
Сообщения об ошибках – строго в stderr.
Дополнительные ограничения:
Запрещено создавать временные/пустые файлы при ошибках.
Макросы не должны называться DEBUG, NDEBUG и прочие стандартные макросы. Создавать свои можно.
Потеря баллов
Нечитаемый код: Код невозможно проверить на соответствие требований.
Производительность: Тест считается проваленным, если программа не завершается за разумное время.
Запрещённые библиотеки: Использование нестандартных заголовков (например,
<bits/stdc++.h>).Неявные зависимости: Программа использует функции, которые явно не объявлены в файле с исходным кодом (например, функции из
<algorithm>без подключения<algorithm>и пр.).Падение программы/завершение с неверным кодом = автоматический провал теста, даже если выводимый результат корректен.
Причины падение программы: - Необработанное исключение. - Assert. - Runtime-ошибка (выход за границы массива, обращение к null и т.д.).
Last updated