1. Java / Говнокод #4811

    +80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for(xi=-aGraph/2-x0;xi<aGraph/2-x0;xi++){
        if((2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-Cy)*(M*xi-Cy))>=0)
            yi=(-(2*A*K*(xi-Cx)+2*B*(M*xi-Cy))+(int)(Math.sqrt((2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-Cy)*(M*xi-Cy)))))/(2*(A*K*K+B));
        if (xi+xx>xGraph&&xi+xx<xGraph+aGraph&&-yi + yy>yGraph&&-yi + yy<yGraph+bGraph&&
                (2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-Cy)*(M*xi-Cy))>=0) {
            g.drawLine(xi + xx, -yi + yy, xi + xx, -yi + yy);
            if(m==1) 
                g.fillOval(xi + xx-1,-yi + yy-1,2,2);
        }
    }

    Запостил: dervesp, 02 Декабря 2010

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

    • не верю
      это обфускатор
      Ответить
    • У меня аж глаз задёргался.

      Вполне возможно и не обфускатор, а чья-то лаба.
      Ответить
      • Очевидно.
        Ответить
      • Если начать писать формулу в таком духе можно не остановиться и получится именно то, что получилось.
        Ответить
    • Осторожно, моск!
      Ответить
    • fillOval ахаха
      Бармен, мне водки and омаров!
      Ответить
      • http://download.oracle.com/javase/6/docs/api/java/awt/Graphics.html#fillOval%28int,%20int,%20i nt,%20int%29
        Ответить
    • Марсиане тоже пишут на пыхпых
      Ответить
    • А попробуйте запрограммировать какую-нибудь сложную формулу, точно такое же получится. Зато легко проверять, правильно ли записана формула
      Ответить
      • у меня такой поебени не получается, что я делаю не так?
        Ответить
        • Я тоже что-то делаю не так. По крайней мере, я бы ввёл переменную для выражения 2*A*K*(xi-Cx)+2*B*(M*xi-Cy), которое мне глаза мозолит, да и ещё для нескольких. Это как же плохо надо к себе относиться, чтобы не лень было набирать сто раз одно и то же, к тому же рискуя сделать опечатку!
          Ответить
          • > чтобы не лень было набирать сто раз одно и то же
            это наследие бумажных тетрадей и меловых досок - отсутствие копипасты
            Ответить
            • просто меловых досок, в тетрадь можно засунуть копирку :)
              Ответить
              • Только если формула на несколько страниц :) В пределах страницы проблематично.
                Ответить
                • по команде Ctrl+C Зиночка вставляет копирку, по Ctrl+V -- вынимает, не пойдет такое АРМ?
                  Ответить
                  • Куда вставляет/вынимает ? Страница-то одна всего. Можно изгаляться с загибанием листа, но это ж и помять можно ... Зиночку :)
                    Ответить
              • кстати, если зафиксировать несколько мелков параллельно друг другу можно и на доске дубли делать.
                Ответить
                • http://www.drawger.com/loubrooks/shows/Pantograph.jpg
                  Ответить
                • У мела ж два конца. Можно взять две доски... поближе друг к дружке...
                  Ответить
                  • Надо быть либо очень тонким, либо брать очень длинный мел.
                    Ответить
                    • Можно использовать идею механизма пантографа. Взять три доски, две сблизить. Скрепить параллельно два мела на длинной рейке. На одной, оставшейся, доске писать одним мелом, соотв. на двух других будет копипаститься.
                      Ответить
        • А вы бы нам показали, как ваши вычисления выглядит, а мы бы оценили насколько ваши формулы более красивые и понятные, чем в коде выше.
          Ответить
          • Тут и показывать нечего. Куча одинаковых выражений -> выноси за "скобки".
            Ответить
            • С этим трудно не согласиться. Одно и тоже выражение тяжело читать (я, к стыду своему, не удосужился анализировать формулу) в разных местах, лучше определить дополнительную переменную, не думаю, что это критично по памяти.
              А если это ещё и длинное выражение, то вообще можно сэкономить на вызове операций и создании временных объектов, введя переменную (для C++, для Java не утверждаю).

              !Однако, даже оптимизированные и даже с хорошими названиями длинные формулы всегда тяжело читать, писать, понимать. И сами по себе "рябящие формулы" вряд ли можно считать "говнокодом".
              Ответить
              • рябит? копипаста прямо в строке 1 начинается же
                Ответить
                • Я смотрю и вижу мешанину из букв и звёзд. Я предпочёл прочесть комментарии о том, что там есть повторения.

                  Мой комментарий относился к тому, что все формулы рябящие и сложны для понимания и сами по себе не говнокод.
                  Ответить
                  • Нужен кэп... или автокорреляционная функция :)
                    Ответить

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