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

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

    +84

    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
    function Okruglenije(cislo: Currency; skolkonulei: Integer): string;
    var
    
      outs: string;
      rst, cel, zn: string;
      p: integer;
    begin
      outs := FloatToStr(cislo);
    
      p := Pos(',', outs) + 1;
    
      zn := Copy(outs, p, skolkonulei);
    
      cel := FloatToStr(trunc(cislo));
    
      if p > 1 then
        rst := Trim(cel + ',' + zn)
    
      else
        rst := Trim(cel);
    
      Okruglenije := rst;
    
    end;

    Процедура округления

    ka3ax, 04 Января 2014

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

    +81

    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
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int bin_search(int *A, int key, int low, int high){
      if (low > high){
          return 0;
      }
      int mid = ( low + high ) / 2;
      if (A[mid] == key)
        return mid+1;
      else if( A[mid] < key)
        bin_search(A, key, mid + 1, high);
      else if (A[mid] > key)
        bin_search(A, key, low, mid - 1);
    }
    
    int main()
    {
        int n, k;
        cin >> k >> n;
        int A[n-1];
        for (int i = 0; i < n; i++)
        {
            cin >> A[i];
        }
            cout << bin_search(A, k, 0, n);
    }

    Нужно реализовать бинпоиск рекурсией, на вход значение искомого элемента,
    число элементов и сам массив,
    вывести номер минимального элемента равного искомому.
    У меня откровенно говоря баг, не могу его откопать, помогите!!!

    aesc_smirnov, 26 Сентября 2013

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $useDummy = true;
            do {
                if (!file_exists($filename)){ break; }
                require_once $filename;            
                if (!class_exists($className)){ break; }                        
                $useDummy = false;
            } while(false);

    Новый оператор ветвления do ... while

    dimkich, 13 Мая 2013

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

    +28

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    std::string toString(std::function<std::string(T)> f = std::function<std::string(T)>()) {
       std::stringstream ss;
       if(f)
          ss << f(some_value);
       else
          ss << some_value;
       return ss.str();
    }

    an0nym, 03 Октября 2012

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

    +38

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    SkinDog* crateDog()
    {
      return reinterpret_cast<SkinDog*>( new Dog() );
    };
    void deleteDog( SkinDog* pDog)
    {
      delete reinterpret_cast<Dog*>( pDog );
    }
    
    EvilDog::bite() 
    {
      Dog* pDog = mutationDog();

    Не удержался, чтоб не запостить. Сами знаете откуда.

    LispGovno, 17 Сентября 2012

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

    −2

    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
    //сравниваем два числа, функция не использует операторы < и > в целях переносимости на платформы, где они не поддерживаются
    auto intcmp( int a, int b ) -> int {
    	while( a && b ) {
    		a--;
    		b--;
    	}
    	if ( a == 0 && b == 0 ) // числа равны
    		return 0;
    	if ( a == 0 ) // a - меньше 
    		return -1;
    	if ( b == 0 ) // a - больше
    		return 1;
    	assert( true ); // да нам подсунули какие-то неправильные числа
    }

    К слову "auto foo( ... ) -> type" добавили в C++11.

    Fai, 27 Июня 2012

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

    +167

    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
    #define BREAKABLE_SECTION() for(;;)
    
    BREAKABLE_SECTION()
    {
        ::Packet * pPacket;
        res = ReadPacket(pPacket);
    
        if(ERR_OK == res)
        {
            res = pConstructor->PutPacket(pPacket);
    
            if(ERR_OK == res)
            {
                res = pConstructor->GetFrame(data);
            }else
            {
                //TODO:add handler of statuses other than err_ok
            }
    
            if (ERR_OK ==res)
            {
                break;
            }else
            {
                //TODO:add handler of statuses other than err_ok
            }
        }else
        {
            break;
        }
        break;
    }

    перешел в новый проект где предложили изучить существующий код в огромном объеме - а он весь из таких циклов

    openclgovno, 06 Октября 2011

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

    +87

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public static int[] toArray(int i){
    		int[] arr = new int[new String(Integer.toString(i)).length()];
    		for(int j=0;j<new String(Integer.toString(i)).length();++j){
    			arr[j] = Integer.valueOf(new Character(new String(Integer.toString(i)).charAt(j)).toString());
    		}
    		return arr;
    	}

    Запись цифр числа в массив.

    byob, 04 Октября 2011

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

    +121

    1. 1
    2. 2
    if (_flag_visible == true) obj.SetVisible();
    else if (_flag_visible == false) obj.SetInvisible();

    Crazzy, 05 Января 2011

    Комментарии (81)
  11. Си / Говнокод #3358

    +138

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    -(void)terminateSearchThreadInBackground:(NSNumber*)threadPtr
    {
        NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
        SearchThread* thread = (SearchThread*)[threadPtr unsignedLongValue];
    
        delete thread;
        [pool release];
    }

    И вновь я в шоке от нашего проекта. По какой-то неведомой причине передать в качестве параметра указатель на поток - это очень не трушно. Зато значительно более трушно - создать из него NSNumber, предварительно преобразовав к unsigned long...

    Highlander, 31 Мая 2010

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