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

    +59

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int getObjectsCount() const { ... }
    ...
    void restoreObjects()
    {
        ...
        const unsigned int objectsCount = restoreInt();
    
        assert(objectsCount == objects.getObjectsCount());
        ...
    }

    Ансайнд, туда и обратно

    atsgovno, 31 Марта 2015

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

    +58

    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 "stdafx.h"
    #define n 3
    
    void PrintMatrix(vector<vector<float> >imatrix)
    {
    	for (size_t i = 0; i < n; ++i)
    	{
    		cout << endl;
    		for (size_t j = 0; j < n; ++j)
    		{
    			cout.precision(3);
    			cout << " " << imatrix[i][j];
    		}
    	}
    }
    
    void ReverseMatrix(vector<vector<float> >imatrix, float determ)
    {
    	float t = 0;
    	for (size_t i = 0; i < n; i++)
    	{
    		for (size_t j = 0; j < n; j++)
    		{
    			t = imatrix[i][j] * (1 / determ);
    			imatrix[i][j] = t;
    		}
    	}
    	PrintMatrix(imatrix);
    }
    
    void TransposedMatrix(vector<vector<float> >imatrix, float determ)
    {
    	float t = 0;
    	for (size_t i = 0; i < n; i++)
    	{
    		for (size_t j = i; j < n; j++)
    		{
    			t = imatrix[i][j];
    			imatrix[i][j] = imatrix[j][i];
    			imatrix[j][i] = t;
    		}
    	}
    	ReverseMatrix(imatrix, determ);
    }
    
    void MinorMatrix(vector<vector<float> >imatrix, float determ)
    {
    	vector<vector<float> >imatrix2(n);
    	float t = 0.0;
    	for (size_t i = 0; i < n; ++i)
    	{
    		imatrix2[i].resize(n);
    		for (size_t j = 0; j < n; ++j)
    		{
    			if (i == 0)
    			{
    				switch (j){
    				case 0: imatrix2[i][j] = imatrix[i + 1][j + 1] * imatrix[i + 2][j + 2] - imatrix[i + 1][j + 2] * imatrix[i + 2][j + 1]; t = imatrix2[i][j];break;
    				case 1: imatrix2[i][j] = (imatrix[i + 1][j - 1] * imatrix[i + 2][j + 1] - imatrix[i + 2][j - 1] * imatrix[i + 1][j + 1]) * (-1); t = imatrix[i][j]; break;
    				case 2: imatrix2[i][j] = imatrix[i + 1][j - 2] * imatrix[i + 2][j - 1] - imatrix[i + 1][j - 1] * imatrix[i + 2][j - 2];t = imatrix2[i][j];break;
    				}
    			}
    			if (i == 1)
    			{
    				switch (j){
    				case 0: imatrix2[i][j] = (imatrix[i - 1][j + 1] * imatrix[i + 1][j + 2] - imatrix[i - 1][j + 2] * imatrix[i + 1][j + 1]) * (-1);t = imatrix2[i][j];break;
    				case 1:imatrix2[i][j] = imatrix[i - 1][j - 1] * imatrix[i + 1][j + 1] - imatrix[i - 1][j + 1] * imatrix[i + 1][j - 1];t = imatrix2[i][j];break;
    				case 2:imatrix2[i][j] = (imatrix[i - 1][j - 2] * imatrix[i + 1][j - 1] - imatrix[i - 1][j - 1] * imatrix[i + 1][j - 2]) * (-1);t = imatrix2[i][j];break;
    				}
    			}
    			if (i == 2)
    			{
    				switch (j){
    				case 0: imatrix2[i][j] = imatrix[i - 2][j + 1] * imatrix[i - 1][j + 2] - imatrix[i - 1][j + 1] * imatrix[i - 2][j + 2];t = imatrix2[i][j];break;
    				case 1:imatrix2[i][j] = (imatrix[i - 2][j - 1] * imatrix[i - 1][j + 1] - imatrix[i - 1][j - 1] * imatrix[i - 2][j + 1]) * (-1);t = imatrix2[i][j];break;
    				case 2: imatrix2[i][j] = imatrix[i - 2][j - 2] * imatrix[i - 1][j - 1] - imatrix[i - 2][j - 1] * imatrix[i - 1][j - 2];t = imatrix2[i][j];break;
    				}
    			}
    		}
    	}
    	imatrix.clear();
    	TransposedMatrix(imatrix2, determ);
    }
    
    void FindDeterminant(vector<vector<float> >imatrix)
    {
    	float determ = imatrix[0][0] * imatrix[1][1] * imatrix[2][2] + imatrix[2][0] * imatrix[0][1] * imatrix[1][2] + imatrix[1][0] * imatrix[2][1] * imatrix[0][2] - imatrix[2][0] * imatrix[1][1] * imatrix[0][2] - imatrix[0][0] * imatrix[2][1] * imatrix[1][2] - imatrix[1][0] * imatrix[0][1] * imatrix[2][2];
    	if (determ == 0)
    	{
    		cout << "Determinant = 0 ==> Reverse matrix doesn't exist";
    		system("pause");
    		exit(0);
    	}
    	MinorMatrix(imatrix, determ);
    }

    Вот таких студентов учить приходится. От оно как матрицы 3*3 инвертируют.
    Больше лучей ненависти тут:
    https://github.com/PLaGInc/Lab1/issues/3

    Vivid, 31 Марта 2015

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

    +54

    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
    std::pair<long double, long double> Calculator::leastsquares(const QVector<double> &x, const QVector<double> &yy) const
    {
        QVector<double> y = yy;
        for (int i = 0; i < y.size(); ++i) {
            y[i] += 1.0;
        }
        long double A, B, a = 0, b = 0, at = 0, tt = 0, bt = 0, tmp = 0;
        for (int i = 0; i < x.size(); ++i) {
            tmp += x[i] * x[i] * y[i];
        }
        
        a = tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i] * log(y[i]);
        }
        
        a *= tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i] * x[i];
        }
        
        at = tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i] * x[i] * log(y[i]);
        }
        
        at *= tmp;
        tmp = 0;
        
        a -= at;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i];
        }
        
        at = tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += x[i] * x[i] * y[i];
        }
        
        tt = at * tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += x[i] * y[i];
        }
        
        tt -= tmp * tmp;
        tmp = 0;
        
        a /= tt;
        
        A = exp(a);
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i];
        }
        
        b = tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += x[i] * y[i] * log(y[i]);
        }
        
        b *= tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i] * x[i];
        }
        
        bt = tmp;
        tmp = 0;
        
        for (int i = 0; i < x.size(); ++i) {
            tmp += y[i] * log(y[i]);
        }
        
        bt *= tmp;
        tmp = 0;
        
        b -= bt;
        
        b /= tt;
        
        B = b;
        
        return std::make_pair(A, B);
    }

    Abbath, 28 Марта 2015

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

    +47

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int sync1; sync1 = 50;
    int sync[sync1];
    for (i=0; i<50; i++) {
        sync[i] = 0;
    }

    Croessmah, 26 Марта 2015

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

    +57

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    double g(void) {
    int i;
    for (i = 0; i < N; i++) {
    return (3*psi[i] + 25) * (0.1);
    }
    }

    Попросили посмотреть код. Привожу как есть.

    hindsight, 25 Марта 2015

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

    +52

    1. 1
    #include <boobs_1_57_0/boost/range.hpp>

    laMer007, 24 Марта 2015

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

    +144

    1. 1
    2. 2
    info->cipher_oid = oid_to_string(p->header2->header3->header4->header5->cipher_oid);
    info->hash_oid = oid_to_string(p->header2->header3->header4->header5->hash_oid);

    Вчера наговнокодил.

    bormand, 18 Марта 2015

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

    +54

    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
    std::list<CCPoint> GameMap::stringToCCPArray(std::string points_string, float _x, float _y)
    {
    	points_string.push_back(' ');
    	std::list<CCPoint> CCPList = list<CCPoint>();
    	float x = 0.0f;
    	float y = 0.0f;
    	unsigned int len = 0;
    	bool isCurrentX = true;
    	for(std::string::iterator it = points_string.begin(); it != points_string.end(); ++it){
    		int q = 0;
    		len > 0 ? 
    			--len: (isdigit(*it) ? 
    				(q = atoi(&(*it)), len = countNumbersInInt(q), 
    				isCurrentX ?
    					x = atoi(&(*it)): y = atoi(&(*it))) : 
    				*it == ',' ? 
    					(isCurrentX = false): (CCPList.push_back(ccp(x,(-1 * y))), x = 0.0f, y = 0.0f, isCurrentX = true)) ;
    	}
    
    	return CCPList;
    }

    t0rmund, 18 Марта 2015

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

    +56

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int count = 0;
    while (condition) {
        if (count == 5) { // Kind of like sleeping for 0.2 milliseconds
            Sleep(1);
            count = 0;
        }
        // Do whatever.
        count++;
    }

    Последний ответ, показывает способ усыпить комп на 0.2 ms. И это после ответов со всякими сокетами, boost-таймерами и прочей мутью. Ответ такой типа, эй, чуваки вы ничо не понимаете, вот как надо, удобно же че бы нет))
    http://stackoverflow.com/questions/85122/how-to-make-thread-sleep-less-than-a-millisecond-on-windows/11456112#11456112

    vitaly, 17 Марта 2015

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

    +58

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    unsigned long long int getSumUtil(unsigned long long int *st, unsigned long long int ss, unsigned long long int se, unsigned long long int qs, unsigned long long int qe, unsigned long long int index)
    
    //cout<<"here";
    
    //prunsigned long long intf("here");
    
    //printf("%llu\n%llu\n%c",i,j,type);

    По следам prunsigned intf из http://govnokod.ru/17791.
    http://www.codechef.com/viewplaintext/3039072
    Ctrl+H - наш ответ typedef!

    1024--, 16 Марта 2015

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