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

    +32

    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
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char itext[256], otext[256], dln[32], c;
    	int l, i, j, n, b, ws;
    	
    	gets(itext);
    	l = strlen(itext);
    	
    	//Считаем длины слов и их количество
    	dln[0] = 0;
    	n = 0;
    	for(i = 0; i < l; i++)
    	{
    		if(itext[i] != ' ')
    			dln[n]++;
    		else
    		{
    			n++;
    			dln[n] = 0;
    		}
    	}
    	ws = n + 1;
    	
    	//собираем строку
    	j = 0;
    	b = 0;
    	for(n = 0; n < ws; n++)
    	{
    		if(dln[n] % 2 != 1)
    		{
    			for(i = 0; i < dln[n]; i++)
    				otext[j++] = itext[b + (dln[n] - i - 1)];
    			otext[j++] = ' ';
    		}
    		b += dln[n] + 1;
    	}
    	otext[j] = '\0';
    	
    	//меняем регистр
    	for(i = 0; i < j; i++)
    	{
    		c = otext[i];
    		if(c >= 65 && c <= 90)
    			c += 32;
    		else if(c >= 97 && c <= 122)
    			c -= 32;
    		printf("%c", c);
    	}
    		
    	//getch();
    	
    	return 0;
    }

    guest, 30 Мая 2009

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

    +32

    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
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char c, text[1024];
    	int l, i, n;
    	
    	printf("Vvedite text: ");
    	gets(text);
    	l = strlen(text);
    	
    	// 7.2.a -----------------------------------------------------------
    	for(i = 1; i < l; i++)
    		if(text[i] == 'a' && text[i - 1] == ' ')
    			n++;
    	
    	printf("\nStroka soderjit %d slov nachinaushihsa s bukvi a\n", n);
    	
    	// 7.2.b -----------------------------------------------------------
    	c = text[0];
    	n = 0;
    
    	for(i = 1; i < l; i++)
    		if(text[i] == ' ')
    		{
    			if(text[i - 1] == c)
    				n++;
    			c = text[i + 1];
    		}
    	
    	if(text[l - 1] == c)
    		n++;
    	
    	printf("Stroka soderjit %d slov nachinaushihsa i zakanchivaushihsa s odinakovih bukv\n", n);
    	
    	// 7.2.b -----------------------------------------------------------
    	for(i = 0; i < l; i++)
    	{
    		if(text[i] == ' ')
    			printf("%c", '_');
    		else
    			printf("%c", text[i]);
    	}
    	
    	//getch();
    		
    	return 0;
    }

    guest, 30 Мая 2009

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

    −13.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
    16. 16
    17. 17
    18. 18
    void Example5 (Scoord_t* coord, double data [], int size)
    {
        int i = 0;
        while (i < size)
        {
            assert (0<= i && i < size);
            if              (i == 0)                {data [i] = 1;}
            if              (i == 1)                {data [i] = 2;}
            if              (i == 2)                {data [i] = 3;}
            if (i > 2 && i <=size/2) {data [i] = data [i - 3] + 6;}
            if        (i == size/ 2) {data [i] = data [i - 1] + 3;}
            if     (i == size/2 + 1) {data [i] = data [i - 1] - 1;}
            if     (i == size/2 + 2) {data [i] = data [i - 1] - 1;}
            if      (i > size/2 + 2) {data [i] = data [i - 3] - 6;}
            Print (data, i);
            i++;
        }
    }

    Просматривал свои старенькие функции... Не мог удержаться

    guest, 28 Мая 2009

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

    +32

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int edge(int x, int* peak){
    		int min = -1;
    		for (int i = 0; i < N; i++){
    			if (min == -1 && this->arr[x][i] != 0 && peak[i] != 1) min = i;
    			else if (this->arr[x][min] > this->arr[x][i] && this->arr[x][i] != 0 && peak[i] != 1)
    				min = i;
    		}
    		return min;
    	};

    мегафункция=)

    guest, 24 Мая 2009

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

    +33

    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
    if (f(x)<=f(y))
    
    {b=y;
    
    y=x;
    
    x=a+(Fi(N-k-3)/Fi(N-k-1))*(b-a);
    
    };
    
    
    
    if (f(x)>f(y))
    
    {a=x;
    
    x=y;
    
    y=a+(Fi(N-k-2)/Fi(N-k-1))*(b-a);
    
    };

    f(x) - имеет конкретное значение для конкретного x
    http://www.matmetod.ru/fibonacci_program

    guest, 22 Мая 2009

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

    +37

    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
    HWND m_hEdit=::GetWindow(this->m_hWnd,GW_CHILD);
    
      TCHAR ClassName[200];
      while(1&&m_hEdit)
      {
        ::GetClassName(m_hEdit,ClassName,200);
        if((ClassName[0]==_T('E')||ClassName[0]==_T('e'))&&(ClassName[1]==_T('D')||ClassName[1]==_T('d'))
          &&(ClassName[2]==_T('I')||ClassName[2]==_T('i'))&&(ClassName[3]==_T('T')||ClassName[3]==_T('t')))
          break;
    
        m_hEdit=::GetWindow(m_hEdit,GW_HWNDNEXT);
      }
      if (m_hEdit) m_edit.SubclassWindow(m_hEdit);

    Получение hWnd EditBox расположенного внутри ComboBox.

    guest, 22 Мая 2009

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

    +25.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    for(i=0;i<n;i++){
    vector[i]=(a[i]+0.0)/(c[i]+0.0);
    }
    
    result=(extremum(vector,n));
    
    cout<<"Input data was:"<<endl<<endl;
    for (i=0; i < n; i++) {
    cout<<a[i]<<"	/	"<<c[i]<<"	|	"<<vector[i];
    cout<<endl;
    }

    guest, 21 Мая 2009

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

    +38

    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
    void PduBuffer::putLen_BER(size_t len)
    {
    	if(len <= 0x00ffff)
    	{
    		if(len <= 0x007f)
    		{
    			check_room(1);
    			*position++ = (uint1)len;
    		}
    		else if(len <= 0x00ff)
    		{
    			check_room(2);
    			*position++ = 0x81;
    			*position++ = (uint1)len;
    		}
    		else // 0x00ff < len <= 0x00ffff
    		{
    			check_room(3);
    			*position++ = 0x82;
    			*position++ = (uint1)(len >> 8);
    			*position++ = (uint1)len;
    		}
    	}
    	else //len > 0x00ffff
    	{
    		if(len <= 0x00ffffff)
    		{
    			check_room(4);
    			*position++ = 0x83;
    			*position++ = (uint1)(len >> 16);
    			*position++ = (uint1)(len >> 8);
    			*position++ = (uint1)len;
    		}
    		else if(len <= 0xffffffff)
    		{
    			check_room(5);
    			*position++ = 0x84;
    			*position++ = (uint1)(len >> 24);
    			*position++ = (uint1)(len >> 16);
    			*position++ = (uint1)(len >> 8);
    			*position++ = (uint1)len;
    		}
    		else
    			THROW_INTERNAL("BER length out of range [0, 2^32)");
    	}
    	frame_start = NULL;
    }

    Добавление байтов длины TLV-объекта в буфер.

    guest, 20 Мая 2009

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

    −18.9

    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
    ...
    function (int i=0, int j=0){
    if(i>j || j<=i)
    {return i;}else
    {return j;}
    }
    ...
    
    ...
    if ((naibolsee==max(i,j)) && (naibolsee!=max(j,i)))
    {i=max(i,j);}
    else
    {j=max(j,i);}
    ...

    это для квантовых компьютеров, не иначе

    guest, 18 Мая 2009

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

    −45.4

    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
    #ifdef WIN32
    
    typedef DWORD (*LPTHREAD_METHOD)(LPVOID pParam);
    
    // Структура параметров для статической функции.
    typedef struct STARTUP_PARAM
    {
       // MSVThread*        pClass;
        LPTHREAD_METHOD    pMethod;
        LPVOID            pParam;
    } *LPSTARTUP_PARAM;
      
    
        // Функция, которая создает новый поток.
        HANDLE    StartThread        (LPTHREAD_METHOD pMethod, LPVOID pParam=0, 
                                 LPDWORD pdwThreadID = NULL, 
                                 LPSECURITY_ATTRIBUTES pSecurity = NULL , 
                                 DWORD dwStackSize = 0 , 
                                 DWORD dwFlags = 0);
    
        // Статическая функция, которая запустит метод.
        static  DWORD StartFunc    (LPSTARTUP_PARAM pStartup);
    
    
    
    
    HANDLE StartThread(LPTHREAD_METHOD pMethod, LPVOID pParam, 
                                 LPDWORD pdwThreadID /* = NULL */, 
                                 LPSECURITY_ATTRIBUTES pSecurity /* = NULL */, 
                                 DWORD dwStackSize /* = 0 */, 
                                 DWORD dwFlags /* = 0 */)
    {
        // Создаем структуру и упаковываем данные для статической функции.
        LPSTARTUP_PARAM pStartup = new STARTUP_PARAM;
        pStartup->pMethod    = pMethod;
        pStartup->pParam    = pParam;
    
        // Создаем новый поток.
        return CreateThread(pSecurity, dwStackSize, (LPTHREAD_START_ROUTINE)StartFunc, pStartup, dwFlags, pdwThreadID);
    }
    
    // В новом потоке вначале вызывается функция CMyClass::StartFunc(...)
    // А она запускает наш метод.
    
    DWORD StartFunc(LPSTARTUP_PARAM pStartup)
    {
        // Распаковываем данные в новом потоке.
        // Получаем указатель на класс и на метод класса.
        LPTHREAD_METHOD pMethod = pStartup->pMethod;
        LPVOID pParam            = pStartup->pParam;
    
        // Запускаем метод класса в новом потоке.
        DWORD dwResult = (*pMethod)(pParam);
    
        // Удаляем временные данные и возвращаем код возврата из нового потока.
        delete pStartup;
        return dwResult;
    }
    
    #else
    
    #include "pthread.h"
    
    typedef DWORD (*LPTHREAD_METHOD)(LPVOID pParam);
    
    // Структура параметров для статической функции.
    typedef struct STARTUP_PARAM
    {
        LPTHREAD_METHOD    pMethod;
        LPVOID            pParam;
    } *LPSTARTUP_PARAM;
      
        // Статическая функция, которая запустит метод.
        static  DWORD StartFunc    (LPSTARTUP_PARAM pStartup);
    
        // Функция, которая создает новый поток.
    HANDLE StartThread(LPTHREAD_METHOD pMethod, LPVOID pParam=0, 
                                 LPDWORD pdwThreadID=0 /* = NULL */, 
                              //   LPSECURITY_ATTRIBUTES pSecurity /* = NULL */, 
                              //   DWORD dwStackSize /* = 0 */, 
                                 const pthread_attr_t* dwFlags=0 /* = 0 */)
    {
        // Создаем новый поток.
    	pthread_t restrict;
    	if(pthread_create(&restrict, dwFlags, (void* (*)(void*))pMethod, pParam)) return pdwThreadID;
    	return 0;
    }
    
    #endif

    Человек пишет кросплатформенный http-сервер, а заодно свой собсвенный фреймворк. Участок кода с нитями.

    guest, 16 Мая 2009

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