Задачи

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

Eolymp предлагает гибкие инструменты для создания задач и поддерживает импорт задач из внешних источников:

Основные концепции

Условие задачи

Условие задачи — это подробное описание задачи, которую должны решить участники. Оно включает цель задачи, ограничения, формат входных и выходных данных, а также другие важные детали, такие как примеры входных и выходных данных. Чётко и хорошо структурированное условие критически важно, так как оно предоставляет участникам всю необходимую информацию для решения задачи. Условия можно писать в форматах Markdown или LaTeX для поддержки форматирования и математических выражений.

Шаблоны кода

Шаблоны кода — это заранее подготовленные фрагменты кода, которые предоставляют участникам отправную точку для решения задачи. Эти шаблоны обычно обрабатывают базовые элементы, такие как чтение входных данных и подготовка вывода, что позволяет участникам сосредоточиться на реализации основной логики решения. Вы можете создавать шаблоны для разных языков программирования, чтобы упростить процесс программирования для участников.

Тестирование

Ключевая функция системы Eolymp — это автоматическая оценка решений, отправленных пользователями. После того как участник отправляет решение, платформа компилирует код и выполняет его на серии тестов, чтобы проверить, правильно ли работает алгоритм.

Тесты

Тесты — это основные элементы процесса оценки. Каждый тест состоит из входных данных и ожидаемого результата (правильного вывода).

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

Наборы тестов

Наборы тестов — это группы тестов, которые позволяют организовать проверку задачи по подзадачам, каждая из которых имеет свои настройки оценки и ограничения. Например, у вас может быть простой набор тестов для проверки базовой функциональности и сложный набор тестов для проверки граничных случаев или больших данных. Каждый набор тестов может иметь свои ограничения по времени, использованию процессора и памяти.

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

Чекеры

Чекер — это программа, которая сравнивает вывод, сгенерированный решением участника, с ожидаемым результатом. Eolymp предоставляет встроенные чекеры для распространённых случаев (например, побайтовое сравнение или сравнение токенов), но вы также можете создать собственные чекеры для более сложной проверки вывода.

Интеркаторы

Интерактор — это специальная программа, которая взаимодействует с решением участника во время его выполнения. Вместо того чтобы просто подавать статичные входные данные, интерактор может "общаться" с программой, читая её вывод и предоставляя дополнительные входные данные на основе ответов программы. Это позволяет создавать задачи, где динамическое взаимодействие является частью процесса решения.

Классический пример задачи с интерактором — это игра, где программа пытается угадать число, а интерактор даёт обратную связь (например, "слишком мало" или "слишком много") после каждой попытки.