1. C++ / Говнокод #4723

    +179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(
        (s.Find("/0")!=-1)||
        (s.Find("Log10(-")!=-1)||
        (s.Find("Log10(0")!=-1))//stupid user error
    {
    }

    Проверка, есть ли в формуле, введенной пользователем, деление на 0, логарифм от отрицательного числа или логарифм от нуля. Стиль и комментарии автора сохранены.

    Запостил: Shumway, 23 Ноября 2010

    Комментарии (13) RSS

    • Log10(-6/-1)
      Log10(0+2)
      Такого автор не ожидал :)
      Ответить
      • Это не говоря уже о дробных числах:
        Log10(0.11/0.2)
        Ответить
        • это то, что будет подпадать под условие.
          А еще может быть Log10(2-2) например.
          Ответить
    • /0 = +Inf, что такого...
      Ответить
      • а 0/0?
        Ответить
        • а 0/0 это уже маршрут по умолчанию :)
          Ответить
        • Nan же.
          Это всё не я придумываю, это стандарт такой (минусаторы, убейтесь). Вещественный сопроцессор именно такой результат и возвращает.
          Ответить
    • throw StupidDeveloperError
      Ответить
    • Было дело, я в институте писал прогу для нахождения корней нелинейных уравнений. Препод спросил: «А можешь сделать так, чтобы программа автоматически находила область определения левой части?» Я тогда ответил, что для этого нужно решать уравнение, для которого в свою очередь нужно искать область определения, для нахождения которой нужно снова решать уравнение, то есть рекурсия детектед. Короче, отправил я его в /dev/null.

      Теперь думаю, а не такой ли говнокод пытались из меня выжать...
      Ответить
    • /(0) еще, но удивляет сам подход - это ж надо было додуматься до такого.
      полагаю, аффтар поставил затычки на те ошибки ввода, что часто бывают.
      100% говнокод.
      Ответить
    • вай-вай, я не могу написать число с ведущим нулем?
      Ответить
    • Это 5! Нет, 10!! Нет, Log(0)!!!
      Ответить

    Добавить комментарий