int f(int x)
{
if (x==2) return 3;
if (x==3) return 2;
return x;
}
Задача по программированию
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- Tania
- Частый Гость
- Сообщения: 15
- Зарегистрирован: 17 фев 2003, 20:04
- Tania
- Частый Гость
- Сообщения: 15
- Зарегистрирован: 17 фев 2003, 20:04
Това-арищ Циник, откро-ой тайну
Това-арищ Циник, откро-ой тайну - чего надо-то было? А то ты как тот студент из анекдота - всё понимаешь, а сказать (так, чтоб мы поняли) не можешь...
- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17
Re: Тогда непонятно, в чем фишка
Подсказка, уж совсем открытым текстом:Tania писал(а):int f(int x)
{
if (x==2) return 3;
if (x==3) return 2;
return x;
}
Кто просил возвращать 10, если введено 10?
Если никто не просил, зачем мы возвращаем?
Что нужно вместо этого сделать тому, кто ввел 10?
- Гленливет
- Частый Гость
- Сообщения: 38
- Зарегистрирован: 18 фев 2003, 20:41
- Откуда: Оттава
Re: Тогда непонятно, в чем фишка
Никто не просил НЕ возвращать 10, и вообще как-то реагировать. Опытный разработчик в таком случае начинает уточнять спецификации - что, собственно, народ и сделал почти сразу же. А ты вместо ответа на вопрос начинаешь загадками говорить. Имитируешь особо трудного заказчика?Циник писал(а):Подсказка, уж совсем открытым текстом:
Кто просил возвращать 10, если введено 10?
Если никто не просил, зачем мы возвращаем?
Что нужно вместо этого сделать тому, кто ввел 10?
- Tania
- Частый Гость
- Сообщения: 15
- Зарегистрирован: 17 фев 2003, 20:04
Re: Тогда непонятно, в чем фишка
Именно, именно!Гленливет писал(а):Никто не просил НЕ возвращать 10, и вообще как-то реагировать. Опытный разработчик в таком случае начинает уточнять спецификации - что, собственно, народ и сделал почти сразу же. А ты вместо ответа на вопрос начинаешь загадками говорить. Имитируешь особо трудного заказчика?
(Швыряет в Циника гнилым помидором.)
- Гленливет
- Частый Гость
- Сообщения: 38
- Зарегистрирован: 18 фев 2003, 20:41
- Откуда: Оттава
Re: Тогда непонятно, в чем фишка
Э, э, погодь швыряться-то.Tania писал(а):(Швыряет в Циника гнилым помидором.)
В принципе, конечно, это сакраментальный вопрос: что делать в ситуациях, не предусмотренных спецификацией? Есть, очевидно, два подхода: 1) никак не реагировать; 2) реагировать сообщениями об ошибке и прочей паникой. Какой подход выбрать - зависит от конкретного случая. Может статься так, что не вмешиваться - гораздо правильнее, чем вмешиваться, ибо услужливый дурак опаснее врага. Хотя, видимо, в большинстве случаев нужно реагировать.
- Marmot
- Графоман
- Сообщения: 38448
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Тогда непонятно, в чем фишка
Так мы тут о чём базарим, о программизме или о product managemente...?
Девелопер должен спросить в любом случае, а вот product manager пускай думает, спросить клиента или нет...
Девелопер должен спросить в любом случае, а вот product manager пускай думает, спросить клиента или нет...
- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17
Re: Тогда непонятно, в чем фишка
Вот именно, товарищ.Э, э, погодь швыряться-то.
Серьезные, взвешенные слова не-мальчика.В принципе, конечно, это сакраментальный вопрос: что делать в ситуациях, не предусмотренных спецификацией? Есть, очевидно, два подхода: 1) никак не реагировать; 2) реагировать сообщениями об ошибке и прочей паникой. Какой подход выбрать - зависит от конкретного случая. Может статься так, что не вмешиваться - гораздо правильнее, чем вмешиваться, ибо услужливый дурак опаснее врага. Хотя, видимо, в большинстве случаев нужно реагировать.
Я считаю, что правильный ответ в том виде, в котором задача дана, таков:
1. Если х не 2 и не 3, то просигнализировать исключением куда следует, иначе - пойти на п.3
2. Пойти на п.5
3. Возвратить значение (5 - х)
5. Всё.
Разумеется, в реальных условиях надо попытаться уточнить задание. Если же уточнить его невозможно, или известно, что условия полны и корректны, то необходимо проверять входной параметр на допустимость. Если это не то, что желал увидеть кастомер вашего кода, ему это будет просигнализировано исключением тотчас же, а уж он просигнализирует вам, а уж вы исправите код. В обратной ситуации (вы понадеялись, что ничего проверять не надо, а на самом деле надо) кастомер может ничего не заметить на первый взгляд, что может привести к более серьезным последствиям. Мы, конечно, здесь уходим уже в область software development из чистого программирования. Ну так жизнь она такая - ничего чистого не бывает.
Спасибо всем подискутировавшим.