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

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

    +143

    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
    void ** __attribute__((noinline)) findVoidSortMap(void ** list,void *key)
    {
        if (!list) return 0;
        if (!*list) return 0;
        unsigned int count= **(unsigned int**)list;
        char *p=(char*)*list;
        p+=4;
        Element *b=(Element *)p;
     
        long long skey=(long long)key;
     
        while (count>0) {
            void** kt=(void**)&b[count>>1];
            long long rkey=(long long)kt[0];
            if (skey==rkey) return (void**)&kt[1];
            if (skey>rkey) {b+=(count>>1)+1;count--;}
            count=count>>1;
        }
     
        return (void**)-1;
    }

    гуру осемблира на этом коде доказывал, что Эльбрус сосёт
    http://www.gamedev.ru/flame/forum/?id=196722&page=33#m481

    TarasB, 05 Января 2015

    Комментарии (45)
  3. Pascal / Говнокод #17233

    +90

    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
    Procedure ArrDataToRawImage(Ptr: PRGB32; Size: TPoint; out RawImage: TRawImage);
    Begin
    RawImage.Init; { Calls raw.Description.Init as well }
    RawImage.Description.PaletteColorCount:=0;
    RawImage.Description.MaskBitsPerPixel:=0;
    RawImage.Description.Width := Size.X;
    RawImage.Description.Height:= Size.Y;
    RawImage.Description.Format := ricfRGBA;
    RawImage.Description.ByteOrder := riboLSBFirst;
    RawImage.Description.BitOrder:= riboBitsInOrder; // should be fine
    RawImage.Description.Depth:=24;
    RawImage.Description.BitsPerPixel:=32;
    RawImage.Description.LineOrder:=riloTopToBottom;
    RawImage.Description.LineEnd := rileDWordBoundary;
    RawImage.Description.RedPrec := 8;
    RawImage.Description.GreenPrec:= 8;
    RawImage.Description.BluePrec:= 8;
    RawImage.Description.AlphaPrec:=0;
    RawImage.Description.RedShift:=16;
    RawImage.Description.GreenShift:=8;
    RawImage.Description.BlueShift:=0;
    RawImage.DataSize := RawImage.Description.Width * RawImage.Description.Height
    * (RawImage.Description.bitsperpixel shr 3);
    RawImage.Data := PByte(Ptr);
    End;

    with ... do? Не. не слышал.

    Cynicrus, 01 Декабря 2014

    Комментарии (45)
  4. JavaScript / Говнокод #17163

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function updateClock()
    {
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var seconds = date.getSeconds();
        var dateTimeString = day + "." + month + "." + year + " " + hours + ":" + minutes + ":" + seconds;
        $('#clock').html("Сейчас " + dateTimeString);
    }

    Трибьют классике.

    pushistayapodmyshka, 24 Ноября 2014

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

    +54

    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
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    using namespace std;
     
    int main()
    {
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
        long x1, x2, x3;
        cin >> x1 >> x2 >> x3;
        if(x1 == 0 && x2 == 0 && x3 == 0){
            cout << 0 << endl;
            exit(EXIT_SUCCESS);
        }
        (x1 != 0) ? cout << x1 : cout << "";
        (x2 != 0) ? (x2 > 0 && x1 != 0) ? (x2 == 1) ? cout << "+x" : cout << '+' << x2 << 'x' : (x2 == -1) ? cout << "-x" : (x2 == 1) ? cout << 'x' : (x2 == -1) ? cout << "-x" : cout << x2 << 'x' : cout << "";
        (x3 != 0) ? (x3 == 1) ? cout << 'y' : (x3 == -1) ? cout << "-y" : (x2 == 0 && x1 == 0) ? cout << x3 << 'y' :  (x3 > 0) ? (x3 == 1) ? cout << "+y" : cout << '+' << x3 << 'y' : (x3 == -1) ? cout << "-y" : cout << x3 << 'y' : cout << "";
        cout << endl;
        return 0;
    }

    Задача № 277 на acmp.ru. Решил "не писать много кода"

    jyree, 21 Сентября 2014

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

    +135

    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
    public string ExportToFile(string filename, string filepath, DataSet dsInput)
     {
         string sFlag = "Error";
         System.IO.StreamWriter sw = new StreamWriter("");
         try
         {
             if (filename.Trim() != "" && filepath != "" && dsInput.Tables[0].Rows.Count != 0)
             {
                    sw = new System.IO.StreamWriter(filepath + filename + ".xls");
                     int iCol = dsInput.Tables[0].Columns.Count;
                     for (int i = 0; i < iCol; i++)
                     {
                         sw.Write(dsInput.Tables[0].Columns[i]);
                         if (i < iCol - 1)
                         { sw.Write("\t"); }
                     sw.Write(sw.NewLine);
                     foreach (DataRow dr in dsInput.Tables[0].Rows)
                     {
                         for (int i = 0; i < iCol; i++)
                         {
                             if (!Convert.IsDBNull(dr[i]))
                             {
                                 sw.Write(dr[i].ToString());
                             }
                             if (i < iCol - 1)
                             { sw.Write("\t"); }
                         }
                         sw.Write(sw.NewLine);
                     }
                     sw.Close();
                     sFlag = "Success";
                 }
             }
             return sFlag;
         }
         catch (Exception)
         {
             return sFlag;
         }
     }

    С какого-то китайского сайта:
    http://www.datazx.cn/Forums/en-US/2d129cdc-2705-4035-90e2-063c4c399ae5/action?threadDisplayName=wpf-datagrid-remove-whitespace-from-string-on-clipboard-copy&forum=wpf
    Нафиг эксепшены, лучше вернем строку "Error"! Ну или "Success", если этот чудо-код еще и не грохнется.

    yamamoto, 05 Сентября 2014

    Комментарии (45)
  7. Си / Говнокод #16608

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
        goto fail;
    if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
        goto fail;
        goto fail;
    if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
        goto fail;

    https://www.imperialviolet.org/2014/02/22/applebug.html

    Понятно, что третий if не выполнится. Кстати, это был баг в Apple SSL/TLS, привёдший к уязвимости.

    Кстати, GCC с -Wall это не ловит. Ловит только Clang, и то только с -Wunreachable-code. Мораль: заключайте все тела ифов в блоки!

    someone, 28 Августа 2014

    Комментарии (45)
  8. C++ / Говнокод #16213

    +10

    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
    94. 94
    95. 95
    96. 96
    void MainWindow::mathFun()
    {
       if(stringBuffer->indexOf("pi") != -1)
        {
            int i = stringBuffer->indexOf("pi");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+2, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(stringArg2->toDouble() * 3.1415926));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("log") != -1)
        {
            int i = stringBuffer->indexOf("log");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(qLn(stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("sqr") != -1)
        {
            int i = stringBuffer->indexOf("sqr");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(qSqrt(stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("fac") != -1)
        {
            int i = stringBuffer->indexOf("fac");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            long long j = 1;
            for(int k = 1; k <= stringArg2->toInt(); ++k)
            {
                if(stringArg2->toInt() == 0)
                {
                    ui->lineEdit->insert(QString::number(0));
                    return;
                }
                j *= 1 * k;
            }
            stringSum->append(QString::number(j));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("pow") != -1)
        {
            int i = stringBuffer->indexOf("pow");
            stringArg1->clear();
            stringArg1->append( stringBuffer->mid(0, i));
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number( pow(stringArg1->toDouble(), stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("exp") != -1)
        {
            int i = stringBuffer->indexOf("exp");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(exp(stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("mod") != -1)
        {
            int i = stringBuffer->indexOf("mod");
            stringArg1->clear();
            stringArg1->append( stringBuffer->mid(0, i));
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(fmod(stringArg1->toDouble(), stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        stringSum->clear();
        stringBuffer->clear();
    }

    Калькулятор на C++/Qt

    ConstantineVL, 24 Июня 2014

    Комментарии (45)
  9. JavaScript / Говнокод #16131

    +149

    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
    (function (G) {
        "use strict";
        var $ = G.jQuery;
    
        if ($ === undefined) {
            G.console.log("jQuery not found.");
            return;
        }
    
        function resizeContainer() {
            $("div.container").outerHeight($(G).innerHeight());
        }
    
        $(G).resize(resizeContainer);
    
        resizeContainer();
    }(this));

    Вот тут: http://jsfiddle.net/dunmaksim/NWN5f/3/ написал небольшой код, который позволяет сделать разметку на странице в стиле ModernUI. Высота контейнера автоматом подгоняется под высоту окна. Код прогнал через JSLint. Решение ориентировано на новые браузеры. Какие будут замечания? Замыкание использую для ограничения пространства имён.

    dunmaksim, 09 Июня 2014

    Комментарии (45)
  10. Куча / Говнокод #15887

    +139

    1. 1
    2. 2
    Представляю Вашему вниманию новейший минусатор: http://rghost.ru/54852059
    Исправлены многие ошибки предыдущих версий. Не побрезгуйте, родимые!..

    Новейший минусатор для творения непотребностей с рейтингом.

    brutushafens, 02 Мая 2014

    Комментарии (45)
  11. Куча / Говнокод #15256

    +86

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    load 'regex'
    f=: 13 : '((+./-.(1 2 3 4{y))+.(0{y))*.(5{y)'
    a =: #:i.2^6
    b =: f"(1) a
    cc =: ":|:(|:a),(|:b)
    cc1 =: (32+i.32){cc
    cc2 =: (i.32){cc
    ccc=:|:(|:cc2),(1 32$'*'),(|:cc1)
    ccc=:('\*';'&&') rxrplc"1 (ccc)
    (,&'\\ \hline')"1 (' ';' & ')rxrplc"1 (ccc)

    Вот он, первый говнокод на J

    Abbath, 28 Февраля 2014

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