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

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

    +144.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    A* arr = new A[size];
    std::vector<A*> vec(size);
    for(size_t i=0; i<size; ++i)
    	vec.push_back(&a[i])
    // Do something with vec
    delete[] arr;

    kokorins, 08 Апреля 2010

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

    +69.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
    15. 15
    16. 16
    List<Measure> meaList = q.getResultList();
            try
            {
                if (meaList.size() == 0)
                {
                    throw new Exception("Measure not found: "+_wsPrice.getMeasureIso());
                }
                else
                {
                    p.setMeasure(meaList.get(0));
                }
            }
            finally
            {
                meaList.clear();
            }

    А вот ещё порция паранойи от моего коллеги

    konsoletyper, 06 Апреля 2010

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

    +150.2

    1. 1
    $.noConflict();

    Гениально!

    eval, 05 Апреля 2010

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

    +170.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function isarray(obj){
    if (obj[0]) {return true} else {
    obj.push('Is array!');
    return (obj[0] == 'Is array!') ? true : false;
    }
    }

    eval, 03 Апреля 2010

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

    −119.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Для й = 1 По КонДата-НачДата+1 Цикл
            ТекДата = НачДата+й-1;
            
            ДокТ.ВыбратьДокументы(ТекДата, ТекДата);
            Пока ДокТ.ПолучитьДокумент() = 1 Цикл

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

    Lewkee, 31 Марта 2010

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

    +91.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
    {  Длинная арифметика. 
        [0] - длина числа
        [1..1000] - цифры в системе с основанием 10000, записанные в обратном порядке
    }
    type TLong = array[0..1000] of integer;
    
    procedure Add(A,B:TLong;var C:TLong);
    {Здесь идет процедура сложения в столбик - ничего интересного}
    procedure MulByShort(A:TLong;B:integer;var C:TLong); {умножение длинного на короткое}
        var i:integer;
    begin
        initByZero(C);{инициализация C нулями}
        for i:=1 to B do Add(C,A,C);
    end;

    Найдено в решении олимпиадной задачи на FreePascal. Обратите внимание на особо остроумный алгоритм умножения: надо же до такого додуматься. Также интересно, чем мотивирована передача массивов по значению.

    frp, 28 Марта 2010

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

    +82.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    for (int i = 0; i < list.size(); i++) {
            SpecialItem item = list.get(i);
            if (item != null) {
              item = null;
            }
    }
    list.clear();

    Неиндийский способ очистить java.util.List от вместимого.

    xrobak, 23 Марта 2010

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

    +137.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for( unsigned int i = 0; i < strlen(str); i++)
    {
        if ( str[i] == '-')
        {
            str[i] = '\0';
            break;
        }
    }

    'strlen' в условии цикла - это вычисление инварианта в теле цикла.
    Вообще этот цикл реально можно заменить одним вызовом 'strchr'

    benderlog, 18 Марта 2010

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

    +160.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(isset($_POST['add_st']) && $_POST['add_st'] != false && $_POST['add_st'] != '')
    { 
    	if($res=mysql_query("select max(ordering) from category3 where category2=".$cat)) 
    		{
    			$ord=mysql_fetch_row($res);
    			$order=$ord[0]+1;
    		}

    $_POST['add_st'] - из формы с <input type='submit' name='add_st' value='Сохранить' />

    Я уж не говорю, что $order можно было сделать одним запросом

    pasha, 16 Марта 2010

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

    +100.3

    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
    function rgbagl(r,g,b,a:gldouble):trgbagl;
    var
    t:trgbagl;
    begin
    t.r:=r;
    t.g:=g;
    t.b:=b;
    t.a:=a;
    rgbagl:=t;
    end;
    function trgbaintrgbagl(rgba:trgba):trgbagl;
    begin
    trgbaintrgbagl.r:=rgba.r/255;
    trgbaintrgbagl.g:=rgba.g/255;
    trgbaintrgbagl.b:=rgba.b/255;
    trgbaintrgbagl.a:=rgba.a/255;
    end;
    function trgbaglintrgba(rgbagl:trgbagl):trgba;
    begin
    trgbaglintrgba.r:=trunc(rgbagl.r*255);
    trgbaglintrgba.g:=trunc(rgbagl.g*255);
    trgbaglintrgba.b:=trunc(rgbagl.b*255);
    trgbaglintrgba.a:=trunc(rgbagl.a*255);
    end;
    function trgbaglelmintrgbaelm(elm:gldouble):byte;
    begin
    trgbaglelmintrgbaelm:=trunc(elm*255);
    end;
    function trgbaelmintrgbaglelm(elm:byte):gldouble;
    begin
    trgbaelmintrgbaglelm:=elm/255;
    end;

    Вот так вот.

    Говногость, 13 Марта 2010

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