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

    +1003

    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
    unsigned int mapGray(double color/*0.0 --- 255.0*/)
    {
        int base = static_cast<unsigned char>(color);
        if(base>=255)
            return 0xFFFFFFFF;
        else if(base<0)
            return 0x000000;
        double frac = color-base;
        unsigned char r = 0;
        unsigned char g = 0;
        unsigned char b = 0;
        if(frac<1.0/14.0) {
        } else if(frac<3.0/14.0) {
            r=1;
        } else if(frac<5.0/14.0) {
            b=1;
        } else if(frac<7.0/14.0) {
            g=1;
        } else if(frac<9.0/14.0) {
            b=1;
            r=1;
        } else if(frac<11.0/14.0) {
            g=1;
            b=1;
        } else if(frac<13.0/14.0) {
            r=1;
            g=1;
        } else {
            r=1;
            g=1;
            b=1;
        }
        return (base+r)<<16 | (base+g)<<8 | (base+b) | 0xFF000000;
    }

    Чуть больше оттенков серого.

    Xom94ok, 19 Декабря 2011

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

    +997

    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
    Can you think of an algorithm that performs the below:
    “The Big Brown Fox”    	     => “Fox Brown Big The”
    “How are you?”                 => “you? are How”
    
    std::string reverse_words( const std::string& str )
    {
      std::string result;
      result.reserve( str.length() );
      
      size_t word_begin = 0;
      while( word_begin < str.length() )
      {
        const size_t pos = str.find_first_of( ' ', word_begin );
        pos = (pos != string::npos) ? pos : str.length();
        std::string word = str.substr( word_begin, pos-word_begin );
        word_begin = pos + 1;
    
        if (result.length() > 0)
        {
          word.append( 1, ' ');
        }
        result.insert( 0, word );
      }
      return result;
    }

    высрал буквально 5 минут назад
    inplace версию чего-то влом писать для домашнего теста, да и кода в ней будет больше, но работать она должна быстрее за счет отсутствия аллокаций
    но писать надо, так как отправлять такое как-то стыдно

    pushkoff, 17 Декабря 2011

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

    +166

    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
    /*** The following methods are NOT functional
    	        They're just there to detect coding errors at compilation time ***/
    	    inline KgeRGBAVector operator + (const KgeRGBAVector &/*pVector*/) const {KgeRGBAVector lNullVector; return lNullVector;}
            inline KgeRGBAVector operator - (const KgeRGBAVector &/*pVector*/) const {KgeRGBAVector lNullVector; return lNullVector;}
            inline KgeRGBAVector operator * (const KgeRGBAVector &/*pVector*/) const {KgeRGBAVector lNullVector; return lNullVector;}
            inline double  operator ^ (const KgeRGBAVector &/*pVector*/) const {return 0.0;}
            inline KgeRGBAVector &operator += (const KgeRGBAVector &/*pVector*/) {return *this;}
            inline KgeRGBAVector &operator -= (const KgeRGBAVector &/*pVector*/) {return *this;}
            inline KgeRGBAVector &operator *= (const KgeRGBAVector &/*pVector*/) {return *this;}
    
            inline KgeRGBAVector operator * (double /*pScalar*/) const {KgeRGBAVector lNullVector; return lNullVector;}
            inline KgeRGBAVector operator / (double /*pScalar*/) const {KgeRGBAVector lNullVector; return lNullVector;}
            inline KgeRGBAVector &operator *= (double /*pScalar*/) {return *this;}
            inline KgeRGBAVector &operator /= (double /*pScalar*/) {return *this;}

    Говнокод или гениально? Дискас.

    makc3d, 17 Декабря 2011

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

    +1002

    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
    string Daumants::getReverse()
    {
    	string message = this->data();
    	char *reverseMessage = new char[this->length()];
    	for (int i = this->length() - 1, j = 0; i >= 0; i--, j++)
    	{
    		reverseMessage[j] = message[i];
    	}
    
    	for (int i = 0; i < this->length(); i++)
    	{
    		message[i] = reverseMessage[i];
    	}
    
    	return message;
    }

    Даумант ХУЙ!

    toxicDuck, 14 Декабря 2011

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

    +993

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(pObject == NULL)
    {
            //code
    }else if(pObject != NULL && pObject->getProperty() == Class::VALUE)
    {
           //code
    }

    Идентификаторы надуманные, но суть такова

    google-moogle, 14 Декабря 2011

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

    +145

    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
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #define eps 0.001
    
    float Phi1 (float x_pred[1])
    {
          return asin(1.2 + x_pred[1]) - 1;
    }
    
    float Phi2 (float x_pred[0])
    {
          return acos(2 - 2*x_pred[0]);
    }
    
    int main ()
    {
        float x_pred[1],x[1];
        float norma;
        
        x_pred[0] = 0.4;
        x_pred[1] = -0.3;
        
        do
        {
          x[0] = Phi1(x_pred[1]);
          x[1] = Phi2(x_pred[0]);
          printf("%6.2f",x[0]);
          printf("             %6.2f\n",x[1]);
          norma = (fabs(x[0] - x_pred[0])) > fabs((x[1] - x_pred[1])) ? fabs(x[0] - x_pred[0]) : fabs(x[1] - x_pred[0]);
          if (norma >= eps) break;
          else
          {
            x_pred[0] = x[0];
            x_pred[1] = x[1];
          }
        }
        while (1);
        getch();
        return 0;
    }

    govnouser, 13 Декабря 2011

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

    +1006

    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
    99. 99
    const unsigned BAD_VALUE = (unsigned) -1;
    typedef pair<string, unsigned> RomeDecPair;
    typedef map<string, unsigned> Table;
    Table g_table;
     
    void InitTables()
    {
      g_table["I"] = 1;
      g_table["II"] = 2;
      g_table["III"] = 3;
      g_table["IV"] = 4;
      g_table["V"] = 5;
      g_table["VI"] = 6;
      g_table["VII"] = 7;
      g_table["VIII"] = 8;
      g_table["IX"] = 9;
      g_table["X"] = 10;
      g_table["XX"] = 20;
      g_table["XXX"] = 30;
      g_table["XL"] = 40;
      g_table["L"] = 50;
      g_table["XC"] = 90;
      g_table["C"] = 100;
      g_table["CC"] = 200;
      g_table["CCC"] = 300;
      g_table["CD"] = 400;
      g_table["D"] = 500;
      g_table["CM"] = 900;
      g_table["M"] = 1000;
      g_table["MM"] = 2000;
      g_table["MMM"] = 3000;
    }
    .....
    int main()
    {
      InitTables();
     
      vector<RomeDecPair> tests;
     
      tests.push_back(make_pair("I", 1));
      tests.push_back(make_pair("II", 2));
      tests.push_back(make_pair("III", 3));
      tests.push_back(make_pair("IV", 4));
      tests.push_back(make_pair("V", 5));
      tests.push_back(make_pair("VI", 6));
      tests.push_back(make_pair("VII", 7));
      tests.push_back(make_pair("VIII", 8));
      tests.push_back(make_pair("IX", 9));
      tests.push_back(make_pair("X", 10));
      tests.push_back(make_pair("XI", 11));
      tests.push_back(make_pair("XII", 12));
      tests.push_back(make_pair("XIII", 13));
      tests.push_back(make_pair("XIV", 14));
      tests.push_back(make_pair("XV", 15));
      tests.push_back(make_pair("XVI", 16));
      tests.push_back(make_pair("XVII", 17));
      tests.push_back(make_pair("XVIII", 18));
      tests.push_back(make_pair("XIX", 19));
      tests.push_back(make_pair("XX", 20));
      tests.push_back(make_pair("XXI", 21));
      tests.push_back(make_pair("XL", 40));
      tests.push_back(make_pair("XLII", 42));
      tests.push_back(make_pair("LIX", 59));
      tests.push_back(make_pair("LXXVII", 77));
      tests.push_back(make_pair("XC", 90));
      tests.push_back(make_pair("CX", 110));
      tests.push_back(make_pair("CDXCIX", 499));
      tests.push_back(make_pair("DLXXXIII", 583));
      tests.push_back(make_pair("DCCCLXXXVIII", 888));
      tests.push_back(make_pair("MDCLXVIII", 1668));
      tests.push_back(make_pair("MCMLXXXIX", 1989));
      tests.push_back(make_pair("MMMCMXCIX", 3999));
     
      tests.push_back(make_pair("", BAD_VALUE));
      tests.push_back(make_pair("IIIV", BAD_VALUE));
      tests.push_back(make_pair("IIV", BAD_VALUE));
      tests.push_back(make_pair("IIII", BAD_VALUE));
      tests.push_back(make_pair("IIX", BAD_VALUE));
      tests.push_back(make_pair("XIIII", BAD_VALUE));
      tests.push_back(make_pair("XIIIIX", BAD_VALUE));
      tests.push_back(make_pair("XIIIIX", BAD_VALUE));
      tests.push_back(make_pair("XXXX", BAD_VALUE));
      tests.push_back(make_pair("LL", BAD_VALUE));
      tests.push_back(make_pair("CLC", BAD_VALUE));
      tests.push_back(make_pair("CLL", BAD_VALUE));
      tests.push_back(make_pair("DLD", BAD_VALUE));
      tests.push_back(make_pair("LDD", BAD_VALUE));
      tests.push_back(make_pair("LLI", BAD_VALUE));
      tests.push_back(make_pair("MMMCMXCX", BAD_VALUE));
      tests.push_back(make_pair("AXX", BAD_VALUE));
      tests.push_back(make_pair("LXA", BAD_VALUE));
     
      for (vector<RomeDecPair>::const_iterator it = tests.begin(), end = tests.end(); it != end; ++it)
      {
        CheckConversion(*it);
      }
     
      return 0;
    }

    bugaga, 10 Декабря 2011

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

    +138

    1. 1
    #define true false

    happy debug!

    BashOrgRu, 09 Декабря 2011

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

    +1001

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    bool f = true;
      short c0 = a0, c1 = a1, c2 = a2, c3 = a3;
      if (a0 < c1) { f = false; a0 = c1; a1 = c0 - c1; a2 = c1 - c2; a3 = c1 - c3; }
      if (a0 < c2) { f = false; a0 = c2; a1 = c2 - c1; a2 = c0 - c2; a3 = c2 - c3; }
      if (a0 < c3) { f = false; a0 = c3; a1 = c3 - c1; a2 = c3 - c2; a3 = c0 - c3; }
      if (f)                  { a0 = c0; a1 = c0 - c1; a2 = c0 - c2; a3 = c0 - c3; }

    Чувак не знает про else / else if. :(

    pewpew, 07 Декабря 2011

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

    +1001

    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
    // Функция регистрирующая ошибку
    VOID SetError(DWORD dwError)
    {
        CHAR szErr[256];
        sprintf(szErr, "%lu", dwError);
        SetEnvironmentVariable("0xdeadc0de", szErr);
    }
    
    // Шеллкод
    __declspec(dllexport)
    VOID WINAPI Shell(REMSTART *pCtx)
    {
        pCtx->pLoadLibraryA(pCtx->sz);
        
        CHAR szVar[] = {'0','x','d','e','a','d','c','0','d','e','\0'};
            
        CHAR szErr[256];
        
        if (!pCtx->pGetEnvironmentVariableA(szVar, szErr, sizeof(szErr)))
            pCtx->pExitThread(ERROR_LOAD_HOOK_DLL);
        
        DWORD dwError = 0;
    
        for (DWORD i = 0; szErr[i]; i++)
        {
            dwError *= 10;
            dwError += szErr[i] - '0';
        }
    
        pCtx->pExitThread(dwError);
    }

    Удивительнейший способ регистрации ошибок в функции DllMain при инжекте библиотеки шеллкодом из другого процесса (кто знает - тот поймет)... линк: http://www.wasm.ru/forum/viewtopic.php?id=43291

    ReL, 07 Декабря 2011

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