В этом параграфе мы расскажем, какие возможности предлагает хендбук, как по нему обучаться и отслеживать свой прогресс.
О хендбуке
Хендбук — это цифровой учебник, который содержит теорию и практические задания с автопроверкой.
Вы можете проходить его как самостоятельный курс, изучая параграф за параграфом последовательно, или же пользоваться им как справочником, чтобы освежить знания.
Основная ценность цифрового учебника (в отличие от бумажного) — актуальная информация: мы будем обновлять материалы по мере устаревания знаний и добавлять новые задачи.
А чтобы быть в курсе свежих изменений — советуем вам подписаться на обновления или вступить в комьюнити учебника.
Мы стараемся постоянно улучшать контент, опираясь на знание своей аудитории. Давайте познакомимся?
Как читать хендбук
Если вы проходите курс последовательно, может быть полезным "оставить закладку" там, где вы остановились.
Для этого вы можете отмечать главы, как прочитанные в конце параграфа:

Это отразится на странице содержания и в прогресс-баре хендбука:

А если вам нужно быстро найти какую-то тему или понятие — вы можете воспользоваться поиском:

И навигацией внутри страниц:

В конце каждого параграфа вы можете перейти в комьюнити, чтобы обсудить тему или задачи к ней, а также перейти к самим задачам:

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

Описание задачи включает:
-
Условие.
-
Формат и примеры ввода/вывода.
В блоке «Формат ввода» описаны данные, аналогичные тем, что будут переданы в вашу программу при автоматической проверке задания. Конкретный пример входных данных можно посмотреть в поле «Пример → Ввод».
В поле «Пример → Вывод» показан результат, который ожидается от вашей программы при правильной обработке данных, указанных в поле «Пример → Ввод».
-
Ограничения по памяти и времени, в которые должна уложиться ваша программа.

Отправить решение можно через поле редактора, либо загрузив файл с вашей программой в систему.

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

В зависимости от результата проверки вы увидите статус:
- Решена полностью — ваше решение успешно скомпилировалось и прошло все тесты.
- Решена неверно — код не компилируется или не проходит тестирование.
Как понять в чем ошибка?
Чтобы узнать детали проверки, нужно перейти внутрь посылки:

Здесь вы увидите вердикт по решению. Вот некоторые варианты вердиктов:
-
OK — решение прошло все тесты.
-
CE (Compilation Error) — ошибка компиляции, в программе допущена синтаксическая или семантическая ошибка.
В этом случае разобраться поможет отчет об ошибке в блоке «Лог компиляции»:
Система подскажет, какого рода ошибка присутствует в коде, и в какой строке она находится.
-
WA (Wrong Answer) — ваша программа выдала неправильный результат на одном из тестов.
Для тестов из примеров отображается ввод, вывод вашей программы, вывод чекера (системы проверки ответа) и правильный ответ. Это поможет с отладкой вашей программы.
Мы не раскрываем другие тестовые данные. Попробуйте самостоятельно рассмотреть различные нетривиальные варианты входных данных и проверить, как на них отрабатывает ваше решение. Это поможет вам научиться тестировать свой код самостоятельно.
-
RE (Runtime Error) — ошибка выполнения. Например, это может быть ошибка выхода за границы массива или необработанные исключения.
-
TL (Time Limit) — на одном из тестов решение работает слишком долго.
-
ML (Memory Limit) — на одном из тестов решение потребляет слишком много памяти.
Подробный список ответов проверяющей системы можно посмотреть здесь.
В случае, если вы чувствуете, что вам необходима поддержка и взгляд со стороны, попробуйте обсудить задачу с участниками комьюнити хендбука.
Желаем вам успешного обучения!