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

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int count(int a)
    {
        int cnt=0;
        while(a)
        {
             ++cnt;
        }
        return cnt;
    }

    Ф-ция для подсчета количества знаков числа. Взято с www.cyberforum.ru

    psina-from-ua, 28 Ноября 2010

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

    +127

    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
    if ((textBox2.Text != "") && (textBox3.Text != "") && (Convert.ToInt32(textBox2.Text) < Convert.ToInt32(textBox3.Text)))
    {
        int наименование = 0;
        string несозданы = null;
        int количество = 0;
        bool накладнаясоздана = false;
        int накладная = 0;
        наименование = Convert.ToInt32(comboBox1.SelectedValue);
        string наименованиест = наименование.ToString();
        for (int i = Convert.ToInt32(textBox2.Text); i < Convert.ToInt32(textBox3.Text) + 1; i++)
        {
            bool одинаково = false;
            foreach (СкладDataSet.ПоступлениеRow row in складDataSet.Поступление.Rows)
            {
                if ((i == row.__) && (наименованиест == row.Наименование))
                {
                    одинаково = true;
                    несозданы += " " + i.ToString();
                    yes = 2;
                }
            }
            if (одинаково == false)
            {
                складDataSet.Состояние.AddСостояниеRow(наименование.ToString(), i.ToString(), "2", "1", "");
                if (накладнаясоздана == false)
                {
                    поступлениесписокTableAdapter.Insert(Convert.ToDateTime(dateTimePicker1.Text).ToString(), наименование, "000", richTextBox1.Text);
                    поступлениесписокTableAdapter.Fill(складDataSet.Поступлениесписок);
                    накладнаясоздана = true;
                    foreach (СкладDataSet.ПоступлениесписокRow row in складDataSet.Поступлениесписок.Rows)
                    { if (накладная <= row.Код)  накладная = row.Код; }
                }
                поступлениеTableAdapter.Insert(наименование, i, накладная.ToString());
                количество = количество + 1;
            }
        }
        поступлениесписокTableAdapter.Update(Convert.ToDateTime(dateTimePicker1.Text).ToString(), наименование, количество.ToString(), richTextBox1.Text, накладная, Convert.ToDateTime(dateTimePicker1.Text).ToString(), наименование, "000", richTextBox1.Text);
        if (yes == 2)
            MessageBox.Show(comboBox1.Text + " - " + несозданы + " не созданы т.к. существуют в базе", "Не созданы...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        Close();
    }
    else
        MessageBox.Show("Поле пустое, введите номер прибора!!!", "Внимательнее!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

    на готдотнете видел один чел вопрос задавал: http://www.gotdotnet.ru/forums/3/133079/
    автору там намекали, что хорошо было бы, чтоб он переделал код, но автор глубоко забил

    Pauchok-Anaynckiy, 22 Ноября 2010

    Комментарии (38)
  4. PHP / Говнокод #4698

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?$APPLICATION->IncludeComponent("bitrix:system.auth.form","",Array(
         "REGISTER_URL" => "register.php",
         "PROFILE_URL" => "profile.php"
         "SHOW_ERRORS" => "Y" 
         )
    );?>

    Этот код из официальной документации Битрикса.
    Обратите внимание перечисление в массиве.

    Ох уж этот удивительный Битрискс... xD

    banji, 21 Ноября 2010

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

    +106

    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
    procedure FirstStep (var Text: string);
    // Удаление комментариев <!--...-->, переводов строк, раскрытие тегов <br>, удаление парных пробелов:
    var
      P:     Integer;
      State: Integer;
      Idx:   Integer;
      Cnt:   Integer;
      NL:    Boolean;
    begin
      State := 0;
      P     := 1;
      NL    := True;
      while P <= Length (Text) do
      begin
        if Text[P] in [#9,#10,#13] then Text[P] := ' ';
        case State of
          0: case Text[P] of
               '<': State := 1;
               ' ': begin
                      Idx := P;
                      State := 9;
                    end; { }
               else NL := False;
             end; {case}
          1: case Text[P] of
               '!': State := 2;
               'b': State := 7;
               else
               begin
                 Dec (P);
                 State := 10;
               end; {else}
             end; {case}
          2: if Text[P] <> '-' then
             begin
               Dec (P);
               State := 10;
             end else State := 3;
          3: if Text[P] = '-' then
             begin
               Idx   := P - 3;
               State := 4;
             end else
             begin
               Dec (P);
               State := 10;
             end; {if}
          4: if Text[P] = '-' then State := 5;
          5: if Text[P] = '-' then State := 6 else State := 4;
          6: if Text[P] = '>' then
             begin
               Delete (Text, Idx, P - Idx + 1);
               P := Idx - 1;
               while (P >= 1) and (Text[P] = ' ') do Dec (P);
               State := 0;
             end else State := 4;
          7: if Text[P] = 'r' then State := 8 else State := 0;
          8: begin
               if Text[P] = '>' then
               begin
                 Text[P-3] := #13;
                 Text[P-2] := #10;
                 Delete (Text, P - 1, 2);
                 Dec (P, 2);
                 NL := True;
               end; {if}
               State := 0;
             end; {8}
          9: if Text[P] <> ' ' then
             begin
               Cnt := P - Idx;
               if NL then
               begin
                 Delete (Text, Idx, Cnt);
                 Dec (Idx);
               end else if Cnt > 1 then Delete (Text, Idx, Cnt - 1);
               P := Idx;
               State := 0;
             end; {if}
          10: if Text[P] = '>' then State := 0;
        end; {case}
        Inc (P);
      end; {while}
    end; {proc FirstStep}

    Кусок парсера HTML.

    Arigato, 16 Ноября 2010

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

    −110

    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
    //Assert.h
    #import <Foundation/Foundation.h>
    @interface Assert : NSObject {
    }
    +(void)that:(BOOL)expr;
    @end
    
    
    //Assert.m
    #import "Assert.h"
    @implementation Assert
    +(void)that:(BOOL)expr{
     if (!expr) {
      [NSException raise:@"Failed assertion." format:@"something is fundamentally wrong with the universe", nil];
     }
    }
    @end
    
    
    //Code.m
    #import "Assert.h"
    
    int main (int argc, const char * argv[]) {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
       [Assert that:((6 * 9) == 42)];
    ...
        [pool drain];
        return 0;
    }

    da4ever, 13 Сентября 2010

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

    +168

    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
    if(x>=900&&x<1000)
                    {
                            std::cout<<"DCCCC";
                            if(x==901)
                                    std::cout<<"I";
                            else if(x==902)
                                    std::cout<<"II";
                            else if(x==903)
                                    std::cout<<"III";
                            else if(x==904)
                                    std::cout<<"IV";
                            else if(x==905)
                                    std::cout<<"V";
                            else if(x==906)
                                    std::cout<<"VI";
                            else if(x==907)
                                    std::cout<<"VII";
                            else if(x==908)
                                    std::cout<<"VIII";
                            else if(x==909)
                                    std::cout<<"IX";
                            if(x==910)
                            {
                                    std::cout<<"X";
                                    if(x==911)
                                            std::cout<<"I";
                                    else if(x==912)
                                            std::cout<<"II";
                                    else if(x==913)
                                            std::cout<<"III";
                                    else if(x==914)
                                            std::cout<<"IV";
                                    else if(x==915)
                                            std::cout<<"V";
                                    else if(x==916)
                                            std::cout<<"VI";
                                    else if(x==917)
                                            std::cout<<"VII";
                                    else if(x==918)
                                            std::cout<<"VIII";
                                    else if(x==919)
                                            std::cout<<"IX";
                            }
                            else if(x==920)
                            {
                                    std::cout<<"XX";
                                    if(x==921)
                                            std::cout<<"I";
                                    else if(x==922)
                                            std::cout<<"II";
                                    else if(x==923)
                                            std::cout<<"III";
                                    else if(x==924)
                                            std::cout<<"IV";
                                    else if(x==925)
                                            std::cout<<"V";
                                    else if(x==926)
                                            std::cout<<"VI";
                                    else if(x==927)
                                            std::cout<<"VII";
                                    else if(x==928)
                                            std::cout<<"VIII";
                                    else if(x==929)
                                            std::cout<<"IX";
                            }
        //

    Перевод числа <1000 в римские цифры... Единственное, что пришло в голову с утра, тупо перебор всех значений. Соответственно так весь код. Это полный 3.14здец?

    ForEveR, 02 Августа 2010

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

    +160

    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
    int S; 
    int A; 
    int random_integer = (rand()%3); 
    cout<<"Skolko vsego palochek\n"; 
    cin>>S; 
    cout<<"Komp zaberaet\n"; 
    S-=random_integer; 
    cout<<s<<"\n";>>A; 
    S-=A; 
    if (S==8) S-=3; cout<<"Komp Zaberaet\n"; 
    if (S==7) S-=2; cout<<"Komp Zaberaet\n"; 
    if (S==6) S-=1; cout<<"Komp Zaberaet\n"; 
    if (S==4) S-=3; cout<<"Komp Zaberaet\n"; 
    if (S==3) S-=2; cout<<"Komp Zaberaet\n"; 
    if (S==2) S-=1; cout<<"Komp Zaberaet\n"; 
    else 
    if (A==1) S-=3; cout<<"Komp Zaberaet\n"; 
    if (A==2) S-=2; cout<<"Komp Zaberaet\n"; 
    if (A==3) S-=1; cout<<"Komp Zaberaet\n"; 
    cout<<s<<"\n";>>A; 
    if (S<=0) cout<<"Vu proigrali\n"; 
    if (A!=3 && A!=2 && A!=1) cout<<"Mogno tolko ot 1-3 palochek\n";

    Вот такой суровый говнокод я встретил в одном из вопросов ВиО. То что код не рабочий и так понятно.

    Ivan0x32, 04 Июля 2010

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

    +160

    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
    <?php
        {
    		$iter = 10000; //количество итераций
    		$Xmax = array(1,1); //верхние границы
    		$Xmin = array(-1,-1); //нижние границы
    		$F    = 'cos($x[0])*cos($x[1])'; //подынтегральное выражение
    		$F2   = '$x[0]+5-sin($x[1])>=2'; //выражение, определяющее границы функции (если такового нет, впишите 0)
        }
    
        $U    = count($Xmin); //кратность интеграла
        $Xint = array();
        $x    = array();
        $SumH = 0;
    
        for ($i = 0; $i <= $U; $i++)
    		{
    			$Xint[$i] = $Xmax[$i] - $Xmin[$i];
    		}
        for ($j = 1; $j <= $iter; $j++)
    		{
    			for ($i = 0; $i <= $U; $i++)
    				{
    					$x[$i] = $Xmin[$i] + lcg_value() * $Xint[$i];
    				}
    			eval ("\$F1 = $F2;"); //левая часть выражения, определяющего границы функции  
    			if ($F1 !== 0) 
    				{
    					$InInt = false;
    					if ($F1) $InInt = true;
    					if (!$InInt) continue;
    				}
    			eval ("\$F3 = $F;");
    			$SumH += abs($F3);
    		}
    
        $rez = 1;
        for ($i = 0; $i <= $U-1; $i++)
    		{
    			$rez = $rez*$Xint[$i];
    		}
        $rez = ($SumH*$rez)/ $iter;
        echo ("Answer: $rez"); 
     ?>

    Программа, считающая интегралы

    TERAB1T, 21 Июня 2010

    Комментарии (38)
  10. Си / Говнокод #3496

    +136

    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
    #if 0
    
    // memory allocator
    // Type: Best Fit with block sorting
    
    #else
    
    static char* last = (char*)KERNEL_HEAP_BEGIN;
    
    void* alloc( size_t size )
    {
    	void * mem = last;
    	last += size;
    	return mem;
    }
    
    void free( void* mem )
    {
    	(void)mem;
    }
    
    #endif

    Менеджер памяти.
    такую заглушку пришлось делать за пару ночей до сдачи диплома, так как не хватало времени на написание записки.
    зато самый быстрый алокатор. сложность О(1)...
    нужен был для выделения памяти для данных 2 потоков и 1 процесса... функция free нигде не использовалась...

    pushkoff, 17 Июня 2010

    Комментарии (38)
  11. Python / Говнокод #3487

    −226

    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
    def factorial(x):
        """ Work out x! (with a little help from the google calculator...) """
    
        import re
        import urllib
        import time
    
        time.sleep(2)
    
        class AppURLopener(urllib.FancyURLopener):
            def __init__(self, *args):
                # *Cough* *Cough*
                self.version = 'Mozilla 1.3'
                urllib.FancyURLopener.__init__(self, *args)
    
        opener = AppURLopener()
        page = opener.open('http://www.google.com/search?q=%d!' % x).read()
    
        result = re.findall('<b>%d ! = (.*?)</b>' % x, page)
    
        if result:
            return int(result[0].replace('<font size=-2> </font>', ''))
        else:
            raise Exception, "Google not willing today!:\n\n %s" % page

    Вычисление факториала!

    duke, 16 Июня 2010

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