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

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

    +83

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
        //snipped
    } catch(OmgExtremeCriticalEmergencyException ignored) {
        //not important
    }

    gvsmirnov, 10 Июня 2010

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

    +158

    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
    double** QRSLAU_check(matrix n1, matrix n0, double eps){
        double** x;
        x = (double**) calloc(2,sizeof(double*));
        x[0]= (double*) calloc(n1.i,sizeof(double));
        x[1]=(double*) calloc(n1.i,sizeof(double));
        for (int a=0; a<n1.i; a++){ x[0][a]=1; x[1][a]=1;}
    
        for (int a=0; a<n1.i; a++)
            for (int b=a+1; b<n1.i; b++)
                if(n1.M[b][a]>eps || n1.M[b][a]<-eps) x[0][a]=0;
        for (int a=0; a<n1.i-1; a++)
            if(((n1.M[a][a]+n1.M[a+1][a+1])-(n0.M[a][a]+ n0.M[a+1][a+1]))>eps ||
               ((n1.M[a][a]+n1.M[a+1][a+1])-(n0.M[a][a]+ n0.M[a+1][a+1])) <-eps ||
               ((sqrt(-(n1.M[a][a]*n1.M[a][a]+ n1.M[a+1][a+1]*n1.M[a+1][a+1]-2*n1.M[a+1][a+1]*n1.M[a][a]+4*n1.M[a][a+1]*n1.M[a+1][a])))-
                (sqrt(-(n0.M[a][a]*n0.M[a][a]+ n0.M[a+1][a+1]*n0.M[a+1][a+1]-2*n0.M[a+1][a+1]*n0.M[a][a]+4*n0.M[a][a+1]*n0.M[a+1][a]))))>eps ||
               ((sqrt(-(n1.M[a][a]*n1.M[a][a]+ n1.M[a+1][a+1]*n1.M[a+1][a+1]-2*n1.M[a+1][a+1]*n1.M[a][a]+4*n1.M[a][a+1]*n1.M[a+1][a])))-
                (sqrt(-(n0.M[a][a]*n0.M[a][a]+ n0.M[a+1][a+1]*n0.M[a+1][a+1]-2*n0.M[a+1][a+1]*n0.M[a][a]+4*n0.M[a][a+1]*n0.M[a+1][a]))))<-eps){
            x[1][a]=0;
            if(a==n1.i-2)x[1][a+1]=0;
        }
        else a++;
        return x;
    }

    какая-та штука для QR-алгоритма и поиска собственных значений

    Shiz89, 09 Июня 2010

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

    +103

    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
    procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
    begin
    If (UpDown2.Position = 0) or (UpDown2.Position = 5) or (UpDown2.Position = 6) or
       (UpDown2.Position = 7) or (UpDown2.Position = 8) or (UpDown2.Position = 9) or
       (UpDown2.Position = 10) or (UpDown2.Position = 11) or (UpDown2.Position = 12) or
       (UpDown2.Position = 13) or (UpDown2.Position = 14) or (UpDown2.Position = 15) or
       (UpDown2.Position = 16) or (UpDown2.Position = 17) or (UpDown2.Position = 18) or
       (UpDown2.Position = 19) or (UpDown2.Position = 20) or (UpDown2.Position = 25) or
       (UpDown2.Position = 26) or (UpDown2.Position = 27) or (UpDown2.Position = 28) or
       (UpDown2.Position = 29) or (UpDown2.Position = 30) or (UpDown2.Position = 35) or
       (UpDown2.Position = 36) or (UpDown2.Position = 37) or (UpDown2.Position = 38) or
       (UpDown2.Position = 39) or (UpDown2.Position = 40) or (UpDown2.Position = 45) or
       (UpDown2.Position = 46) or (UpDown2.Position = 47) or (UpDown2.Position = 48) or
       (UpDown2.Position = 49) or (UpDown2.Position = 50) or (UpDown2.Position = 55) or
       (UpDown2.Position = 56) or (UpDown2.Position = 57) or (UpDown2.Position = 58) or
       (UpDown2.Position = 59) or (UpDown2.Position = 60)
        then StaticText4.Caption := 'минут';
    
    If (UpDown2.Position = 1) or (UpDown2.Position = 21) or (UpDown2.Position = 31) or
       (UpDown2.Position = 41) or (UpDown2.Position = 51)
    then StaticText4.Caption := 'минуту';
    
    If (UpDown2.Position = 2) or (UpDown2.Position = 22) or (UpDown2.Position = 23) or
       (UpDown2.Position = 24) or (UpDown2.Position = 32) or (UpDown2.Position = 33) or
       (UpDown2.Position = 34) or (UpDown2.Position = 42) or (UpDown2.Position = 43) or
       (UpDown2.Position = 44) or (UpDown2.Position = 52) or (UpDown2.Position = 53) or
       (UpDown2.Position = 54)
    then StaticText4.Caption := 'минуты';
    
    If UpDown2.Position>60 then ShowMessage('больше нельзя');
    
    end;

    Дао создания таймера обратного отсчета.
    Канон второй: вычисление плюральных окончаний.
    Комментарии и форматирование авторские.

    bugmenot, 08 Июня 2010

    Комментарии (10)
  5. SQL / Говнокод #3414

    −852

    1. 1
    2. 2
    3. 3
    4. 4
    [CompanyName] text null, 
    [Address] text null, 
    
    [Comment] varchar(255),

    Вот такая оригинальная архитектура таблицы БД :-)

    progr@mer, 08 Июня 2010

    Комментарии (10)
  6. JavaScript / Говнокод #3366

    +159

    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
    function HighlightSelectedKaskoPriceCell(currentCell, toggle, useParent)
    {
        if(currentCell)
        {
            if(toggle)
            {
                if(!useParent)
                    $(currentCell).css("background-color", "rgb(247, 144, 52)");
                else
                    $(currentCell).parent().css("background-color", "rgb(247, 144, 52)");
            }
            else
            {
                if(!useParent)
                    $(currentCell).css("background-color", "#FEF3EB");
                else
                    $(currentCell).parent().css("background-color", "#FEF3EB");
    
            }
        }    
    }
    
    function GetSelectedKaskoPriceCellHighlighting(currentCell, useParent)
    {
        if(!useParent)
            return ($(currentCell).css("background-color") == "rgb(247, 144, 52)");
        else
            return ($(currentCell).parent().css("background-color") == "rgb(247, 144, 52)");
    }

    Способ выделить ячейку таблицы и выяснить, была ли она выделена.

    blaster999, 01 Июня 2010

    Комментарии (10)
  7. Perl / Говнокод #3356

    −123

    1. 1
    2. 2
    my @orda = ();
    my @whera = (); # Niggaz in da haus!

    Найдено в коде метода, формирующего SQL-запрос для доступа к БД.

    Floppy Formator, 31 Мая 2010

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

    +124

    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
    switch ((int)row["State"])
              {
                case 0:
                  /*** Get Contact Row for Company ***/
                  if (contactTbl != null)
                  {
                    contactRow = null;
                    DataRow[] contactRows = contactTbl.Select("Company_Id='" + row["Id"].ToString() + "'");
                    if (contactRows != null && contactRows.Length > 0)
                    {
                      contactRow = contactRows[0];
                      if ((bool)contactRow["fDontMailshot"] == false)
                      {
                        thisMailShot = true;
                      }
                      else
                      {
                        thisMailShot = false;
                      }
                    }
                  }
    
                  if ((bool)row["fManagementCompany"] == true)
                  {
                    if (row["Id"].ToString() == "00-20181" || row["Id"].ToString() == "00-60838")
                    {
                      myEntityID = Entity(2, row);
                      if (!SubContractor(myEntityID, row)) { return false; }
                    }
                    else
                    {
                      myEntityID = Entity(10, row);
                    }
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                  }
                  else if ((bool)row["fSubcontractor"] == true || ((bool)row["fSupplier"] == true && (bool)row["fCustomer"] == false))
                  {
                    myEntityID = Entity(2, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!SubContractor(myEntityID, row)) { return false; }
                  }
                  else if ((bool)row["fHousingAssociation"] == true)
                  {
                    myEntityID = Entity(7, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  else if ((bool)row["f2ndOwnerTenant"] == true && (bool)row["fCustomer"] == false)
                  {
                    myEntityID = Entity(8, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  else if ((bool)row["fCustomer"] == true && (bool)row["f2ndOwnerTenant"] == false)
                  {
                    myEntityID = Entity(7, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  else if ((bool)row["fCustomer"] == true && (bool)row["f2ndOwnerTenant"] == true)
                  {
                    myEntityID = Entity(7, row);
                    if (myEntityID < 0) { return false; }
                    if (!Address(myEntityID, row)) { return false; }
                    if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
                    if (!Customer(myEntityID, row, thisMailShot)) { return false; }
                  }
                  break;
                default:
                  break;
              }

    Отличный пример использования конструкций ветвления. Имеем switch, в нём один case, а в кейсе много-много иф-элсов. И что очень характерно для этого проекта с тремя классами по 9000 строк, никакого повторного использования кода. Реализация принципа "зачем писать меньше?".

    Progreso, 26 Мая 2010

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

    +103

    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
    var
      resStream: TResourceStream;
      memStream: TMemoryStream;
      DLL: THandle;
      tempFile: string;
    
      excel: variant;
      wbook: OLEVariant;
    begin
      if not IsOLEObjectInstalled('Excel.Application') then
        begin
          MessageBox(Handle, PChar('Для открытия фаблонов форм необходимо установить'+#13+
                                   'Microsoft Excel'), 'Ошибка загрузки формы.', MB_ICONINFORMATION);
          exit
        end;
      tempFile := extractFilePath(paramStr(0))+'DATA\PLUGINS\$temp$.xxx';
      if ListView1.Selected = nil then exit;
      if not FileExists(ListView1.Selected.SubItems.Strings[2]) then exit;
      DLL := loadLibrary(PChar(ListView1.Selected.SubItems.Strings[2]));
      if DLL = INVALID_HANDLE_VALUE then begin
                                           freeLibrary(DLL);
                                           exit
                                         end;
      resStream := TResourceStream.Create(DLL, 'FORMA', MakeIntResource(10));
      memStream := TMemoryStream.Create;
      memStream.LoadFromStream(resStream);
      if fileExists(tempFile) then deleteFile(tempFile);
      memStream.SaveToFile(tempFile);
      setFileAttributes(PChar(tempFile), FILE_ATTRIBUTE_HIDDEN or
                                         FILE_ATTRIBUTE_TEMPORARY);
      memStream.Free;
      resStream.Free;
      freeLibrary(DLL);
    
      excel := createOLEObject('Excel.Application');
      excel.Visible := TRUE;
      wbook := excel.Workbooks.Open(tempFile)
    end;

    когда-то кому-то в дипломнике вот такое написал. с понтом - подключаем плагины и они в эксель выводят программно новые виды форм. хотя экселевский файл тупо вкомпилен в ресурс библиотеки

    ganja_boy, 24 Мая 2010

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

    +113

    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
    private static void assertNoReflection()
    {
        foreach (StackFrame stackFrame in new StackTrace().GetFrames())
        {
            if (stackFrame.GetMethod().DeclaringType.Namespace == "System.Reflection")
            {
                throw new MethodAccessException();
            }
        }
    }
    
    internal static string GetKey()
    {
        assertNoReflection();
    
    // ...
    }

    Вот так вот приходится говнить, потому что в дотнете рефлексией можно спокойно вызывать internal- и private- методы.
    assertNoReflection(); проверяет, что вверх по стеку вызовов никто не балуется рефлексией.
    После assertNoReflection(); из нативной длл получаем обфусцированную (вручную, лол) строку, которая далее с помощью запутанных алгоритмов (некоторые параметры для "расшифровки" опять берутся из нативной длл) приводит её в вид пароля (для доступа к запароленному архиву).
    Софт не прямо уж суперсекретный, просто нужно скрыть ресурсы хотя бы для приличия. Пароль через подключение к серверу не катит.
    Ко всему этому оно собрано в одно exe моновским mkbundle'ом (рефлектор не может открыть!) и поверх upx'ом. В общем, большое количество кулхацкеров отсекается (должны знать ассемблер и MSIL).
    Чувствую, что говнорешение, но не могу придумать что-то более умное. Обфускаторы тоже не очень катят, ибо плохо дружат с моно.

    cfdev, 18 Мая 2010

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

    +971

    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
    #include<stdio.h>
    #include<stdlib.h>
    #define N 3
    using namespace std;
    /*class Node{
    struct Node *f,*s,*t;
    public :
    int x,y;
    
    void Node(int rx,int ry){
    x=rx;
    y=ry;
    return;
    }
    
    };*/
    
    typedef struct node{int x,y}node;
    node tree[100];
    node jmps[3];
    
    
    int main(){
    // Node *root=new Node(-1,-1);
    int i=0,j;
    ////////////////////////
    
    
    ////////////////////////
    tree[0].x=-1;
    tree[0].y=-1;
    
     for(i=0;i<N;i++){
    	for(j<N*)
     
     }
    
    }

    KOLANICH, 14 Мая 2010

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