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

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

    +103

    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
    #include <iostream>
    #include <string>
    #include <boost/foreach.hpp>
    
    int main(int argc, char* argv[]) {
      std::string str = "Boost FOREACH!";
      char ch;
      if (boost::foreach_detail_::auto_any_t _foreach_col11 = boost::foreach_detail_::contain( ( str ) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_( str )) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe( str ) : ( str )), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_( boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value) ) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value)) )) ) ) {} else if (boost::foreach_detail_::auto_any_t _foreach_cur11 = boost::foreach_detail_::begin( _foreach_col11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_( str )) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe( str ) : ( str )), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_( boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value) ) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value)) )) ) ) {} else if (boost::foreach_detail_::auto_any_t _foreach_end11 = boost::foreach_detail_::end( _foreach_col11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_( str )) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe( str ) : ( str )), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_( boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value) ) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value)) )) ) ) {} else for (bool _foreach_continue11 = true; _foreach_continue11 && ! boost::foreach_detail_::done( _foreach_cur11 , _foreach_end11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) ) ; _foreach_continue11 ? boost::foreach_detail_::next( _foreach_cur11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) ) : (void)0) if (boost::foreach_detail_::set_false( _foreach_continue11 )) {} else for ( ch = boost::foreach_detail_::deref( _foreach_cur11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) ) ; ! _foreach_continue11 ; _foreach_continue11 = true) {
        std::cout << ch;
      }
      std::cout << std::endl;
      return 0;
    }

    Конечно, это не совсем говнокод, но... я офигел когда посмотрел во что превращается простой BOOST_FOREACH

    rudvil, 03 Мая 2010

    Комментарии (865)
  3. C# / Говнокод #2311

    +103

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    MessageBox.Show(
     a.Decode(
      new StringBuilder(
       a.Encode(
         new StringBuilder(
           textBox1.Text)).ToString())).ToString());

    Говнокод... ну почти говнокод. Думаю, замечание.

    ajukraine, 22 Декабря 2009

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

    +103

    1. 1
    2. 2
    byte* pSomeArr = new byte[nArrLen];
    auto_ptr<byte> bAutoPtr(pSomeArr); // auto delete on exit

    Защита от утечек памяти! =)

    guest, 31 Июля 2009

    Комментарии (3)
  5. Си / Говнокод #2320

    +102.8

    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
    int parse_path(const char *path,char ***names,int *size)
    {
    		
    	int ch=0; ch='/';
    	*size=0;
    	char *q; q=path+1;
    	char *s=0;
    	
    		
    	while(1)
    	{
    		s=strchr(q,ch);
    		if(s!=NULL)
    		{
    			(*size)++;
    			if(*size==1)
    			{
    				(*names)=malloc(sizeof(char*)*(*size));
    				if(!(*names)) return -1;
    			}
    			else
    			{
    				(*names)=realloc(*names,(*size)*sizeof(char*));
    				if(!(*names)) return -1;
    			}
    			*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
    			if(!(*(*names+(*size)-1))) return -1;
    			memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));			
    			strncpy(*(*names+(*size)-1),q,s-q);
    			q=s+1;
    		}
    		else
    		{
    			if(*q!='\0')
    			{
    				ch='\0';
    				s=strchr(q,ch);
    				(*size)++;
    				(*names)=realloc(*names,(*size)*sizeof(char*));
    				if(!(*names)) return -1;
    				*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
    				if(!(*(*names+(*size)-1))) return -1;
    				memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));			
    				strncpy(*(*names+(*size)-1),q,s-q);
    			}
    			break;
    		}
    	}
    	
    	
    	return 0;
    }

    Парсим путь...Это ужасно!!!

    KoirN, 23 Декабря 2009

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

    +102.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //Получаем путь к програме
    public static string getProgramPath()
    {
                  return Console.Title;
    }

    psina-from-ua, 12 Сентября 2009

    Комментарии (5)
  7. Pascal / Говнокод #2423

    +102.5

    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
    procedure TFrmCashBook.ButtonGroupDeleteClick(Sender: TObject);
    var
      CmpField : String;
      CmpOperator : String;
      StringToCmp : String;
      DeletedCount : Integer;
    begin
      if MessageDLG('Âû óâåðåíû?', mtConfirmation,
        [mbYes,mbNo],0) <> mrYes then Exit;
    
      CmpField := GroupDeleteSelectFieldComboBox.Text;
      CmpOperator := GroupDeleteSelectComparisonOperatorComboBox.Text;
      // âîçìîæíûå îïåðàòîðû '=', '>', '>=', '<', '<='
    
      StringToCmp := GroupDeleteEdit.Text;
    
      DeletedCount := 0;
      with DM.TblCashBook do begin
        First();
        while not EOF do begin
          if ( (CmpOperator = '=' ) and
               (FieldByName(CmpField).AsString = StringToCmp ) ) or
             ( (CmpOperator = '>' ) and
               (FieldByName(CmpField).AsString > StringToCmp) ) or
             ( (CmpOperator = '>=') and
               (FieldByName(CmpField).AsString >= StringToCmp) ) or
             ( (CmpOperator = '<' ) and
               (FieldByName(CmpField).AsString < StringToCmp) ) or
             ( (CmpOperator = '<=') and
               (FieldByName(CmpField).AsString <= StringToCmp) ) then
          begin
            Delete();
            DeletedCount := DeletedCount + 1;
          end
          else //åñëè çàïèñü óäàëåíà, next() íå íóæåí
            Next();
        end;
      end; //with
      ShowMessage('Óäàëåíî çàïèñåé: ' + inttostr(DeletedCount));
    end;

    GovnocoderJr, 16 Января 2010

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

    +102.3

    1. 1
    2. 2
    3. 3
    4. 4
    string statStr = string.Format("execution statistics:" + Environment.NewLine 
                    + "\t{0}" + Environment.NewLine + "\t{1}",
                        _requestUrl,
                        execStat);

    plsc_rover, 05 Февраля 2010

    Комментарии (4)
  9. Pascal / Говнокод #2278

    +102.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for i:=1 to 3 do
     if (f[i,1]<>a) and (f[i,2]<>b) then
     begin
      inc(n);
      if n>3 then exit;
      f[n,1]:=a;
      f[n,2]:=b;
      break;
    end
    else break;

    О как!

    Lolwho, 14 Декабря 2009

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

    +102

    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
    string sql = "select " + (sender == sbFind_Phone ? "distinct " : "") +
    									 "orders.id, orders.dat_add, users.family, orders.status, " +
    									 "clients.name, clients.phone, " +
    									 "orders.adress, orders.note_adress, orders.dat, orders.time_, orders.\"SUM\", orders.skidka, " +
    									 "factories.name, " +
    									 "drivers.family || ' ' || drivers.name, orders.actions, " +
    									 "orders.pay, orders.enter, clients.note, orders.website " + // website: 0 - сайт 1, 1 - сайт 2
    									 (
    										 bPrimeCost || bRolly ? ", orders.subitems || ';' || orders.actions || ';' " : ""
    										 ) +
    									 "from orders " +
    									 "left outer join users     on users.id     = orders.id_user_in " +
    									 "left outer join clients   on clients.id   = orders.id_client " +
    									 "left outer join factories on factories.id = orders.factory " +
    									 "left outer join drivers   on drivers.id   = orders.driver " +
    									 (
    										 bFrom_Site ? //---- поиск заказов с сайта ---------
    											 "where factory = " + Factorys[cbFactories.SelectedIndex - 1].id.ToString()
    											 : sender == sbMobil ? //---- поиск заказов, поступивших с моб./устройств
    												 "where '" + (bDataDelivery
    													 ? dataFrom.ToShortDateString() + "'<= dat     and dat     < '" + dtTo.AddDays(1).ToShortDateString() + "'"
    													 : // дата доставки попадает в интервал      или
    													 dataFrom.ToShortDateString() + "'<= dat_add and dat_add < '" + dtTo.AddDays(1).ToShortDateString() +
    													 "'" // дата приема заказа попадает в интервал
    													 ) +
    												 "  and (orders.note_adress containing 'Android' or orders.note_adress containing 'IOS')"
    												 : sender == sbFind_Phone ? //---- поиск по номеру телефона ------
    													 "where orders.id_client = " + ((id_client_Phone as int?)?.ToString() ?? "0")
    													 : sender == sbFind_Order // так быстрее
    														 ? //---- поиск заказов по номеру -------
    														 "where orders.id in (" + sOrders + ")"
    														 : "where '" + //---- поиск заказов по фильтрам  ----
    															 (bDataDelivery
    																 ? dataFrom.ToShortDateString() + "'<= dat     and dat     < '" + dtTo.AddDays(1).ToShortDateString() +
    																	 "'"
    																 : // дата доставки попадает в интервал      или
    																 dataFrom.ToShortDateString() + "'<= dat_add and dat_add < '" + dtTo.AddDays(1).ToShortDateString() +
    																 "'" // дата приема заказа попадает в интервал
    																 )
    															 + //---- вид оплаты --------------------
    															 (!chPayNal.Checked ? " and orders.pay != 0 " : "") + //  0 - нал.
    															 (!chPayOnl.Checked ? " and orders.pay != 1 " : "") + //  1 - онлайн
    															 (!chPayMt.Checked ? " and orders.pay != 3 " : "") + //  3 - моб/терминал
    															 (!chPayNull.Checked ? " and orders.pay != 2 " : "") //  2 - б/о
    
    															 + //---- откуда поступил ---------------
    															 (!chFromPhone.Checked ? " and orders.enter != 0 " : "") + //  0 - телефон
    															 (!chFromSite.Checked ? " and orders.enter != 1 " : "") + //  1 - сайт
    															 (!chFromClub.Checked ? " and orders.enter != 2 " : "") //  2 - delivery club
    															 +
    															 (rbTake.Checked
    																 ? " and orders.status = 0"
    																 : // принят
    																 rbKitchen.Checked
    																	 ? " and orders.status = 1"
    																	 : // на кухне
    																		 //                  rbReady.Checked ?   " and orders.status = 2":          // готов     - убрал, не хватает места
    																	 rbShip.Checked
    																		 ? " and orders.status = 3"
    																		 : // в пути
    																			 //                  rbDelive.Checked ?  " and orders.status = 4":          // доставлен - убрал, не хватает места
    																		 rbPay.Checked
    																			 ? " and orders.status = 5"
    																			 : // оплачен
    																			 rbCancel.Checked ? " and orders.status = 6" : "" // отменен
    																 )
    															 + // производство
    															 (cbFactories.SelectedIndex <= 0
    																 ? ""
    																 : " and factory = " + Factorys[cbFactories.SelectedIndex - 1].id.ToString()
    																 )
    															 + // акция
    															 (cbActions.SelectedIndex <= 0
    																 ? ""
    																 : " and substring(actions from 1 for " +
    																	 Actions[cbActions.SelectedIndex - 1].id.ToString().Length.ToString() + ") = '"
    																	 + Actions[cbActions.SelectedIndex - 1].id.ToString() + "'"
    																 )
    															 + // манагеры
    															 (cbManagers.SelectedIndex <= 0
    																 ? ""
    																 : " and orders.id_user_in = " + Managers[cbManagers.SelectedIndex - 1].id.ToString()
    																 )
    															 + // водители
    															 (cbDrivers.SelectedIndex <= 0
    																 ? ""
    																 : " and orders.driver = " + Drivers[cbDrivers.SelectedIndex - 1].id.ToString()
    																 )
    															 + // сайт заказа: первый(0) или второй(1)
    															 (rbSiteAll.Checked
    																 ? ""
    																 : " and orders.website = " +
    																	 (rbSitePirogu.Checked ? FLogo.LOGO_1 : FLogo.LOGO_2).ToString()
    																 )
    );

    Абсолютно коричневый код одного пожилого разработчика с 20-летним стажем и кандидатской степенью (прямо в классе формы).

    BigRussianSOS, 27 Августа 2016

    Комментарии (31)
  11. Java / Говнокод #17680

    +102

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public class Permuter                                {
        private static void permute(int n, char[] a)     {
            if (n == 0)                                  {
                System.out.println(String.valueOf(a))    ;}
            else                                         {
                for (int i = 0; i <= n; i++)             {
                    permute(n-1, a)                      ;
                    swap(a, n % 2 == 0 ? i : 0, n)       ;}}}
        private static void swap(char[] a, int i, int j) {
            char saved = a[i]                            ;
            a[i] = a[j]                                  ;
            a[j] = saved                                 ;}}

    "I finally figured out how to get those pesky semicolons and curly braces out of my Java code"

    Xom94ok, 22 Февраля 2015

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