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

    +87

    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
    97. 97
    98. 98
    float Chislo(char *a, int i)
      {
       int j=i;
       int k=0;
       int r;
       float chis=0;
       while (a[j-1]!=' ' && a[j-1]!='>' && a[j-1]!='-' && a[j-1]!='+' && a[j-1]!='(')
         {j--;
                 //тут перегоняем символ a[j] в цифру r
          if (int(a[j]==48)) r=0;
           else if (int(a[j]==49)) r=1;
            else if (int(a[j]==50)) r=2;
             else if (int(a[j]==51)) r=3;
              else if (int(a[j]==52)) r=4;
               else if (int(a[j]==53)) r=5;
                else if (int(a[j]==54)) r=6;
                 else if (int(a[j]==55)) r=7;
                  else if (int(a[j]==56)) r=8;
                   else if (int(a[j]==57)) r=9;
                     else goto lab8;
          //ShowMessage(a[j]);
    
          chis=chis + r*pow(10,k);
          k++;
         };
       //j--;            //дальше надо обратно до точки и дольше до пробела
       while (a[j]!='.')
         {if (a[j]==' ' || a[j]==':') goto lab8;
          j++;
         };
       j++;
       r=0;
       k=-1;
       
          k--;
          j++;
         };
    
       lab8:
    
       return chis;
      }
    
    // была еще и похощая функция возвращающая результат в виде AnsiString
    
    // вот сколько переменных понадобивлось автору в более чем 700-строчной процедуре
    
    void Progon()
    {
     //
      AnsiString TempR1, TempR2, TempR3, Com,Sport,Team1,Team2, Team, URL1, URL2, page,Champ,Date;
      AnsiString day, month, year, Res, temp, otdyh1, otdyh2;
      int dat;
      //TempR1 = NMHTTP1->Body;
    
       float tot,TM,TB,bol1,bol2,srbol,ver,value,proc;
       AnsiString totS,f1S,ind1S,ind2S, f1ch1S, t_ch1S, f1ch2S, t_ch2S, f1ch3S, t_ch3S, f1ch4S, t_ch4S;
       float fora1,ind1,ind2, f1ch1, t_ch1, f1ch2, t_ch2, f1ch3, t_ch3, f1ch4, t_ch4;
       AnsiString Score1, Score2, s1ch1S, s2ch1S, s1ch2S, s2ch2S, s1ch3S, s2ch3S, s1ch4S, s2ch4S;
    
       AnsiString FIO, ScoreS, RebS, AstS, MinS, Amplua, BlkS, StlS;
       AnsiString TotalS, RebBookS, AstBookS, StlBookS, BlkBookS;
       float Total, RebBook, AstBook, BlkBook, StlBook;
       float PtssNRebsBook, PtssNAstsBook, RebsNAstsBook, PtssNRebsNAstsBook, Book3ptTeam1, Book3ptTeam2;
       int Score, count;
    
       int str1, str2, ind, indd, ig_pos;
       bool win;
    
    // В коде куча такого
    
     while (bukva2[i2]!='/') i2++;
                          i2++;
                          while (bukva2[i2]!='/') i2++;
                          i2++;
                          while (bukva2[i2]!='/') i2++;       // // обошли stl
    
    int *Ptss;
      Ptss = new int[count];
    
      int *Rebs;
      Rebs = new int[count];
    
      int *Asts;
      Asts = new int[count];
    
      int *Blks;
    
    
    while ( ! ( ((bukva[i]=='H') &&(bukva[i+1]=='o') && (bukva[i+2]=='m') && (bukva[i+3]=='e')) || ((bukva[i]=='R') &&(bukva[i+1]=='o') && (bukva[i+2]=='a') && (bukva[i+3]=='d')))) i--;
             while (bukva[i]!='a') i--;
             while ((bukva[i-1]!='>') && (bukva[i-1]!=' ')) i--;
    
    // Внутри циклов всюду работа с экселем
     else
                                 {Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+14).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
                                  Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+15).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
                                 };

    Как -то по фрилансу заказчик хотел доработать то ли парсер, то ли еще что-то (по предоставленным исходникам я так и не смог понять что это за прога, названная "Автониггер" и написанная каким -то студентом толи специально ради выноса мозгов, то ли по еще каким-то причинам вышеобозначенными выкладками, которые вполне возможно содержат в себе какойто гипнотический смысл).

    fenryr, 29 Апреля 2010

    Комментарии (17)
  2. Pascal / Говнокод #3125

    +97

    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
    /// До этой строчки еще больше 1000 строк кода (И это всё в ОДНОЙ процедур)
     finally
        if Main.RecordCount > 0
        then Main.First;
        Main.EnableControls;
        Panel2.Color:=clLime;
        lbTimeSpend.Caption:='Âðåìÿ çàòðà÷åíî:'+TimeToStr(time()-TimeWork);
      end;
    
      Exit;
    
      try
        if TmpCollect_Skd.IsSelectAll then
        begin
          Askd_count := TmpCollect_Skd.RxDBGrid1.DataSource.DataSet.RecordCount;
        end
     /// После этой строки еще более 1000 строк кода всё в этой же процедуре!

    Продолжим. Вот так люди используют Exit;

    goodron, 28 Апреля 2010

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

    +101

    1. 1
    2. 2
    3. 3
    if IntToStr(n) = '2' then begin
      ///  Еще куча говнокода
    end;

    Устроился я тут работать в одну компанию... Начинаю серию публикаций... Название компании пока не буду озвучивать - еще уволят нах...
    Начнём с чего-нибудь простенького :)

    goodron, 28 Апреля 2010

    Комментарии (56)
  4. Java / Говнокод #3123

    +67

    1. 1
    2. 2
    3. 3
    public boolean isActive() {
            return !isKilling() && !isKilled() && !isKillPending();
        }

    Made in Estonia (part 2)

    bot225, 28 Апреля 2010

    Комментарии (9)
  5. Java / Говнокод #3122

    +77

    1. 1
    private final List<ItemInfo> _items = Collections.synchronizedList(new Vector<ItemInfo>());

    Пример убер-синхронизации (чтоб наверняка).
    Используется и по сей день.

    Кусок из крупного эмулятора сервера L2 (Потомок сборки L2Rebellion).

    VirtualVoid, 28 Апреля 2010

    Комментарии (14)
  6. Куча / Говнокод #3121

    +144

    1. 1
    2. 2
    3. 3
    if if = then then
        then = else;
    else else = if;

    Следующий фрагмент вполне допустим при программировании на PL/1, но написать такое может только идиот со справкой. "Совершенный код" (c)

    freakru, 27 Апреля 2010

    Комментарии (23)
  7. JavaScript / Говнокод #3120

    +171

    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
    function showResults()
    {var i=0;if(document.getElementById('choice12').checked==true)
    {i++;}
    if(document.getElementById('choice23').checked==true)
    {i++;}
    if((document.getElementById('choice31').checked==true)&&(document.getElementById('choice32').checked==false)&&(document.getElementById('choice33').checked==true)&&(document.getElementById('choice34').checked==false))
    {i++;}
    if((document.getElementById('choice41').checked==false)&&(document.getElementById('choice42').checked==true)&&(document.getElementById('choice43').checked==true)&&(document.getElementById('choice44').checked==false))
    {i++;}
    if(document.getElementById('text5').value=='type')
    {i++;}
    if(document.getElementById('choice62').checked==true)
    {i++;}
    if(document.getElementById('text7').value=='alt')
    {i++;}
    if((document.getElementById('choice81').checked==false)&&(document.getElementById('choice82').checked==true)&&(document.getElementById('choice83').checked==false)&&(document.getElementById('choice84').checked==true))
    {i++;}
    if(document.getElementById('text9').value=='target')
    {i++;}
    if((document.getElementById('choice101').checked==true)&&(document.getElementById('choice102').checked==false)&&(document.getElementById('choice103').checked==false)&&(document.getElementById('choice104').checked==true))
    {i++;}
    if(document.getElementById('text11').value=='<input>')
    {i++;}
    if(document.getElementById('choice123').checked==true)
    {i++;}
    if((document.getElementById('choice131').checked==false)&&(document.getElementById('choice132').checked==true)&&(document.getElementById('choice133').checked==false)&&(document.getElementById('choice134').checked==true))
    {i++;}
    if(document.getElementById('text14').value=='action')
    {i++;}
    if((document.getElementById('choice151').checked==false)&&(document.getElementById('choice152').checked==true)&&(document.getElementById('choice153').checked==true)&&(document.getElementById('choice154').checked==true))
    {i++;}
    if((document.getElementById('choice161').checked==false)&&(document.getElementById('choice162').checked==false)&&(document.getElementById('choice163').checked==true)&&(document.getElementById('choice164').checked==true))
    {i++;}
    if(document.getElementById('choice174').checked==true)
    {i++;}
    if(document.getElementById('choice182').checked==true)
    {i++;}
    if(document.getElementById('text19').value=='background')
    {i++;}
    if(document.getElementById('choice201').checked==true)
    {i++;}
    document.getElementById('questions').style.display='none';document.getElementById('results').style.display='block';document.getElementById('results').innerHTML='<h2 style="color: #377">Результаты теста</h2>\n<p>Количество правильных ответов: <strong>'+i+'</strong>.</p>';if(i>=18)
    {document.getElementById('results').innerHTML+='<p style="color: #096">Поздравляем с отличным результатом!</p>\n<p style="color: #f00">Оценка 5</p>';}
    if((i<18)&&(i>=14))
    {document.getElementById('results').innerHTML+='<p style="color: #096">Поздравляем с хорошим результатом!</p>\n<p style="color: #f00">Оценка 4</p>';}
    if((i<14)&&(i>=6))
    {document.getElementById('results').innerHTML+='<p style="color: #096">Результат удовлетворительный!</p>\n<p style="color: #f00">Оценка 3</p>';}
    if(i<=6)
    {document.getElementById('results').innerHTML+='<p style="color: #c00">К сожалению, результат очень плохой!!!</p>\n<p style="color: #f00">Оценка 2</p>';}
    document.getElementById('results').innerHTML+='<p class="buttons"> <input type="button" value="Подсказать ответы" onclick= "showQuestions();getHelp();" /></p>';}

    Тест на знание html. Мало того, что говнокод, так там и ответы ещё неправильные. Источник — http://www.cssblok.ru/test/test1.html

    P.S. копирайт снизу на том сайте ("Школьная веб-студия , 2007") всё оправдывает.

    Infamous, 27 Апреля 2010

    Комментарии (24)
  8. PHP / Говнокод #3119

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    //выяснение адреса сайта
     define( "SITE_URL", "http://" . str_replace( "&#045;", "-", preg_replace('#^(.*)/[^/]*#', '\\1', $_SERVER['HTTP_HOST']).'/admin/' ) );
     define( "SITE_EDIT_URL", str_replace( "&#045;", "-", preg_replace('#^(.*)/[^/]*#', '\\1', $_SERVER['HTTP_HOST']) ) ); //.$_SERVER['REQUEST_URI'])."/" ) );
     define( "SITE_EDIT_URL_HTTP", "http://" . str_replace( "&#045;", "-", preg_replace('#^(.*)/[^/]*#', '\\1', $_SERVER['HTTP_HOST'])."/" ) ); //.$_SERVER['REQUEST_URI'])."/" ) );

    xynta, 27 Апреля 2010

    Комментарии (9)
  9. PHP / Говнокод #3118

    +163

    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
    require_once(HTML2PS_DIR.'utils_array.php');
    require_once(HTML2PS_DIR.'utils_graphic.php');
    require_once(HTML2PS_DIR.'utils_url.php');
    require_once(HTML2PS_DIR.'utils_text.php');
    require_once(HTML2PS_DIR.'utils_units.php');
    require_once(HTML2PS_DIR.'utils_number.php');
    require_once(HTML2PS_DIR.'value.color.php');
    require_once(HTML2PS_DIR.'config.parse.php');
    require_once(HTML2PS_DIR.'flow_context.class.inc.php');
    require_once(HTML2PS_DIR.'flow_viewport.class.inc.php');
    require_once(HTML2PS_DIR.'output._interface.class.php');
    require_once(HTML2PS_DIR.'output._generic.class.php');
    require_once(HTML2PS_DIR.'output._generic.pdf.class.php');
    require_once(HTML2PS_DIR.'output._generic.ps.class.php');
    require_once(HTML2PS_DIR.'output.pdflib.old.class.php');
    require_once(HTML2PS_DIR.'output.pdflib.1.6.class.php');
    require_once(HTML2PS_DIR.'output.fpdf.class.php');
    require_once(HTML2PS_DIR.'output.fastps.class.php');
    require_once(HTML2PS_DIR.'output.fastps.l2.class.php');
    require_once(HTML2PS_DIR.'output.png.class.php');
    // require_once(HTML2PS_DIR.'output.pcl.class.php');
    
    require_once(HTML2PS_DIR.'stubs.common.inc.php');
    require_once(HTML2PS_DIR.'media.layout.inc.php');
    require_once(HTML2PS_DIR.'box.php');
    require_once(HTML2PS_DIR.'box.generic.php');
    require_once(HTML2PS_DIR.'box.generic.formatted.php');
    require_once(HTML2PS_DIR.'box.container.php');
    require_once(HTML2PS_DIR.'box.generic.inline.php');
    require_once(HTML2PS_DIR.'box.inline.php');
    require_once(HTML2PS_DIR.'box.inline.control.php');
    require_once(HTML2PS_DIR.'font.class.php');
    require_once(HTML2PS_DIR.'font_factory.class.php');
    
    require_once(HTML2PS_DIR.'box.br.php');
    require_once(HTML2PS_DIR.'box.block.php');
    require_once(HTML2PS_DIR.'box.page.php');
    require_once(HTML2PS_DIR.'box.page.margin.class.php');
    require_once(HTML2PS_DIR.'box.body.php');
    require_once(HTML2PS_DIR.'box.block.inline.php');
    require_once(HTML2PS_DIR.'box.button.php');
    require_once(HTML2PS_DIR.'box.button.submit.php');
    require_once(HTML2PS_DIR.'box.button.reset.php');
    require_once(HTML2PS_DIR.'box.checkbutton.php');
    require_once(HTML2PS_DIR.'box.form.php');
    require_once(HTML2PS_DIR.'box.frame.php');
    require_once(HTML2PS_DIR.'box.iframe.php');
    require_once(HTML2PS_DIR.'box.input.text.php');
    require_once(HTML2PS_DIR.'box.input.textarea.php');
    require_once(HTML2PS_DIR.'box.input.password.php');
    require_once(HTML2PS_DIR.'box.legend.php');
    require_once(HTML2PS_DIR.'box.list-item.php');
    require_once(HTML2PS_DIR.'box.null.php');
    require_once(HTML2PS_DIR.'box.radiobutton.php');
    require_once(HTML2PS_DIR.'box.select.php');
    require_once(HTML2PS_DIR.'box.table.php');
    require_once(HTML2PS_DIR.'box.table.cell.php');
    require_once(HTML2PS_DIR.'box.table.cell.fake.php');
    require_once(HTML2PS_DIR.'box.table.row.php');
    require_once(HTML2PS_DIR.'box.table.section.php');
    
    require_once(HTML2PS_DIR.'box.text.php');
    require_once(HTML2PS_DIR.'box.text.string.php');
    require_once(HTML2PS_DIR.'box.field.pageno.php');
    require_once(HTML2PS_DIR.'box.field.pages.php');
    ........
    и так до 284й строки включительно...

    в самописном модуле к Drupal нашел сий шедевр

    kemerov4anin, 27 Апреля 2010

    Комментарии (15)
  10. C# / Говнокод #3117

    +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
    // Дефолтный конструктор:
     public Random() 
            : this(Environment.TickCount) {
          }
    
    // Перенаправляемся сюда...
        public Random(int Seed) {
            int ii;
            int mj, mk;
        
            //Initialize our Seed array.
            //This algorithm comes from Numerical Recipes in C (2nd Ed.)
            mj = MSEED - Math.Abs(Seed);

    Очередной "изящный" говнокод в исходниках .NET.
    Говнокод в том, что Environment.TickCount через каждые 24,9 дней возвращает Int32.MinValue, который скормится Math.Abs, который резонно выкинет исключение OverflowException. Вроде бы мелочь, но... Вспомним теперь падение .NET-софта на Лондонской бирже и последующие миллионные убытки. Для загруженных non-stop-серверов непростительно. Хотя в принципе Microsoft аптаймами и не славился :)

    cfdev, 27 Апреля 2010

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