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

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

    +101.9

    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
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    function DatePlusOneDay(Date: TDate): TDate;
    var
      Day, Month, Year: string;
    begin
      Day := Copy(DateToStr(Date), 1, 2);
      Month := Copy(DateToStr(Date), 4, 2);
      Year := Copy(DateToStr(Date), 7, 4);
      if frac(StrToFloat(Year) / 4) <> 0 then
        if (Month = '01') or (Month = '03') or (Month = '05') or (Month = '07') or (Month = '08') or (Month = '10') or (Month = '12') then
          if Day <> '31' then
            if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
            else Day := IntToStr(StrToInt(Day) + 1)
          else
          begin
            Day := '01';
            if StrToInt(Month) < 9 then
              Month := '0' + IntToStr(StrToInt(Month) + 1)
            else
              if Month = '12' then
              begin
                Month := '01';
                Year := IntToStr(StrToInt(Year) + 1);
              end
              else Month := IntToStr(StrToInt(Month) + 1);
          end
        else
          if (Month = '04') or (Month = '06') or
          (Month = '09') or (Month = '11') then
            if Day <> '30' then
              if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
              else Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then Month := '0' + IntToStr(StrToInt(Month) + 1)
              else Month := IntToStr(StrToInt(Month) + 1);
            end
          else
            if Day <> '28' then
              if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
              else Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then Month := '0' + IntToStr(StrToInt(Month) + 1)
              else Month := IntToStr(StrToInt(Month) + 1);
            end
      else
        if (Month = '01') or (Month = '03') or (Month = '05') or (Month = '07') or (Month = '08') or (Month = '10') or (Month = '12') then
          if Day <> '31' then
            if StrToInt(Day) < 9 then Day := '0' + IntToStr(StrToInt(Day) + 1)
            else Day := IntToStr(StrToInt(Day) + 1)
          else
          begin
            Day := '01';
            if StrToInt(Month) < 9 then
              Month := '0' + IntToStr(StrToInt(Month) + 1)
            else
              if Month = '12' then
              begin
                Month := '01';
                Year := IntToStr(StrToInt(Year) + 1);
              end
              else
                Month := IntToStr(StrToInt(Month) + 1);
          end
        else
          if (Month = '04') or (Month = '06') or
          (Month = '09') or (Month = '11') then
            if Day <> '30' then
              if StrToInt(Day) < 9 then
                Day := '0' + IntToStr(StrToInt(Day) + 1)
              else
                Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then
                Month := '0' + IntToStr(StrToInt(Month) + 1)
              else
                Month := IntToStr(StrToInt(Month) + 1);
            end
          else
            if Day <> '28' then
              if StrToInt(Day) < 9 then
                Day := '0' + IntToStr(StrToInt(Day) + 1)
              else
                Day := IntToStr(StrToInt(Day) + 1)
            else
            begin
              Day := '01';
              if StrToInt(Month) < 9 then
                Month := '0' + IntToStr(StrToInt(Month) + 1)
              else
                Month := IntToStr(StrToInt(Month) + 1);
            end;
      DatePlusOneDay := StrToDate(Day + '.' + Month + '.' + Year);
    end;

    Писалось, когда не знали о эквиваленте (Date + 1)

    SaNdMaN, 01 Сентября 2009

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

    +101.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    inline int _txReturn1 () { return 1; }
    
    //бла-бла-бла
    while (_txReturn1 ()) 
    {
    //бла-бла-бла
    }
    
    //бла-бла-бла

    Это либка TXlib и по ней учат детей

    x0m9k, 05 Марта 2010

    Комментарии (12)
  4. Куча / Говнокод #2254

    +101.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if formnaam='UBI_LABELS'
    	do sqlcode with 'exec sp_kaartbak_overzicht ?mloginid, ?formnaam, ?mfilter0, ?mfilter1, ?mfilter2, ?mfilter3, ?mfilter4, ?mfilter5, ?mfilter6, ;
    	?mfilter7,?mfilter8,?vnaam,?tnaam, ?vpartijnr, ?tpartijnr, ?vlokatie,?tlokatie,?vdatum, ?tdatum, ?mkg, ?moptie1','novzkrt1', 'ovzkaartbak.prg'
    else
    	do sqlcode with 'exec sp_kaartbak_overzicht ?mloginid, ?formnaam, ?mfilter0, ?mfilter1, ?mfilter2, ?mfilter3, ?mfilter4, ?mfilter5, ?mfilter6, ;
    	?mfilter7,?mfilter8,?vnaam,?tnaam, ?vpartijnr, ?tpartijnr, ?vlokatie,?tlokatie,?vdatum, ?tdatum, ?mkg, ?moptie1','novzkrt1', 'ovzkaartbak.prg'
    endif

    Visual FoxPro. Иллюзия выбора.

    bolkhovsky, 10 Декабря 2009

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

    +101.6

    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
    procedure GaussMas ( n:integer;a: Matr;var rezult:V10);
    var
    s,s1:extended;
    m,i,j,k,km,jm:integer;
    z,d: array [0..10] of Extended ;
    label m2;
    begin
    //..............................
        for i := 1 to n  do
        begin
            for j := 1 to n do
    	   if (a[i][j]>0.9) then
               begin
               rezult[j]:=a[i][m];
               goto m2;
               end;
    m2:      continue;
    end;
    end;

    Процедура расчета матрицы по методу Гаусса.
    Форматирование сохранено как есть.

    Grizzly, 01 Февраля 2010

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

    +101.5

    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
    if (imageContent != null)
                   context.Response.OutputStream.Write(imageContent, 0, imageContent.Length);
               else
               {
                   byte[] x = {0xff, 0xd8, 0xff, 0xe0, 0x0, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x0, 0x1, 0x2, 0x0, 0x0, 0x64, 
    0x0, 0x64, 0x0, 0x0, 0xff, 0xec, 0x0, 0x11, 0x44, 0x75, 0x63, 0x6b, 0x79, 0x0, 0x1, 0x0, 
    0x4, 0x0, 0x0, 0x0, 0x1b, 0x0, 0x0, 0xff, 0xee, 0x0, 0xe, 0x41, 0x64, 0x6f, 0x62, 0x65, 
    0x0, 0x64, 0xc0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xdb, 0x0, 0x84, 0x0, 0x11, 0xc, 0xc, 0xc, 
    0xd, 0xc, 0x11, 0xd, 0xd, 0x11, 0x19, 0x10, 0xe, 0x10, 0x19, 0x1d, 0x16, 0x11, 0x11, 0x16, 
    0x1d, 0x22, 0x17, 0x17, 0x17, 0x17, 0x17, 0x22, 0x21, 0x1a, 0x1d, 0x1c, 0x1c, 0x1d, 0x1a, 0x21, 
    0x21, 0x26, 0x28, 0x2b, 0x28, 0x26, 0x21, 0x34, 0x34, 0x38, 0x38, 0x34, 0x34, 0x41, 0x41, 0x41, 
    0xff, 0xc4, 0x0, 0x75, 0x0, 0x1, 0x0, 0x3, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x5, 0x6, 0x4, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 
    0x1, 0x4, 0x1, 0x3, 0x1, 0x3, 0x6, 0xc, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x1, 0x2, 0x3, 0x4, 0x11, 0x12, 0x5, 0x6, 0x21, 0x31, 0x71, 0x13, 0x41, 0x51, 0xa1, 0x22, 
    0xb3, 0x35, 0x61, 0x32, 0x52, 0x62, 0x33, 0x73, 0x14, 0x34, 0x74, 0x15, 0x36, 0x7, 0x91, 0x42, 
    0x92, 0xb2, 0xd2, 0x93, 0x54, 0x11, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xda, 0x0, 0xc, 0x3, 0x1, 0x0, 0x2, 0x11, 
    0x3, 0x11, 0x0, 0x3f, 0x0, 0xde, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0xc1, 0xef, 0x77, 0xe0, 0xdb, 0x64, 0xb5, 0xdf, 0x2e, 0xd4, 0xc7, 0x54, 0xbb, 0x1a, 0x6a, 0x8b, 
    0x43, 0xdc, 0xad, 0x73, 0x9b, 0xd5, 0x11, 0x75, 0x2a, 0xe3, 0x3e, 0x74, 0x35, 0x66, 0x5a, 0xc7, 
    0x2b, 0xde, 0x61, 0xb1, 0x2c, 0x4c, 0xe3, 0xd6, 0x65, 0x64, 0x6f, 0x73, 0x5b, 0x22, 0x2c, 0x98, 
    0x7a, 0x35, 0x70, 0x8e, 0x4c, 0x40, 0xbd, 0xa0, 0x58, 0x71, 0x6b, 0x9b, 0x95, 0xbd, 0xa6, 0x37, 
    0x6e, 0x71, 0x49, 0x15, 0x98, 0xd5, 0x58, 0xae, 0x95, 0xaa, 0xc7, 0x48, 0xd4, 0x44, 0x56, 0xbf, 
    0xb, 0xde, 0x5c, 0x94, 0x7c, 0x6b, 0x91, 0xae, 0xfc, 0xcb, 0x2e, 0x5a, 0xdf, 0x65, 0x5a, 0xce, 
    0x6b, 0x55, 0xaa, 0xff, 0x0, 0x13, 0x3a, 0xb3, 0xf3, 0x19, 0x8c, 0x60, 0xbc, 0x0, 0x0, 0x0, 
    0xf8, 0x53, 0xd3, 0x82, 0xf4, 0x1, 0x94, 0xda, 0x39, 0xad, 0x3f, 0xd, 0xb4, 0xf7, 0xad, 0x54, 
    0xaf, 0xc2, 0x88, 0xc9, 0x56, 0x46, 0xae, 0x97, 0xb9, 0x3c, 0xbd, 0x13, 0xd5, 0x55, 0xf2, 0xe7, 
    0xa7, 0xc2, 0x75, 0x5f, 0xe7, 0x1b, 0x5, 0x48, 0xd5, 0x62, 0x9d, 0x6d, 0x4b, 0x8f, 0x56, 0x38, 
    0x91, 0x57, 0x3d, 0xee, 0x54, 0x46, 0xa1, 0x6f, 0x73, 0x6c, 0xdb, 0xaf, 0x63, 0xed, 0x95, 0xa2, 
    0x9d, 0x53, 0xa2, 0x2b, 0xd8, 0x8e, 0x72, 0x77, 0x2f, 0x6a, 0x10, 0xd5, 0xd8, 0xb6, 0x6a, 0x8f, 
    0xf1, 0x2b, 0xd2, 0x86, 0x39, 0x13, 0xb1, 0xe8, 0xc4, 0x57, 0x27, 0x72, 0xae, 0x55, 0x0, 0xa1, 
    0xe0, 0x14, 0xae, 0x57, 0xad, 0x72, 0xcd, 0x98, 0x5d, 0xb, 0x2d, 0x48, 0xd7, 0x44, 0x8f, 0xe8, 
    0xaa, 0x89, 0xab, 0x2b, 0x85, 0xeb, 0x8f, 0x58, 0xd7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xd9};

    'Канал форума программистов VIngrad
    p.s. пришлось убрать большую часть байтов.

    Nemerle, 03 Февраля 2010

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

    +101.4

    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
    /////определяем зарплату по кол-ву учеников
      str := 'SELECT C.Salary, C.DateID'+
      ' FROM CriteriaOfSalaryTeachers C, TeacherStyleGroup TSG, CriteriaOfSalaryTeacherDate CD' +
      ' WHERE (CD.TeacherStyleGroupID = TSG.TeacherStyleGroupID)'+
      ' AND (TSG.TeacherStyleID =:tsid) AND (TSG.GroupID =:idg)'+
      ' AND (CD.DateID = C.DateID) AND (CD.DateTimeActivity <= :da) AND (CD.DateTimeClose > :datt)'+
      ' AND (C.MinPupils <= :mip) AND (C.MaxPupils > :mipi)';
      Salary := MainForm.Query(str, 3, 'float:'+TSID+
                                       '; integer:'+GroupID+
                                       '; datetime:'+DateToStr(MyDate)+' '+TimeToStr(MyTime)+
                                       '; datetime:'+DateToStr(MyDate)+' '+TimeToStr(MyTime)+
                                       '; integer:'+IntToStr(CountPupils)+
                                       '; integer:'+IntToStr(CountPupils));
    if Salary[0,0] = '__false__' then
        result := -1

    определяем зарплату по кол-ву учеников

    fekrado, 22 Января 2010

    Комментарии (2)
  8. Pascal / Говнокод #2559

    +101.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    sec:=sec+1;
    if sec>59 then begin sec:=0; min:=min+1; end;
    if min>59 then begin min:=0; ch:=ch+1; end;
    statusbar1.Panels.Items[1].Text:=IntToStr(ch)+':'+IntToStr(min)+':'+IntToStr(sec);
    end;

    таймер

    xXx_totalwar, 06 Февраля 2010

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

    +101.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var r = from t in ds.ProductTags
    		where t.ProductTagID == tag
    			|| t.Parent.ProductTagID == tag
    			|| t.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    			|| t.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ProductTagID == tag
    		select t;

    Это мой код. Надоело писать рекурсивные СTE чтобы выбрать всех детишек. Спросил у кастомера можно ли ограничить вложенность. Он согласился ;).. На свою голову ;).

    Mike Chaliy, 11 Ноября 2009

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

    +101

    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
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    var
      Excel: OleVariant;
      Rows, Cols: integer;
      WorkSheet: OleVariant;
      DebugList: TStringList;
      I, j, CSeek: integer;
      R, ArrV: OleVariant;
      ObjData: TDataContainer;
      D: integer;
    begin
     {$IFDEF DEBUG}
      DebugList := TStringList.Create;
     {$ENDIF}
      try
        Excel := CreateOleObject('Excel.Application');
        Excel.Visible := false;
        Excel.Workbooks.Open[DocPath, 0, True];
        WorkSheet := Excel.ActiveWorkbook.ActiveSheet;
        R := Excel.Intersect(WorkSheet.UsedRange,
          WorkSheet.UsedRange.Offset[14, 0]);
        ArrV := R.Value;
        Rows := VarArrayHighBound(ArrV, 1);
        Cols := VarArrayHighBound(ArrV, 2);
        {$IFDEF DEBUG}
        DebugList.Add(Format('Количество ячеек в таблице = %d', [(Rows) * Cols]));
        DebugList.Add(Format('Rows = %d, Cols = %d', [Rows, Cols]));
        {$ENDIF}
        CSeek := 0;
        D := 1;
        for I := 1 to Rows do
        begin
          if (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('Итого')) = 0) then
            Break;
          if (CompareStr(Trim(VarToStr(ArrV[I, 1])),
            Trim('отдел')) = 0) or
            (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.05')) = 0) or
            (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.06')) = 0) or
            (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.09')) = 0) then
          begin
            CSeek := I + 2;
            Continue;
          end;
          if CSeek > I then
            Continue;
          for j := 1 to Cols do
          begin
            case j of
              1:
                begin
                  if VarToStr(ArrV[I, j]) <> '' then
                  begin
                    ObjData := TDataContainer.Create;
                    ObjData.Name := ArrV[I, j];
                  end;
                end;
              3:
                begin
                  if VarToStr(ArrV[I, j]) <> '' then
                    ObjData.InventoryNumber := GetInventoryNumber(ArrV[I, j]);
                end;
              10:
                begin
                  if (D mod 2 <> 0) then
                  begin
                    if VarToStr(ArrV[I, j]) <> '' then
                      ObjData.DataCount := ArrV[I, j];
                  end
                  else
                    ObjData.Cost := ArrV[I, j];
     
                  if (ObjData <> nil) and (ObjData.DataCount > 0) then
                  begin
                    FData.Add(ObjData);
                    DebugList.Add(ObjData.AsString);
                  end;
                end;
            end;
            Inc(D);
          end;
        end;
        {$IFDEF DEBUG}
        DebugList.Add('Objects created: ' + IntToStr(FData.Count));
        D:=1;
        for ObjData in FData.Items.Values do
           D := D + ObjData.DataCount;
        DebugList.Add('Total objects count: ' + IntToStr(D));
        DebugList.SaveToFile('C:\ExcelDebug.txt');
        {$ENDIF}
      finally
        {$IFDEF DEBUG}
        DebugList.Free;
        {$ENDIF}
        Excel.Quit;
      end;
    end;

    При разборе выхлопа из 1С в Excel - excel и формат выгрузки сделали всё, чтобы я люто наговнокодил-(

    Cynicrus, 08 Апреля 2015

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

    +101

    1. 1
    2. 2
    char buf[4096];
    *((char*)&buf[14]) = 0x30;

    Запись значения в массив (такой способ обращения к элементу массива тщательно соблюдается на протяжении всех 25000 строк кода проекта)

    refactor, 20 Февраля 2015

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