Недавно, когда я платил за электричество через инфокиоск Беларусбанка, я ошибочно ввел текущие показания счетчика на 100 единиц меньше, чем было оплачено в прошлый раз.
Результат поразительный – я чуть не оказался должен оплатить 5 760$ за 99 900 киловатт!
Спрашивается: где "защита от дурака"? Господа программисты, помните, что надпись "ПРОВЕРЯЙТЕ ПРАВИЛЬНОСТЬ ИНФОРМАЦИИ" ни к чему не обязывает пользователя, даже если вы её напишите большими жирными буквами! Лишняя, на первый взгляд, простенькая проверка введенной информации окажется совсем не лишней и спасет вас от подобного казуса.
Вы показали пример правильной программы!
ОтветитьУдалитьА вот если бы вам написали, что вы должны "-125" - вот тогда бы была ошибка :)
В принципе я тоже согласен что все правильно!.
ОтветитьУдалитьВсе абсолютно корректно, автор не подумал о том, что счетчик иногда переходит через 0 и начинает считать заново. Вот именно эту ситуацию и рассмотрела программа. Никаких ошибок нет.
ОтветитьУдалитьА я согласна с автором. Где 0, а где 9200? Лично мне, 99900 киловат и за 25 лет не использовать, а не то что за месяц :) Пользователь - это создание не разумное, и лишняя проверка данных после ручного ввода ни когда не повредит.
ОтветитьУдалитьДавайте прикинем Счетчик образно говоря 4-значный
ОтветитьУдалитьУ вас оплачено по 9900
за месяц еще 300 набежало.
Итого 0200
Ну и в чем проблема???
Я знаю про переход через ноль. Поэтому и не писал, что проверка должна быть: новое больше старого. Проверка интервалов может быть более интеллектуальная.
ОтветитьУдалитьВообще то, программа должна выдавать предупреждения, если данные подозрительные (если явно распознать ошибку нельзя). В данном случае потребление превысило среднемесячное в 200-250 раз.
Программы должны быть более умными, а программисты должны быть менее ленивыми, что бы учитывать подобные ситуации и предупреждать пользователя, что он возможно ошибся. Ведь компилятор программистам тоже не только про ошибки пишет, он еще предлагает взглянуть на warning'и и hint'ы ;)
Не в принципе я согласен, тоже ни раз так попадал, но к счастью (или сожалению) по 17*10^ у меня на карточки никогда не было =)))
ОтветитьУдалитьКашак прав. Вероятность того, что действительно будет потрачено 99 900 киловатт за месяц, файтически равна нулю.
ОтветитьУдалитьПрограммистам действительно стоит задуматься о таких случаях, и предлагать пользователям дополнительное подтверждение правильности введённой информации.
У меня тоже 17 лямов на карточке нет. Но вдруг, если бы я не заметил такую сумму, добрый банк дал бы мне кредит под оплату электроэнергии? ;)
ОтветитьУдалить