lab·khorost Потоки

Платформа

Как это работает

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

Отправка

Решение можно написать прямо в браузере или загрузить архивом. Присылать нужно только те файлы, которые названы в тренажёре, — остальное платформа не примет: рядом с вашим кодом лежат скрытые тесты, и подменять их нельзя.

Черновик сохраняется: если закрыть вкладку и вернуться, текст будет на месте. Это не отправка — балл за черновик не ставится.

«Проверить сборку» и «Отправить» — разные кнопки

Проверить сборку — компилирует ваш код и показывает ошибки компилятора. Попытку не тратит, тесты не запускает. Это замена компилятора под рукой, когда его нет.

Отправить — настоящая проверка: тратит попытку, гоняет скрытые тесты, ставит балл.

Пользуйтесь первой, пока код не собирается, и второй — когда собирается.

Попытки

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

Ограничение существует не ради экономии, а ради вас: платформа не должна заменять размышление. Пять отправок подряд с мелкими правками почти всегда означают, что стоит остановиться и перечитать условие.

Если запас кончился раньше, чем тренажёр решён, — напишите преподавателю.

Что означают статусы

  • в очереди — работа принята и ждёт свободного места. В обычное время это секунды.
  • проверяется — идёт прогон. Рядом виден отсчёт до предела: если тренажёр не уложится, проверка прервётся.
  • passed — все проверки прошли.
  • failed — часть проверок не прошла. Балл при этом может быть ненулевым: смотрите разбор по проверкам.
  • error — проверка не состоялась: решение не собралось или прогон оборвался. Это не «ноль за попытку», а «не получилось проверить»; чаще всего дело в ошибке компиляции.
  • timeout — прогон не уложился в отведённое время. Обычно это бесконечный цикл или забытая блокировка, а не медленный компьютер: время отмерено с большим запасом.

Откуда берётся балл

Тренажёр состоит из проверок — групп тестов, у каждой свой вес. Балл считается по долям пройденного:

балл = Σ(вес × прошло/всего) ÷ Σ(весов) × 100

Веса расставлены по существу, а не по объёму работы: проверка, за которой стоит настоящий дефект, весит больше, чем проверка на аккуратность.

Некоторые проверки идут «всё или ничего»: половина пройденных тестов даёт ноль. Так отмечены свойства, у которых не бывает половины, — например, «подстановка в запрос невозможна» или «битые данные не роняют разбор». Частичный балл за них означал бы балл за уязвимость.

В разборе работы видно, какие проверки прошли, а какие нет. Текст самих тестов не показывается: он часть тренажёра.

Звёздные тренажёры

Помечены звездой, сложнее обычных и необязательны. В прогресс курса не входят, балл за них идёт отдельной корзиной — поэтому итог выглядит как «370/220»: первое число включает звёздные баллы, второе — обязательную часть.

Сданное звёздный тренажёр навсегда поднимает ваш недельный потолок попыток.

Версии тренажёров

Условие тренажёра привязано к версии. Если преподаватель поправит формулировку, ваша уже сданная работа останется проверенной по той версии, по которой сдавалась. Поэтому условие никогда не меняется «под» отправленным решением.

Если что-то не так

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

Правила пользования — на отдельной странице. Там же о том, что платформа считает попыткой обойти проверку.