Когда-то в девяностые года америкнацы запускали некий девайс к Марсу.
Межпланетная станция промахнулась на несколько десятков тысяч километров
и улетела "бороздить просторы Большого театра", потому что группа
программистов, разрабатывающих алгоритм подлета, меряли массу в фунтах,
а те, кто писали программу для выхода на орбиту - в килограммах... :)
Идиоты? А я вам сейчас про наших расскажу... :)
Не далее как на прошлой неделе один знакомый, имеющий отношение к
разработке управляемых со спутника крылатых ракет, поведал мне весьма
занимательную историю... Техническое задание состояло в следующем: нужно
было с подлодки где-то в северных морях ракетой поразить цель на
Камчатке. Естественно, на эмуляторе, потому что ракета, слава Богу, еще
только в чертежах существует. Но программы управления ракетами -
реальные. И вот, проги написаны, начальство позвано, идет отчет о
проделанной работе. Ракеты летают, цели поражаются, начальство
поглаживает усы, программисты предвкушают премию :) И тут одному
"товарищу генералу" пришло в голову попросить разместить в эмуляторе
подлодку на камчатке, а цель - где-то в районе Мурманска... Старт! Хуй!
Ракета под молчаливыми взорами офигевших генералов и еще более офигевших
программеров как ни в чем ни бывало летит в сторону злобных буржуинов, и
через несколько минут падает в окрестности какого-то канадского городка
:)
Естественно, последовал глобальный разнос и последующий "разбор
полетов". А дело было вот в чем - при полете по вращению Земли меридиан
постоянно увеличивается, а против - уменьшается. В программе,
естественно, надо было вычитать новые координаты из старых и в одном
случае получались положительные числа, а в другом - отрицательные... Так
вот группа программистов, которая писала глобальную систему управления
ракетой, использовала один формат представления отрицательных двоичных
чисел, а другая, которая создавала обработчики ошибок и программу
маневра по курсу и высоте - другой формат! :)
Остается лишь отдать должное случаю, что ошибку обнаружили на стадии
отладки :) А то бы трындец Америке :)