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

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    QMutableListIterator<AISObjectQML *> it(m_visibleList);
    if (it.hasNext()) {
        AISObjectQML *v = it.next();
        if (v) { // здесь должен быть while, но, признаться, на это уже посрать
            delete v;
        }
    }
    m_visibleList.clear();

    Есть люди, которые придумали концепцию итераторов для реализации generic алгоритмов. А есть люди, которые любят итераторы, но не любят generic алгоритмы. Ведь с ними код не внушает ужаса и рвотных позывов

    Antervis, 15 Марта 2016

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

    +1

    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
    function getQuarter(month) {
                            if (0 <= month && month <= 2) return "Q1 ";
                            if (3 <= month && month <= 5) return "Q2 ";
                            if (6 <= month && month <= 8) return "Q3 ";
                            return "Q4 ";
                        };
    
                        function getDate(lastActionDate) {
                            var dateString = lastActionDate.split(/\-|\s/);
                            var date = new Date(dateString.slice(0, 2));
                            var month = date.getMonth();
                            var year = date.getFullYear();
                            var quarter = getQuarter(month);
                            return "<span>Last Action Plan: <br> " + quarter + year + "</span>";
                        }

    на проекте активно используется momentjs

    zxxc, 24 Ноября 2015

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

    +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
    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
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll ;
    const int maxn = 100010 ;
    int n , m;
    struct node {
        int x , y;
    }p[10];
    bool cmp(node a , node b)
    {
        if(a.x == b.x) return a .y < b.y ;
        return a.x < b.x ;
    }
    int main()
    {
        scanf("%d",&n) ;
        for(int i = 0 ;i<n ;i++){
            scanf("%d%d",&p[i].x , &p[i].y) ;
        }
        sort(p,p+n ,cmp) ;
        if(n==1){
            printf("-1\n") ;
        }
        else if(n == 2){
            if(p[0].x == p[1].x ||p[0].y == p[1].y){
                printf("-1\n") ;
            }
            else{
                printf("%d\n",abs( p[1].x - p[0].x) * abs(p[1].y - p[0].y))  ;
            }
        }
        else if(n == 3){
            if(p[0].x == p[1].x && p[1].x == p[2].x){
                printf("-1\n") ;
            }
            else if(p[0].y == p[1].y && p[1].y == p[2].y){
                printf("-1\n") ;
            }
            else if(p[0].x == p[1].x){
                if(p[0].y == p[2].y){
                    printf("%d\n",abs(p[1].y - p[2].y) * abs(p[0].x - p[2].x)) ;
                }
                else if(p[1].y == p[2].y){
                    printf("%d\n",abs(p[0].y - p[2].y )*abs(p[0].x -p[2].x)) ;
                }
                else{
                    printf("-1\n") ;
                }
            }
            else if(p[1].x == p[2].x){
                if(p[0].y == p[1].y){
                    printf("%d\n",abs(p[0].y - p[2].y) * abs(p[0].x - p[2].x)) ;
                }
                else if(p[0].y == p[2].y){
                    printf("%d\n",abs(p[0].y - p[1].y )*abs(p[0].x -p[2].x)) ;
                }
                else{
                    printf("-1\n");
                }
            }
           else{
                printf("-1\n");
            }
        }
        else {
            if(p[0].x != p[1].x || p[2].x !=p[3].x ||p[1].y !=p[3].y ||p[0].y != p[2].y ){
                printf("-1\n") ;
            }
            else{
                int flag = 1;
                for(int i = 0 ; i< 4;i++){
                    for(int j = i+1 ;j<4 ;j++){
                        for(int k = j+1 ;k<4;k++){
                            if(p[i].x == p[j].x && p[j].x == p[k].x){
                                printf("-1\n");
                                flag = 0;
                                break ;
                            }
                            else if(p[i].y == p[j].y && p[j].y == p[k].y){
                                printf("-1\n") ;
                                flag = 0;
                                break ;
                            }
                        }
                        if(!flag) break ;
                    }
                    if(!flag) break ;
                }
                if(flag){
                    printf("%d\n",abs(p[1].x - p[3].x) * abs(p[0].y - p[1].y)) ;
                }
            }
        }
        return 0;
    }

    олимпиадники такие олимпиадники

    XYEHOC, 15 Ноября 2015

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

    +157

    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
    Здрасьте.
    
    Есть самая верхняя строчка на странице, так сказать, самый верхный header. В ней на сайтах часто располагается контактная информация (телефоны, адреса, прочее), так вот, мне нужно сделать так, чтобы элементы <a><img></a> были видны лишь спустя сотку-две пикселей прокрутки. Я призадумалась, поискала и нашла такой код:
    
    <?php function scroll_block(){
    var stop = (document.body.scrollTop || document.documentElement.scrollTop);
    var el=document.getElementById('menublock');
    if(stop>150){
    if(el.style.display!='block'){ 
    el.style.display='block'; 
    }
    }
    else 
    el.style.none='none';
    
    return false;
    }
    
    if (window.addEventListener){
    window.addEventListener("scroll", scroll_block, false);
    window.addEventListener("load", scroll_block, false);
    }
    else if (window.attachEvent){
    window.attachEvent("onscroll", scroll_block);
    window.attachEvent("onload", scroll_block);
    }
    
    <div id='menublock' style="display:none">а тут меню</div>
    ?>
    Затем я подумала, и теперь сделала сам элемент:
    
    <div id="hideousvar"> <a href="http://dev.zoldol.ru/vremya-raboty-sklonov"> <img class="varhid" style="padding: 0px 5px 12px 5px;height: 25px;" title="Время работы склонов" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/clock.png"></a>
    
    <a href="http://dev.zoldol.ru/webcamera"> <img class="varhid" style="padding: 0px 5px 10px 5px;height: 28px;" title="WEB-камера" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/camera.png"></a>
    
    <a href="http://dev.zoldol.ru/3d-tour"> <img class="varhid" style="padding: 0px 0px 5px 0px;height: 35px;" title="3D-тур" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/tour.png"></a>
    
    <a href="http://dev.zoldol.ru/scheme"> <img class="varhid" style="padding: 0px 5px 13px 5px; height: 24px;" title="Интерактивная карта склона" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/map.png"></a> </div>
    
    Функция:
    
    <?php function scroll_block(){ var stop = (document.body.scrollTop || document.documentElement.scrollTop); var el=document.getElementById('hideousvar'); if(stop>150){ if(el.style.display!='block'){ el.style.display='block'; } } else el.style.none='none';
    
            return false;
            }
    
        if (window.addEventListener){
            window.addEventListener("scroll", scroll_block, false);
            window.addEventListener("load", scroll_block, false);
                }
        else if (window.attachEvent){
            window.attachEvent("onscroll", scroll_block);
            window.attachEvent("onload", scroll_block);
            }
    
    <div id='hideousvar' style="display:none">а тут меню</div>
    ?>
    
    Но что-то не сработало. Подскажите, пожалуйста. Буду безмерно благодарна за помощь.

    Наткнулся на хешкоде на следующее чудо.
    Хоть и топик тот, судя по всему, писала девушка, но всё ж, блин, с более-менее профессиональной моей точки зрения, это совсем ужас :D
    Всё содержание топика точно скопипащено.:D

    RSLab, 28 Ноября 2014

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

    +160

    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
    /**
    * @param array $input
    * @return array
    * @throws Exception
    */
    protected function makeParams($input)
    {
        if (!is_array($input))
        {
            throw new \Exception('argument should be array');
        }
    
        $params = array();
    
        foreach ($input as $k=>$v)
        {
            $params[] = $v;
        }
    
        return $params;
    }

    свой array_values, с блекджеком и экзепшенами

    heyzea1, 21 Ноября 2014

    Комментарии (62)
  7. 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)
  8. PHP / Говнокод #16087

    +157

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

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

    velosipedistorg, 30 Мая 2014

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

    +16

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

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

    LispGovno, 12 Ноября 2012

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