bash.im ithappens.me zadolba.li
4930

Остановите у переезда

Краткое техзадание: на рельсах стоит тележка. Мотор тележки понимает только три команды: «вперёд», «назад» и «стоп». Мотор включается, если в серийном порту есть сигнал, и работает, пока сигнал не пропадёт. Тележка очень тяжёлая, и мотор, который её двигает, разгоняется и останавливается с ощутимой задержкой: процесс разгона-торможения может занимать до десяти секунд. При этом скорость движения тележки в разных местах пути разная: и окалина может быть на рельсах, и масло разлитое, и кирпич бесхозный. Заказчик хочет, чтобы компьютер сам мог поставить тележку в нужном месте.

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

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

— Вот за два дёрга туда-сюда позиция X плюс-минус пять сантиметров есть всегда, а точно X получается, только если повезёт, или после десятка включений мотора.
— Ты, балбес, в техзадание заглядывал? Оно и видно, что только заглядывал. Ты где там видел запрос на точность в ноль сантиметров? Это ж транспортники, они же «тележкой» тепловоз называют. Чтобы подать хоппер под погрузку, точность нужна всего до метра!