77716.fb2 Bash.org.ru IT Happens Истории ## 1201 - 1300 - читать онлайн бесплатно полную версию книги . Страница 61

Bash.org.ru IT Happens Истории ## 1201 - 1300 - читать онлайн бесплатно полную версию книги . Страница 61

#1260: ...а в военное время достигает четырёх

13:00 17.09.2009, IT happens

 

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

 

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

 

long double a1, a2;

a1 = PI / 2 + alp;

a2 = PI / 2 - alp;

 

После выполнения оказывается, что и a1, и a2 меньше, чем 1,57. Долго думали. Ещё думали. В итоге посмотрели в начало кода:

 

const int PI = 3.1415926535897932384626433832795;

 

Вот уж действительно: «Для простоты вычислений примем Пи равным трём»...