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

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

    −161

    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
    Для А =0 по Значение.Количество()-1 Цикл
    				Попытка	
    					Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7)+"*"+Строка(Значение[А].поле8)+"*"+Строка(Значение[А].поле9)+"*"+Строка(Значение[А].поле10));
    					Табл.InsertParagraphAfter();
    				Исключение	
    					Попытка	
    						Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7)+"*"+Строка(Значение[А].поле8)+"*"+Строка(Значение[А].поле9));
    						Табл.InsertParagraphAfter();
    					Исключение
    						Попытка	
    							Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7)+"*"+Строка(Значение[А].поле8));
    							Табл.InsertParagraphAfter();
    						Исключение
    							
    							Попытка	
    								Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7));
    								Табл.InsertParagraphAfter();
    							Исключение
    								Попытка	
    									Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6));
    									Табл.InsertParagraphAfter();
    								Исключение	
    									Попытка	
    										Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5));
    										Табл.InsertParagraphAfter();
    									Исключение	
    										Попытка	
    											Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4));
    											Табл.InsertParagraphAfter();
    										Исключение
    											Попытка	
    												Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3));
    												Табл.InsertParagraphAfter();
    											Исключение
    												Попытка	
    													Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+(Строка(Значение[А].поле2)));
    													Табл.InsertParagraphAfter();
    												Исключение
    													Попытка	
    														Табл.InsertAfter(Строка(Значение[А].поле1));
    														Табл.InsertParagraphAfter();
    													Исключение
    														Попытка	
    															Табл.InsertAfter(Строка(Значение[А].поле0));
    															Табл.InsertParagraphAfter();
    														Исключение
    														КонецПопытки;
    													КонецПопытки;	
    												КонецПопытки;
    											КонецПопытки;	
    										КонецПопытки;
    									КонецПопытки;
    								КонецПопытки;	
    							КонецПопытки;	
    						КонецПопытки;	
    					КонецПопытки;
    				КонецПопытки;
    			КонецЦикла;

    Ninomia, 15 Июля 2014

    Комментарии (62)
  3. PHP / Говнокод #16087

    +157

    1. 1
    2. 2
    3. 3
    if (strlen($arResult["ERROR_MESSAGE"]) <= 0){
    // любая ахинея
    }

    2014 год. Битрикс все так же терпеливо ожидает патент на строки отрицательной длины.
    Полагаю, такой икспрешн используется не только в компоненте корзины, учитывая страсть авторов к копипасте.

    velosipedistorg, 30 Мая 2014

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

    +133

    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
    void mb_sim_pix(uchar* IN, uchar* OUT, int *WH, int *bSize, int *A, int *pSize, float *threshold){
    	int pos = mb_calc_pos(A, WH, pSize);
    	int nPos;
    	int i, n;
    	int B[2];
    		
    	for(n = 0; n < 4; n++){
    		
    		switch(n){
    			case 0:
    				B[0] = A[0] + 1;
    				B[1] = A[1];
    			
    			case 1:
    				B[0] = A[0];
    				B[1] = A[1] - 1;
    			
    			case 2:
    				B[0] = A[0];
    				B[1] = A[1] + 1;
    			
    			case 3:
    				B[0] = A[0] - 1;
    				B[1] = A[1];
    		}
    		
    		if(	B[0] >= 0 && B[0] < WH[0] &&
    			B[1] >= 0 && B[1] < WH[1]){
    			nPos = mb_calc_pos(B, WH, pSize);
    			if(mb_val_pix(OUT, &nPos, pSize) == 0){
    				if(mb_sim_pack(IN, &pos, &nPos, pSize) >= *threshold){
    					for(i = 0; i < *pSize; i++) OUT[nPos + i] = IN[nPos + i];
    					mb_sim_pix(IN, OUT, WH, bSize, B, pSize, threshold);
    				}
    			}
    		}
    	}
    }

    Тоже самое через if работает, а через switch проваливается на значении 0 все итерации. Почему?

    Stertor, 27 Июля 2013

    Комментарии (62)
  5. C++ / Говнокод #12694

    +18

    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
    //main.cpp:
    #define THREAD_COUNT 2
    #include "winparallel.h"
    
    main1()
    {
        lock(1);
        int i=0; while(i++<10)
        printf("1: %d\n", i);
        unlock(1);
    }
    
    main2()
    {
        lock(1);
        int i=0; while(i++<10)
        printf("2: %d\n", i);
        unlock(1);
    }
    
    main3(){};
    main4(){};
    main5(){};
    main6(){};
    main7(){};
    main8(){};
    
    
    
    //=====================================================================================
    //winparallels.h:
    #include <windows.h>
    #define _MAX_CORES 8
    LPVOID _void;
    #define main1() DWORD WINAPI _main1(LPVOID lpParam)
    #define main2() DWORD WINAPI _main2(LPVOID lpParam)
    #define main3() DWORD WINAPI _main3(LPVOID lpParam)
    #define main4() DWORD WINAPI _main4(LPVOID lpParam)
    #define main5() DWORD WINAPI _main5(LPVOID lpParam)
    #define main6() DWORD WINAPI _main6(LPVOID lpParam)
    #define main7() DWORD WINAPI _main7(LPVOID lpParam)
    #define main8() DWORD WINAPI _main8(LPVOID lpParam)
    DWORD WINAPI _main1(LPVOID);
    DWORD WINAPI _main2(LPVOID);
    DWORD WINAPI _main3(LPVOID);
    DWORD WINAPI _main4(LPVOID);
    DWORD WINAPI _main5(LPVOID);
    DWORD WINAPI _main6(LPVOID);
    DWORD WINAPI _main7(LPVOID);
    DWORD WINAPI _main8(LPVOID);
    HANDLE _locks[_MAX_CORES];
    int _argc; char **_argv;
    void lock(int n) { DWORD res = WaitForSingleObject(_locks[n], INFINITE); }
    void unlock(int n) { ReleaseMutex(_locks[n]); }
    int main(int argc,char **argv) {
        HANDLE threads[_MAX_CORES];
        DWORD id;
        int THREADS = THREAD_COUNT;
        if (THREADS<=0) {
            SYSTEM_INFO sysinfo;
            GetSystemInfo(&sysinfo);
            THREADS = sysinfo.dwNumberOfProcessors;
            if (THREADS>_MAX_CORES) THREADS = _MAX_CORES;
        }
        _argc = argc; _argv = argv;    
        _locks[0] = CreateMutex(NULL,FALSE,NULL);
        _locks[1] = CreateMutex(NULL,FALSE,NULL);
        _locks[2] = CreateMutex(NULL,FALSE,NULL);
        _locks[3] = CreateMutex(NULL,FALSE,NULL);
        _locks[4] = CreateMutex(NULL,FALSE,NULL);
        _locks[5] = CreateMutex(NULL,FALSE,NULL);
        _locks[6] = CreateMutex(NULL,FALSE,NULL);
        _locks[7] = CreateMutex(NULL,FALSE,NULL);    
        threads[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main1,NULL,0,&id);
        if (THREADS>=2) 
        threads[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main2,NULL,0,&id);
        if (THREADS>=3) 
        threads[2]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main3,NULL,0,&id);
        if (THREADS>=4) 
        threads[3]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main4,NULL,0,&id);
        if (THREADS>=5) 
        threads[4]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main5,NULL,0,&id);
        if (THREADS>=6) 
        threads[5]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main6,NULL,0,&id);
        if (THREADS>=7) 
        threads[6]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main7,NULL,0,&id);
        if (THREADS>=8) 
        threads[7]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main8,NULL,0,&id);
        WaitForMultipleObjects(THREADS, threads, TRUE, INFINITE);
        return 0;
    }

    >После этого всё что нужно освоить про потоки - работу с локами. Локи - это скандинавский бог приостановки потока.

    LispGovno, 05 Марта 2013

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

    +16

    1. 1
    2. 2
    3. 3
    struct WideParams
    {
        WideParams(size_t CountParameters...):

    Посоны, это бомба. Вот что я обнаружил в проекте.

    LispGovno, 12 Ноября 2012

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

    +24

    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
    #include <conio.h>
    #include <stdio.h>
     
     
    const int SIZE = 33;
     
    void DecToBin (unsigned int num, char *bin)
    {
       int i,j;
       char tmp[SIZE];
     
       for(i=0; num; num>>=1, i++)
               tmp[i] = (num&1)?('1'):('0');
       
       for(j=0; j<i; j++)
               bin[j] = tmp[i-j-1];
       bin[j]='\0';
    }
     
    unsigned int shl(unsigned int num, int shift)
    {
            return (num << shift) | (num >> 32 - shift);
    }
     
    void main()
    {
            int n, m;
            scanf("%d", &n);
            
            char bin[SIZE];
     
            DecToBin(n,bin);
            printf("%s\n", bin);
     
            m = shl(n, 35);
            DecToBin(m,bin);
        printf("%s\n", bin);
            _getch();
    }

    Еще одна очередная лаба, но уже код преподавателя, который он дал в качестве примера. Сказал что код на C++ (к вопросу, где здесь с++), и что нам нужно переписать его на "яве".

    maksim_ovcharik, 18 Октября 2012

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

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public int getFileRowsCount(string pathToFile)
    {
           System.IO.TextReader streamReader = new System.IO.StreamReader(pathToFile);
           int rowsCounter = 0;
           while ((streamReader.ReadLine()) != null)
           {
               rowsCounter++;
           }
           streamReader.Close();
           return rowsCounter;
    }

    Из http://habrahabr.ru/post/149877/
    И коммент афтора - "Здесь всё просто: пока не дойдём до пустой строки, прибавляем к счётчику строк единичку. Функция возвращает количество строк."

    phoenixx, 20 Августа 2012

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

    +122

    1. 1
    Console.WriteLine(Math.Sin(long.MaxValue));

    Выведет 9,22337203685478E+18

    koodeer, 26 Апреля 2012

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    THTTPServer::TDynamicResponse::~TDynamicResponse( void )
    {
    	if(typeid(*this)==typeid(TDynamicResponse))//Борьба с pure virtual function call.
    		this->flush();
    };

    Проект поменьше.

    Говногость, 28 Марта 2012

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

    +126

    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
    uses
    crt;
    var
      chasov,
     minutov,
    sekundov :byte;
    tekushchiy_sekund:word;
    begin
    clrscr;
    write('   chasov ');
    read(     chasov);
    if chasov=9
               then
                   begin
                        clrscr;
                        halt;
                   end;
    write('  minutov ');
    read(    minutov);
    write(' sekundov ');
    read(   sekundov);
    clrscr;
    for tekushchiy_sekund:=1
    to sekundov+60*minutov+3600*chasov do
      begin
           if keypressed then
                             if readkey=#27
                                           then halt;
           delay(50000);
      end;
    sound(300);
    readkey;
    nosound;
    end.

    УГАДАЙТЕ

    dos, 11 Июля 2011

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