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

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

    −125.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
    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
    Sub Макрос2()
        Dim pos0, pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9, digitPos As Integer
    
        For Counter = 2 To 999999
            digitPos = 1000
        
            Set curCell = Worksheets("Лист1").Cells(Counter, 5)
            Set primCell = Worksheets("Лист1").Cells(Counter, 6)
        
            pos0 = InStr(1, primCell.Value, "0")
            pos1 = InStr(1, primCell.Value, "1")
            pos2 = InStr(1, primCell.Value, "2")
            pos3 = InStr(1, primCell.Value, "3")
            pos4 = InStr(1, primCell.Value, "4")
            pos5 = InStr(1, primCell.Value, "5")
            pos6 = InStr(1, primCell.Value, "6")
            pos7 = InStr(1, primCell.Value, "7")
            pos8 = InStr(1, primCell.Value, "8")
            pos9 = InStr(1, primCell.Value, "9")
            
            If pos0 > 0 And pos0 < digitPos Then
                digitPos = pos0
            End If
            
            If pos1 > 0 And pos1 < digitPos Then
                digitPos = pos1
            End If
            
            If pos2 > 0 And pos2 < digitPos Then
                digitPos = pos2
            End If
            
            If pos3 > 0 And pos3 < digitPos Then
                digitPos = pos3
            End If
            
            If pos4 > 0 And pos4 < digitPos Then
                digitPos = pos4
            End If
            
            If pos5 > 0 And pos5 < digitPos Then
                digitPos = pos5
            End If
            
            If pos6 > 0 And pos6 < digitPos Then
                digitPos = pos6
            End If
            
            If pos7 > 0 And pos7 < digitPos Then
                digitPos = pos7
            End If
            
            If pos8 > 0 And pos8 < digitPos Then
                digitPos = pos8
            End If
            
            If pos9 > 0 And pos9 < digitPos Then
                digitPos = pos9
            End If
            
            'MsgBox Left(primCell.Value, digitPos - 1)
            
            curCell.Value = Trim(Left(primCell.Value, digitPos - 1))
        Next Counter
    End Sub

    Я идиот и не умею программировать в excel!!
    Мне надо было отрезать текст до первой цифры в одной ячейке и засунуть его в другую.
    Наверное, надо было почитать про массивы в VB

    striker, 12 Апреля 2010

    Комментарии (9)
  3. 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)
  4. 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)
  5. JavaScript / Говнокод #2928

    +150.2

    1. 1
    $.noConflict();

    Гениально!

    eval, 05 Апреля 2010

    Комментарии (9)
  6. 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)
  7. 1C / Говнокод #2901

    −119.4

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

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

    Lewkee, 31 Марта 2010

    Комментарии (9)
  8. 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)
  9. 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)
  10. Си / Говнокод #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)
  11. 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)