1. C++ / Говнокод #3796

    +164

    1. 1
    LONG bShutdownCounter;

    Существует много баталий на тему венгерской нотации, есть много за и много против, но это - просто шедевр :)

    ryadovoy, 28 Июля 2010

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    if( ( (i&&z&&z!=1) || (!i&&z&&z==1) ) || j ) 
    {
       ...
    }

    условие

    sova, 27 Июля 2010

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

    +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
    BYTE p1,p2,p3,p4;
    CString p;
    ipa.GetAddress(p1,p2,p3,p4);
    p.Format("%d.", p1);
    s = p;
    p.Format("%d.", p2);
    s += p;
    p.Format("%d.", p3);
    s += p;
    p.Format("%d", p4);
    s += p;
    AfxMessageBox(s);

    книга "Microsoft Visual Studio и MFC", автор Т. Сидорина
    ранее были объявлены
    CIPAddressCtrl ipa;
    CString s;

    s.Format ("%d.%d.%d.%d", p1, p2, p3, p4); //мы не исчем лёгких путей

    daemon_master, 23 Июля 2010

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

    +161

    1. 1
    2. 2
    width ? width-- : width;
    height ? height-- : height;

    Ахуй нехуевый. Не говнокод, наверно, но всё же.

    Altravert, 23 Июля 2010

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

    +148

    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
    #include <cstdio>
    #include <memory.h>
    
    #define maxn 18
    
    char c[maxn][maxn];
    int d[1 << maxn];
    
    int main()
    {
      freopen("network.in", "rt", stdin);
      freopen("network.out", "wt", stdout);
      
      int n; scanf("%d", &n);
      for (int i = 0; i < n; i++)
        scanf("%s", c[i]);
        
      memset(d, 0, sizeof(d));
      
      for (int k = 0; k < (1 << n); k++)
        for (int i = 0; i < n; i++)
          for (int j = 0; j < n; j++)
            if (c[i][j] == 'Y' && k & (1 << i) && k & (1 << j) && d[k - (1 << i) - (1 << j)] + 2 > d[k])
              d[k] = d[k - (1 << i) - (1 << j)] + 2;
              
      int max = 0;
      for (int i = 0; i < (1 << n); i++)
        if (d[i] > max)
          max = d[i];
          
      printf("%d\n", max);
      
      return 0;
    }

    ACM-задачка на динамику по подмножествам.
    Кто поймет, тому 5 ;)

    ystepanov, 22 Июля 2010

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

    +152

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    template<typename T> class myVector {
    private:
    	T* data; // Указатель на массив с данными
    	int count; //Кол-во элементов в векторе
    	T maxv, minv; // Максимальный и минимальный элементы
    	void quicksort(T a[], const int& leftarg, const int& rightarg) const // Сортировочка
    	{
    		if (leftarg < rightarg) {
    			T pivotvalue = a[leftarg];
    			int left = leftarg - 1;
    			int right = rightarg + 1;
    			for(;;) {
    
    				while (a[--right] > pivotvalue);
    				while (a[++left] < pivotvalue);
    				if (left >= right) break;
    				T temp = a[right];
    				a[right] = a[left];
    				a[left] = temp;
    			}
    			int pivot = right;
    			quicksort(a, leftarg, pivot);
    			quicksort(a, pivot + 1, rightarg);
    		}
    	}
    public:
    	myVector() : count(0), data(0), maxv(0), minv(0) // Я хз какие дефолтные значения задавать maxv и minv
    	{
    	}
    	~myVector() //Деструктор
    	{
    		if (data)
    			delete [] data;
    	}
    	void operator<<(const T &Value) //Оператор для добавления элемента в вектор
    	{
    		data = (T*)realloc(data, ++count * sizeof(T));
    		data[count-1] = Value;
    		if (maxv < Value) // Чтобы не искать максимальный и минимальный элемент, чекаем значение при добавлении в массив
    			maxv = Value;
    		else 
    			if (minv > Value)
    				minv = Value;
    	}
    	T& operator[](const int &Index)//Оператор [] для доступа по индексу
    	{
    		if (Index >= count) throw 1;
    		return data[Index];
    	}
    	void orderAsc(T *result) const //Сортировка по возрастанию
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    	}
    	void orderDesc(T *result) const
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    		int swap, b = count;
    		for(int a = 0; a < --b; a++) {
    			swap = result[a];  result[a] = result[b]; result[b] = swap; 
    		}
    	}
    	T max() const
    	{
    		if (!data) throw 1;
    		return maxv;
    	}
    	T min() const
    	{
    		if (!data) throw 1;
    		return minv;
    	}
    };
    int main()
    {
    	myVector<int> v;
    	for (int i = 0; i < 10; i++)
    		v << rand() % 100; // Заполняем рандомными элементами
    	for (int i = 0; i < 10; i++)
    		printf("%d ", v[i]); // Выводим их
    	printf("\n");
    	int *arr = new int[10];
    	v.orderAsc(arr); //Сортируем по возрастанию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i)); //Выводим результат
    	printf("\n");
    	v.orderDesc(arr); //Сортируем по убыванию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i));//Выводим результат
    	printf("\n%d\n%d", v.max(), v.min()); //Выводим максимальный и минимальный элементы
    	delete [] arr;
    }

    Типа вот внезапно так захотелось создать простейший класс вектора. До STL-ного далеко

    JC_NVKZ, 20 Июля 2010

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

    +172

    1. 1
    map<pair<pair<int,int>, int>, vector<pair<pair<int,int>, pair<int,int> > > > m;

    великолепно потом пробегать по коллекции

    MAK, 19 Июля 2010

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #define DOISA(x,p,y)              \
    ClassID x::isA() const{return y;} \
    MYBoolean x::isA(ClassID i) const \
    {                                 \
    	return (i == x::isA() ? TRUE : p::isA(i)); \
    }

    Ядро большого проекта. Имеется довольно большая иерархия наследуемых классов с виртуальными методами isA(). Все эти методы зачем-то сворачиваются в этот макрос.

    DarthBobr, 16 Июля 2010

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

    +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
    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
    switch(filter)
       {
          case FILTER_SPECIAL:
          {
    
             if ( ( u8Direction >= 0xF0 ) || ( u8Direction <= 0x0F ) )
             {
                return 0x0;
             }
             else if ( ( u8Direction >= 0x10 ) && ( u8Direction <= 0x2F ) )
             {
                return 0x2;
             }
             else if ( ( u8Direction >= 0x30 ) && ( u8Direction <= 0x4F ) )
             {
                return 0x4;
             }
             else if ( ( u8Direction >= 0x50 ) && ( u8Direction <= 0x7F ) )
             {
                return 0x6;
             }
             else if ( u8Direction == 0x80 )
             {
                return 0x8;
             }
             else if ( ( u8Direction >= 0x81 ) && ( u8Direction <= 0xAF ) )
             {
                return 0xA;
             }
             else if ( ( u8Direction >= 0xB0 ) && ( u8Direction <= 0xCF ) )
             {
                return 0xC;
             }
             else if ( ( u8Direction >= 0xD0 ) && ( u8Direction <= 0xEF ) )
             {
                return 0xE;
             }
             break;
          }
    
          case FILTER_NORMAL:
          --//--
          break;
          case FILTER_BACKWARD_DIRECTION:
          --//--
         break;
      }

    Сферический индокод в вакууме

    Zielscheibe, 16 Июля 2010

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

    +164

    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
    std::string str(bool val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(short val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(unsigned short val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(int val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(unsigned int val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(long val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(unsigned long val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(float val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(double val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }
    
    std::string str(long double val) {
      std::stringstream ss;
      ss << val;
      return ss.str();
    }

    Вот что значит невыспанная голова!
    Чуть позже переделал в это

    template<class T>
    std::string str(T val) {
    std::stringstream ss;
    ss << val;
    return ss.str();
    }

    rudvil, 14 Июля 2010

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