1. Лучший говнокод

    В номинации:
    За время:
  2. Assembler / Говнокод #13931

    +129

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    product:
    .LFB34:
            .cfi_startproc
            xor     eax, eax
            test    esi, esi
            je      .L7
            lea     eax, [rsi-1]
            mov     edi, edi
            add     rax, 1
            imul    rax, rdi
    .L7:
            rep
            ret
            .cfi_endproc

    Оптимизациия умножения через рекурсию. Сишный код:

    inline unsigned long int product_0(const unsigned int a, const unsigned int b, const unsigned long int tmp)
    {
    if (b == 0) return tmp;
    return product_0(a, b-1, tmp+a);
    }

    unsigned long int product(const unsigned int a, const unsigned int b)
    {
    return product_0(a, b, 0);
    }

    Распознать умножение (imul) в этой рекурсивной хрени компилятор смог, но при этом как-то через жопу, нагенерировав при этом много лишнего говна.
    gcc version 4.5.1

    j123123, 12 Октября 2013

    Комментарии (69)
  3. SQL / Говнокод #13755

    −155

    1. 1
    CASE WHEN ((b.k_vts_pre = null) OR (b.k_vts_goz_pre = null) OR (b.k_vts_relative_pre = null)) THEN null ELSE (b.k_vts_pre + b.k_vts_goz_pre + b.k_vts_relative_pre)/3 END

    Один наш сотрудник проявил старание, достойное лучшего применения. В PostgreSQL можно так сравнивать с NULL, если настройка transform_null_equals=on. Но, во-первых, она у нас, как и по умолчанию, off, а во-вторых, зачем вообще?

    torbasow, 09 Сентября 2013

    Комментарии (69)
  4. C++ / Говнокод #13594

    +77

    1. 1
    float tlen = sqrtf(top[0]*top[0]+top[1]*top[1]+top[2]*top[2]);

    Всё в мире тлен и безысходность. В том числе и код.

    Sauron, 10 Августа 2013

    Комментарии (69)
  5. C++ / Говнокод #13411

    +11

    1. 1
    2. 2
    const listee* const nullablya = static_cast<listee*>(lst1);
    if(nullablya == NULL)

    LispGovno, 12 Июля 2013

    Комментарии (69)
  6. C# / Говнокод #12865

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    q = Convert.ToString(a.ToString() + b.ToString() + c.ToString() + d.ToString() + f.ToString() + g.ToString() + h.ToString() + j.ToString() + k.ToString() + l.ToString());
    
    int a = int.Parse(textBox2.Text[0].ToString());
    int b = int.Parse(textBox2.Text[1].ToString());
    int c = int.Parse(textBox2.Text[2].ToString());
    int d = int.Parse(textBox2.Text[3].ToString());
    int f = int.Parse(textBox2.Text[4].ToString());
    int g = int.Parse(textBox2.Text[5].ToString());
    int h = int.Parse(textBox2.Text[6].ToString());
    int j = int.Parse(textBox2.Text[7].ToString());
    int k = int.Parse(textBox2.Text[8].ToString());
    int l = int.Parse(textBox2.Text[9].ToString());
    
    Random rnd = new Random();
    int a = rnd.Next(0, 2);
    int b = rnd.Next(0, 2);
    int c = rnd.Next(0, 2);
    int d = rnd.Next(0, 2);
    int f = rnd.Next(0, 2);
    int g = rnd.Next(0, 2);
    int h = rnd.Next(0, 2);
    int j = rnd.Next(0, 2);
    int k = rnd.Next(0, 2);
    int l = rnd.Next(0, 2);
    
    private void DoWork(int a, int b, int c, int d, int f, int g, int h, int j, int k, int l)
    
    private void ResetState()
    {
          pictureBox5.Visible = false;
          pictureBox6.Visible = false;
          pictureBox7.Visible = false;
          pictureBox8.Visible = false;
          pictureBox9.Visible = false;
          pictureBox2.Visible = false;
          pictureBox3.Visible = false;
          pictureBox4.Visible = false;
          pictureBox10.Visible = false;
          pictureBox11.Visible = false;
          pictureBox12.Visible = false;
          pictureBox13.Visible = false;
          pictureBox14.Visible = false;
          pictureBox15.Visible = false;
          pictureBox16.Visible = false;
          pictureBox17.Visible = false;
          pictureBox18.Visible = false;
          pictureBox19.Visible = false;
          pictureBox20.Visible = false;
          pictureBox27.Visible = false;
          pictureBox28.Visible = false;
          pictureBox29.Visible = false;
          pictureBox31.Visible = false;
          pictureBox32.Visible = false;
          pictureBox33.Visible = false;
          pictureBox34.Visible = false;
          pictureBox35.Visible = false;
          pictureBox36.Visible = false;
          pictureBox30.Visible = false;
          label2.Visible = false;
          label4.Visible = false;
          textBox2.Clear();
          textBox1.Clear();
    }
    
    
    if (((b == 0 && (a == 1)) || ((b == 0) && (a == 0)) || ((b == 1) && (a == 0)) || ((b == 1) && (a == 1))))
    {
    if ((b == 0) && (pictureBox3.Visible)) { pictureBox6.Visible = Enabled; }
    if ((b == 0) && (pictureBox2.Visible)) { pictureBox5.Visible = Enabled; } 
    if ((b == 1) && (pictureBox2.Visible)) { pictureBox6.Visible = Enabled; pictureBox4.Visible = Enabled; }
    if ((b == 1) && (pictureBox3.Visible)) { pictureBox5.Visible = Enabled; pictureBox4.Visible = Enabled; } 
    }
    
    //желательно чтоб здесь была пауза
    
    
    if (((c == 0 && (pictureBox5.Visible)) || ((c == 0) && (pictureBox6.Visible)) || ((c == 1) && (pictureBox5.Visible)) || ((c == 1) && (pictureBox6.Visible))))
    {
    if ((c == 0) && (pictureBox5.Visible)) { pictureBox7.Visible = Enabled; }
    if ((c == 0) && (pictureBox6.Visible)) { pictureBox8.Visible = Enabled; }
    if ((c == 1) && (pictureBox5.Visible)) { pictureBox8.Visible = Enabled; pictureBox29.Visible = Enabled; }
    if ((c == 1) && (pictureBox6.Visible)) { pictureBox7.Visible = Enabled; pictureBox29.Visible = Enabled; } 
    }
    
    //желательно чтоб здесь была пауза
    
    if (((d == 0 && (c == 1)) || ((d == 0) && (c == 0)) || ((d == 1) && (c == 0)) || ((d == 1) && (c == 1))))
    {
    if ((d == 0) && (pictureBox7.Visible)) { pictureBox9.Visible = Enabled; }
    if ((d == 0) && (pictureBox8.Visible)) { pictureBox10.Visible = Enabled; }
    if ((d == 1) && (pictureBox7.Visible)) { pictureBox10.Visible = Enabled; pictureBox30.Visible = Enabled; }
    if ((d == 1) && (pictureBox8.Visible)) { pictureBox9.Visible = Enabled; pictureBox30.Visible = Enabled; } 
    }

    Diman3241, 09 Апреля 2013

    Комментарии (69)
  7. C++ / Говнокод #9512

    +1009

    1. 1
    mExpanded = onExpandClick ? !mExpanded : mExpanded;

    lifemaker, 22 Февраля 2012

    Комментарии (69)
  8. 1C / Говнокод #9368

    −147

    1. 1
    спВидТорговли.ДобавитьЗначение(Перечисление.ВидыТорговли.Нал,Строка(Перечисление.ВидыТорговли.Нал));

    Типовая торговля для Украины.
    Подозреваю , ШО текст датируется концом 90-х.

    Xbrut, 09 Февраля 2012

    Комментарии (69)
  9. Си / Говнокод #8124

    +146

    1. 1
    *((Point *)((Node *) result->data)->data) = *p;

    Вот это Point *, которая в void * хранится, в списке, в котором другой список хранится, в доме, который построил Джек.

    byss, 08 Октября 2011

    Комментарии (69)
  10. Java / Говнокод #7287

    +77

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    public static <T> T createInstance(String className, Object ... ctorParams)
    	{
    		Class<T> type;
    		try {
    			type = (Class <T>) Class.forName(className);
    		} 
    		catch (ClassNotFoundException e) { throw new RuntimeException(e); }
    		
    		Class <?> [] paramTypes = new Class [ctorParams.length];
    		for(int i = 0; i < ctorParams.length; i ++)
    			paramTypes[i] = (Class <?>) ctorParams[i].getClass();
    		
    		Constructor<T> ctor;
    		try {
    			ctor = type.getConstructor(paramTypes);
    		} 
    		catch (SecurityException e)    { throw new RuntimeException(e); }
    		catch (NoSuchMethodException e){ throw new RuntimeException(e); }
    		
    		T instance;
    		try {
    			instance = ctor.newInstance(ctorParams);
    		} 
    		catch (IllegalArgumentException e)  { throw new RuntimeException(e); }
    		catch (InstantiationException e)    { throw new RuntimeException(e); }
    		catch (IllegalAccessException e)    { throw new RuntimeException(e); }
    		catch (InvocationTargetException e) { throw new RuntimeException(e); }
    		
    		return instance;
    	}

    Тут само Java вынуждает говнокодить. О святая простота!

    dveyarangi, 19 Июля 2011

    Комментарии (69)
  11. C++ / Говнокод #7029

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    void AClass::registerApplication( int pCaller )
    {
      if ( mRegistry == NULL )
      {
        // we will be the first application in registry
        mRegistry = createRegistryElement( pCaller );
      }
      else
      {
        // there are other applications already registered
        // first create registry entry
        Application *lApplication = NULL;
        lApplication = createRegistryElement( pCaller );
    
        // put entry in front
        lApplication->mNext = mRegistry;
        mRegistry = lApplication;
      }
    }

    добавляем новый элемент в односвязный список. mRegister голова списка. кто не видит говна - идти читать матчасть.

    Dummy00001, 22 Июня 2011

    Комментарии (69)