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

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

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int finda(string[] strl, string a)
    {
    	int ii=0;
    	foreach(var i in strl)
    	{
    		if(a==i)
    			return ii;
    		ii++;//Тут нужно оптимизировать!!!
    	};
    }

    Говногость, 25 Декабря 2010

    Комментарии (10)
  3. PHP / Говнокод #5048

    +145

    1. 1
    ДЕТСКОЕ ПОРНО МАЛЬЧИКИ ДЕВОЧКИ ЦЕЛКИ КЛУБНИЧКИ МАЛЕНЬКИЕ СИСЬКИ УПРУГИЕ ПОПКИ

    lstem, 24 Декабря 2010

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

    +99

    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
    Procedure MakeChain(x: real; var a: array of word); (* Процедура раскладывает вещественное число в цепную дробь *)
      var 
        i: byte;
      begin
        i:=0;
        Repeat
          a[i]:=Int(x); x:=1/(x-a[i]); i:=i+1
        Until (abs(1/x) < epsilon) or (Int(x) = 0) (* NB! *)
      end;
    Procedure MakeFrac(a: array of word; var AN, BN: word); (* Процедура собирает обыкновенную дробь из цепной дроби *)
      var
        i: byte; AP, BP: word; temp: word;
      begin
        AN:=1; AP:=0; BN:=a[1]; BP:=1; i:=2;
        Repeat
          temp:=AN; AN:=AN*a[i]+AP; AP:=temp;
          temp:=BN; BN:=BN*a[i]+BP; BP:=temp;
          i:=i+1
        Until a[i] = 0 (* NB! *)
      end;
    Function PowerInt(x: real; p: longint): real; (* возведение числа в целую степень *)
      var
        R: real;
      begin
        R:=1; if p<0 then x:=1/x; p:=abs(p);
        Repeat
          if p and 1 = 1 then R:=R*x;
          p:=p shr 1;
          if p<>0 then x:=sqr(x)
        Until p=0;
        PowerInt:=R
      end;
    Function Power(x: real; p: real): real;
      var
        y: real;
        z: array[0..16000 div sizeof(word)] of word;
        a, b: word;
      begin
        y:=PowerInt(x, Trunc(p)) * exp(Frac(p) * ln(abs(x)));
        if x<0 then
          begin
            MakeChain(Frac(p), z);
            MakeFrac(z, a, b);
            if Odd(b) then
              begin
                if Odd(a) then y:=-y (* если числитель и знаменатель показателя степени нечётные, меняем знак результата *)
              end
            else
              begin
                (* NB! В случае чётного знаменателя показателя степени результат комплексный. Забьём на это *)
              end	
          end;
        Power:=y
      end;

    Инновационный алгоритм, написанный мной лет 12 тому назад, позволяющий возводить отрицательные числа в дробную степень.
    Жанру сайта вполне соответствует, то есть не без говнокода.

    inkanus-gray, 23 Декабря 2010

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

    +80

    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
    /**
     * произвольные группы районов
     */
    public enum DistrictGroup {
    /*...*/
        public int getOrdinal() {
        	for (int i = 0; i < values().length; i++) {
        		if (this == values()[i]) {
        			return i;
        		}
        	}
        	throw new Error("no ordinal found"); // never can be
        }
    }

    Вот так пишут выпускники ВМК МГУ.

    yvu, 16 Декабря 2010

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

    +114

    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
    protected void Page_Load(object sender, EventArgs e)
        {
            String a = Convert.ToString(max);
            RangeValidator1.MinimumValue = "0";
            RangeValidator1.MaximumValue = "3333";
              
            int ind=Convert.ToInt16(DropDownList1.SelectedIndex);
            
            if ((curind < 0)||(ind<0))
            {
                WareHouse WH = new WareHouse();
                string[] list = WH.RefreshList(curProd);
                int i = 0;
                int len = list.Length;
                DropDownList1.Items.Clear();
                while (i < len)
                {
                    if (curProd != list)
                    {
                        DropDownList1.Items.Add(list);
                    }
                    i++;
                }
            
            }
        }

    Чувак прислал резюме и пример проекта ASP.NET. А в нем это. Особо забавляет строка 7 и цикл while

    Terran, 16 Декабря 2010

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

    +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
    function test_file_for_smells( $filename )
       {
       global $MAX_FUNCTION_LINE_COUNT, $MAX_INDENTATION_LEVEL;
       $function_line_count = 0;
       $found_continued_line = 0;
       $line_number = 0;
       $fp = fopen( $filename, "r" );
       if( ! $fp )
         return;
       while( ! feof( $fp ) )
         {
         $line = chop( fgets( $fp, 4096 ) );
         $line_number++;
         while( substr( $line, 0, 9 ) == "function "  &&
                substr( $line, strlen($line) - 1, 1 ) != ')' )
           {
           $line = $line . chop( fgets( $fp, 4096 ) )
           $found_continued_line++;
           }
         if( substr( $line, 0, 9 ) == "function " )
           {
           $function_line_count = 1;
           $function_name = substr( $line, 9, strpos($line, '(') - 9 );
           }
         if( $function_line_count > 0 )
           {
           if( $line == "\t}" )
             {
             $function_line_count = $function_line_count - 3;
             if( $function_line_count > $MAX_FUNCTION_LINE_COUNT )
               print_warning( $filename, $line, $line_number, "$function_name() too long ($function_line_count lines)" );
             $function_line_count = 0;
             }
           else
             $function_line_count++;
           $result = test_line_for_indentation( $line, $MAX_INDENTATION_LEVEL );
           if( ! $result )
             print_warning( $filename, $line, $line_number, "Too much nesting." );
           $result = test_line_for_function_definition( $line, $MAX_NUM_PARAMETERS );
           if( ! $result )
             print_warning( $filename, $line, $line_number, "Too many parameters." );
           if( $found_continued_line > 0 )
             {
             $line_number += $found_continued_line;
             $found_continued_line = 0;
             }
           }
         }
       }

    Детектор говнокода!!!!

    fork, 10 Декабря 2010

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

    +145

    1. 1
    2. 2
    3. 3
    <?php
    
    die 'Превьюшки пока что не обрабатываются.';

    Либо я уже спятил и что-то делаю не так, либо php.
    die ('Превьюшки пока что не обрабатываются.'); работает на ура, а данный пример выбивает мне Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING.
    Ничего не понимаю.

    7ion, 04 Декабря 2010

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

    +126

    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
    private int VedOrderBy(int N_VED)
        {
            switch (N_VED)
            {
                case 2:
                    return 3;
                    break;
                case 3:
                    return 5;
                    break;
                case 4:
                    return 1;
                    break;
                case 5:
                    return 0;
                    break;
                case 6:
                    return 4;
                    break;
                case 7:
                    return 6;
                    break;
                case 8:
                    return 2;
                    break;
            }
            return 10;
        }

    foondook, 25 Ноября 2010

    Комментарии (10)
  10. JavaScript / Говнокод #4738

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    function eval()
    {
        this.obj = eval(obj);
    }

    выкопал из сорцов игрушки...

    Lure Of Chaos, 24 Ноября 2010

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

    +118

    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
    if(wordApp != null)
                    {
                        try
                        {
                            if(isNewApp && wordApp.Documents.Count == 0)
                            {
                                object arg1 = Word.WdSaveOptions.
                                                wdDoNotSaveChanges;
                                object arg2 = null;
                                object arg3 = null;
                                wordApp.Quit(ref arg1, ref arg2, ref arg3);
    
                                // Wait until Word shuts down.
    
                                for(;;)
                                {
                                    Thread.Sleep(100);
                                    try
                                    {
                                        // When word shuts down this call 
    
                                        // throws an exception.
    
                                        string dummy = wordApp.Version;
                                    }
                                    catch
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                        catch {}
    
                        wordApp = null;
                    }

    Вот такой вот Dispose для ворда
    http://www.codeproject.com/KB/cs/winwordloader.aspx

    Lennis, 21 Ноября 2010

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