Казалось бы, задача проще некуда, из тех, что сможет сделать даже студент-первокурсник. Но нет.
Мы с паре с моим непосредственным начальником разрабатывали участок кода, связанный с отрисовкой изображения. В какой-то момент возникла необходимость построить по двум точкам прямоугольник со сторонами, параллельными осям. Понятно, что для этого нужно проверить, что пары x и y-координат упорядочены, и обменять их, если это условие не выполнено. Я, не долго думая, написал следующий код:
int t = y1; y1 = t; y2 = y1;
Мы запустили тестовое приложение и поняли, что что-то пошло не так. Мой начальник сказал: «А, ясно, да ты тут ошибся в обмене!» — и исправил мои три строчки на вот такой вариант:
int t = y2; y1 = t; y2 = y1;
Программа снова не заработала. Тут мы наконец остановились и поняли, что оба не смогли с первого раза правильно написать обмен двух переменных. Для очистки совести мы подозвали коллегу и попросили его быстро, не проверяя себя, написать на бумажке решение злополучной задачи. Вот что у него получилось:
int t = y2; y1 = y2; y2 = t;
Поиск ошибок в вышеприведённых примерах, а также правильного решения задачи мы оставим читателю в качестве самостоятельного упражнения.
Редакция от 15 октября 2009
Тэги: c#, wtf, работа
Комментарии (2)
← | Фоннатеги | Кузинатра | → |