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

    В номинации:
    За время:
  2. 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)
  3. Pascal / Говнокод #3458

    +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
    procedure TCommonFineEdit.SetTopControls;
    begin
      if beSummHist.Visible then
        SummEdit.Width := 92
      else
        SummEdit.Width := 108;
      if VarToInt(Oper.OperationType) in [otFine, otNoAgreeFine, otPayFine, otPayFineCorrect] then
        begin
          NameEdit.Top := 16;
          Label1.Top := NameEdit.Top+3;
          PODateEdit.Top := 47;
          AccountDateJvDateEdit.Top := PODateEdit.Top;
          label3.Top := PODateEdit.Top+3;
          lPODate.Top := PODateEdit.Top+3;
          beSummHist.Top := 77;
          SummEdit.Top := 78;
          POSummEdit.Top := SummEdit.Top;
          label12.Top := SummEdit.Top+3;
          lPOSumm.Top := SummEdit.Top+3;
          StateComboBox.Top := 109;
          label4.Top := StateComboBox.Top+3;
          InspectNameEdit.Top := 140;
          InspectNameLabel.Top := InspectNameEdit.Top+3;
          CommentEdit.Top := 171;
          label2.Top := CommentEdit.Top+3;
          if ftSale then
          begin
            RateNameEdit.Top := 202;
            lRate.Top := RateNameEdit.Top+3;
            BasePriceEdit.Top := 233;
            PaySummMoneyEdit.Top := BasePriceEdit.Top;
            lMoney.Top := BasePriceEdit.Top+3;
            lBasePrice.Top := BasePriceEdit.Top+3;
            Height := 368;
          end else
            Height := 310;
        end
    ...

    Umak, 11 Июня 2010

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

    +99

    1. 1
    new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

    Создание даты

    mosk, 21 Октября 2009

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

    +99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    try
                SetPropValue(c, aqGetConfigproperty_name.asString,aqGetConfigpropery_value.asvariant);
                aqGetConfig.Next;
            if aqGetConfigproperty_name.AsString = 'TabVisible'
            then begin
                if aqGetConfigpropery_value.AsString = '1' then vis:=True
                else vis:=False;
                SetPropValue(c, aqGetConfigproperty_name.asString,vis);
                end

    Вот так мы ставим свойства закладок из конфигуратора:)

    judywood, 03 Сентября 2009

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

    +98.7

    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
    Procedure Halt;
    begin
    if atomTest<>0 then GlobalDeleteAtom(atomTest);
    TerminateProcess(GetCurrentProcess,0);
    end;
    function RegisterSceenTimer(proc:tproc):dword;
    var i:dword;
    begin
    result:=0;
    for i:=1 to sMaxSceenGradient do
    if  not SceenGradient[i].isNotEmpty then break ;
    if i=sMaxSceenGradient then exit;
    SceenTimers[i]:=proc;
    result:=i;
    end;

    :D

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

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

    +98.6

    1. 1
    private bool IsNamesAreEqual(string itemName, string nodeName) { ... }

    Правда это скорее относится к английскому языку, нежели к шарпу.
    Иногда полезно перечитывать давно написаный код, много нового узнаешь )))

    plsc_rover, 20 Ноября 2009

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

    +98.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // Этот говняжный кусочек кода лечит работу козьих шариков.
    for iter := 0 to staticSet.fields.Count - 1 do
      if staticSet.fields[i].IsNull then
        ;
    // Конец говняжного кусочка кода

    Вкратце: staticSet - декоратор (обертка) для ADO Recordset; чтобы синхронизировать обертку и носителя, надо было дернуть любой метод. Автор выбрал R/O property IsNull. Но каков вброс. Комментарии прошу считать частью кода. Если учесть, что плотность комментариев 1 на примерно 60 КБ кода.

    Billy the Kidd, 09 Ноября 2009

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

    +98.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
    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
    /*                                     ,*/
                #include                              <time.h>
                 #include/*                     _  ,o*/  <stdlib.h>
                 #define  c(C)/*     -      . */return      ( C); /*    2004*/
                  #include   <stdio.h>/*.   Moekan           "'   `\b-'     */
                    typedef/*  */char   p;p* u                     ,w       [9
                      ][128] ,*v;typedef  int _;_   R,i,N,I,A               ,m,o,e
                 [9],  a[256],k    [9], n[               256];FILE*f       ;_ x   (_ K,_ r
            ,_ q){;   for(;                                         r<     q    ; K       =((
         0xffffff)   &(K>>8))^                                        n[255     &        ( K
       ^u[0        +                                     r  ++      ]     )]);c          (K
      )}        _ E                           (p*r,    p*q  ){     c(          f         =
              fopen                     (r  ,q))}_   B(_ q){c(    fseek        (f,      0
            ,q))}_ D(){c(  fclose(f ))}_  C(  p    *q){c(  0-    puts(q    )   )}_/*   /
          */main(_ t,p**z){if(t<4)c(   C("<in"       "file>"    "\40<l"   "a"  "yout> "
         /*b9213272*/"<outfile>"   ) )u=0;i=I=(E(z[1],"rb")) ?B(2)?0 :   (((o   =ftell
        (f))>=8)?(u     =(p*)malloc(o))?B(0)?0:!fread(u,o,1,f):0:0)?0:  D():0      ;if(
       !u)c(C("      bad\40input  "));if(E(z[2],"rb" )){for(N=-1;256> i;n[i++] =-1   )a[
       i]=0;       for(i=I=0;   i<o&&(R  =fgetc(   f))>-1;i++)++a[R] ?(R==N)?( ++I>7)?(n[
      N]+1       )?0:(n [N   ]=i-7):0:   (N=R)    |(I=1):0;A =-1;N=o+1;for(i=33;i<127;i++
      )(        n[i   ]+  1&&N>a[i])?    N= a     [A=i]     :0;B(i=I=0);if(A+1)for(N=n[A];
     I<       8&&   (R  =fgetc(f ))>    -1&& i   <o        ;i++)(i<N||i>N+7)?(R==A)?((*w[I
     ]             =u [i])?1:(*w[I]=   46))?(a             [I++]=i):0:0:0;D();}if(I<1)c(C(
                  "  bad\40la" "yout  "))for(i            =0;256>(R=  i);n[i++]=R)for(A=8;
                 A  >0;A --)   R  = ( (R&1)==0)          ?(unsigned int)R>>(01):((unsigned
                /*kero  Q'        ,KSS  */)R>>         1)^        0xedb88320;m=a[I-1];a[I
                ]=(m           <N)?(m=   N+8):        ++        m;for(i=00;i<I;e[i++]=0){
               v=w         [i]+1;for(R                      =33;127  >R;R++)if(R-47&&R-92
               &&       R-(_)* w[i])*(                   v++)=    (p)R;*v=0;}for(sprintf
                      /*'_  G*/  (*w+1,              "%0"     "8x",x(R=time(i=0),m,o)^~
                    0)   ;i<       8;++           i)u      [N+ i]=*(*w+i+1);for(*k=x(~
                      0,i=0     ,*a);i>-        1;      ){for (A=i;A<I;A++){u[+a [ A]
                    ]=w[A       ][e[A]]  ;     k     [A+1]=x (k[A],a[A],a[A+1]
                  );}if     (R==k[I])      c(      (E(z[3  ],"wb+"))?fwrite(
                 /* */   u,o,1,f)?D          ()|C("  \n    OK."):0    :C(
                "  \n  WriteError"            ))  for  (i  =+I-
               1  ;i >-1?!w[i][++                 e[+ i]]:0;
                 ) for( A=+i--;                 A<I;e[A++]
                 =0); (i <I-4                 )?putchar
                 ((_   )  46)                  | fflush
                /*'      ,*/                  ( stdout
                ):       0&                    0;}c(C
               ("       \n                   fail")
               )      /*                    dP' /
                     dP                    pd  '
                    '                      zc
                                          */
                                         }

    psina-from-ua, 06 Октября 2009

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

    +98.3

    1. 1
    2. 2
    3. 3
    if("Водитель".equalsIgnoreCase(job) || "водитель".equalsIgnoreCase(job)) {
    	driver = true;
    }

    Система EGAR

    guest, 25 Апреля 2009

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

    +98

    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
    flag:=true;
    
    if keyList = nil then
    begin
    new(keyList);
    new(keylist^.HisTerms);
    new(keylist^.hisChapter);
    keyList^.value:= HashFunction(edit1.Text);
    keylist^.hisChapter^.number:=strtoint(edit2.Text);
    keylist^.HisTerms^.TheTerm:=edit1.Text;
    keylist^.HisTerms^.hisPage:=keylist^.hisChapter;
    keylist^.HisTerms^.hisKey:=keylist^.value;
    keylist^.hisChapter^.nextPage:=nil;
    keylist^.HisTerms^.nextTerm:=nil;
    memo1.Lines.Add(edit1.Text + ' (' + edit2.Text+')');
    end
    else
    begin
    keyTemp:=keylist;
    temp:=HashFunction(edit1.Text);
    if keytemp^.value = temp then
    begin
    termtemp:=keytemp^.HisTerms;
    chaptertemp:=keytemp^.hisChapter;
    while termtemp^.nextTerm<> nil do
    termtemp:=termtemp^.nextTerm;
    while chaptertemp^.nextPage<> nil do
    chaptertemp:=chaptertemp^.nextPage;
    new(termtemp^.nextTerm);
    new(chaptertemp^.nextPage);
    chaptertemp^.nextPage^.number:=strtoint(edit2.Text);
    termtemp^.nextTerm^.TheTerm:=edit1.Text;
    termtemp^.nextTerm^.nextTerm:=nil;
    chaptertemp^.nextPage^.nextPage:=nil;
    termtemp^.hisKey:=HashFunction(edit1.Text);
    termtemp^.hisPage:=chaptertemp^.nextPage;
    flag:=false;
    end
    else
    keytemp:=keytemp^.NextKey;
    if not(flag) then
    begin
    keytemp:=keylist;
    while keytemp^.NextKey<>nil do
    keytemp:=keytemp^.NextKey;
    new(keytemp^.NextKey);
    new(keytemp^.NextKey^.HisTerms);
    new(keytemp^.NextKey^.hisChapter);
    keytemp^.NextKey.value:=HashFunction(edit1.Text);
    keytemp^.NextKey^.hisChapter^.nextPage:=nil;
    keytemp^.NextKey^.HisTerms^.nextTerm:=nil;
    keytemp^.NextKey^.hisChapter^.number:=strtoint(edit2.Text);
    keytemp^.NextKey^.HisTerms^.TheTerm:=edit1.Text;
    keytemp^.NextKey^.HisTerms^.hisPage:=keytemp^.NextKey^.hisChapter;
    keytemp^.NextKey^.HisTerms^.hisKey:=HashFunction(edit1.Text);
    
    end;

    Создание хэш-таблицы терминов и добавление каждому термину под-термина.

    Toha, 12 Апреля 2015

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