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

    +67.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
    15. 15
    16. 16
    char blt=0;
    void WriteBit(bool bit)
    {
    	if(BitCount<9)
    	{
    		if(bit){blt|=(1<<BitCount);BitCount++;}
    		if(!bit){blt&=~(1<<BitCount);BitCount++;}	
    
    	}
    	else
    	{
    		out_file<<blt;
    		BitCount=0;
    		blt=0;
    	}
    }

    че-то типа запись в байт битов))

    fekrado, 19 Января 2010

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

    +52.6

    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
    #include <iostream.h>
    #include <conio.h>
    using namespace std;
    
    int main (int argc, char *argv[])
    {
     
      system ("Title Kaлькyлятop");
    
      int x, y, otvet;
      char znak;
     
      cin >> x >> znak >> y;
        
      if (znak == '+') otvet = x+y;
      if (znak == '-') otvet = x-y;
      if (znak == '*') otvet = x*y;
      if (znak == '/') otvet = x/y;
    
      system ("cls");
    
      cout << x << znak << y << "=" << otvet;
    
      getch();
      return 0;
    }

    Kaлькyлятop

    men, 19 Января 2010

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

    +59.6

    1. 1
    *reinterpret_cast<int *>(&showFlags) = behavior.value("showFlags", 0xfffffff);

    Немножко эзотерики, нашел в нашем проекте, писалось видимо в 3 часа ночи.

    Sauron, 18 Января 2010

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

    +144.5

    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
    #include <iostream>
    using namespace std;
    int print_out(int num);
    int main() {
    int n;
    cout << "Введите число: " << endl;
    cin >> n;
    cout << "Целые числа до " << n << ":" << endl;
    cout << print_out(n);
    }
    int print_out(int n) {
    int i;
    for (i=1; i<n;++i)
    cout << i << " ";
    return i;
    }

    Как это работает?

    BiLLy, 18 Января 2010

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

    +62.8

    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
    bool failed = true;
    	int count = 0;
    	do
    	{
    		{
    			ADO cnn( service().connectionString() );
    			if (count == 0)
    			{
    				_RecordsetPtr rs = cnn.Command(L"SELECT MAX(MessNo) as MAXNO FROM RobotLog", ADODB::adCmdText)
    					.Execute();
    				if (rs->EndOfFile == VARIANT_FALSE)
    				{
    					vt = rs->Fields->Item[L"MAXNO"]->Value;
    					if (vt.vt != VT_NULL)
    						messNo = vt.lVal + 1;
    				}
    				rs->Close();
    			}
    			else
    				messNo++;
    			try
    			{
    				cnn.Command(L"INSERT INTO RobotLog(MessNo,MessType,MessDate,MessText,Empl_Code,CompName,Robot_Code, "
    					L"Robot_Name,Doc_Name,Doc_No,Doc_CardDate) VALUES(?,?,?,?,?,?,?,?,?,?,?)", ADODB::adCmdText)
    					.CreateParameter(messNo)
    					.CreateParameter((long) messType)
    					.CreateParameter((DATE) COleDateTime::GetCurrentTime())
    					.CreateParameter(bstr_t(messText.AllocSysString()))
    					.CreateParameter((long)m_EmplCode)
    					.CreateParameter(service().computerName())
    					.CreateParameter((long)m_ID)
    					.CreateParameter(sRobotName)
    					.CreateParameter(sDocName, false)
    					.CreateParameter(sDoc_No, false)
    					.CreateParameter(dCardDate)
    					.Execute();
    				failed = false;
    			}
    			catch(_com_error& )
    			{
    //				DebugMsgE("CRobotThread::LogRobotWork[%s] error: 0x%08x::%s - %s. Attempt #:%d", (const char*)m_RobotName, err.Error(), (const char*) err.Description(), 
    //					(const char*) err.ErrorMessage(), count);
    			}
    		}
    		count++;
    		Sleep(100);
    	}while (failed && count < 10000);

    Вычисляемое значение 'messNo' прописывается в PK. Код выполняется мультипоточночно, примерно из 5 - 15 одновременно работающих потоков.
    Вот такая вот попытка 10000 раз прописать неуникальное значение первичного ключа :)
    Но, самое смешное, что на моё предложение перенести заботу об уникальности и инкрементации в SQL, мне было велено "не умничать, ЭТО правильный алгоритм !...".

    UncleVova, 18 Января 2010

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

    +65

    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
    for(;;)
        {
            try
            {
                game();
            }
            catch(game_end e)
            {
                if(e.reason == GAME_WIN)
                {
                    printf("** Would you like to play again? (y-n) ");
                    if(get_y_n()) continue;
                    break;
                }
                else if(e.reason == GAME_LOSE)
                {
                    printf("** Try again? (y-n) ");
                    if(get_y_n()) continue;
                    printf("** Are you coward? (y-n) ");
                    if(get_y_n()) break;
                    printf("** Try again? (y-n) ");
                    if(get_y_n()) continue;
                    break;
                }
                else if(e.reason == GAME_RESTART)
                {
                    continue;
                }
                else
                {
                    break;
                }
            }
        }

    Писал игру в школе

    GovnocoderJr, 16 Января 2010

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

    +66.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    //Дефайн в некотором хэдере
    #define _TAPI(b) do {BOOL _b = (BOOL)(b); if (!b) throw(system_exception(GetLastError())); } while (false);
    //...
    // И далее такое:
    //...
    _TAPI (::CreateProcess(0, (LPWSTR)m_process.c_str(), 0, 
    				0, FALSE, CREATE_SUSPENDED, 0, 0, &si, &pi));

    Мой говнокод, хотя скорее опечатка =), я с такими явлениями уже не раз сталкивался, но все равно в течение получаса не мог понять, почему у меня по два процесса запускается =)))

    ISith, 15 Января 2010

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

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    int strlenw(const wchar_t *s)
    {
    	return (int)((int)(strlen(s)) % sizeof(wchar_t));
    };

    Даже и не знаю что сказать. Это было в доставшемся мне проекте. Мне кажется это говнокод.

    Говногость, 11 Января 2010

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

    +922.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    __declspec(noreturn) int FastAdd(const int a, const int b)
    {
      __asm mov eax, a;
      __asm mov ebx, b;
      __asm add eax, ebx;
    };

    Встречаеться множество подобных функций в одном С++ проекте, который в данный момент разгребаю. Хочеться что-нибудь сказать автору. Например: "на XYZ"?

    Говногость, 08 Января 2010

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

    +56.3

    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
    /*
    	Данный кусок кода был сперт uncle Lem'ом из небесной канцелярии 27.02.2008
    */
    
    #include<time.h>
    #include<stdlib.h>
    #include<iostream.h>
    #include"russian.h"
    
    void world();
    
    void main() {
    	srand(time(0));
    	world();
    }
    
    void world() {								/*void (пустота) указывает на безвыходность ситуации*/
    	const bool good = false,				/*Объективная реальность, данные получены на основе личного опыта*/
    		evil = !good;						/*ну, это логично... зло - это НЕ добро*/
    	/*пока рай... добро, зло и инфернальность - по нулям, армагеддон пока не светит*/
    	unsigned long int evil_level = 0;		/*Зло - в минуса не уйдет. Факт*/
    	short int good_level = 0;				/*добро - сильно не вырастет. Не дадут*/
    	int infernal = 0;						/*Инфернальность. ПОКА ноль. Позаимствовано у Ефремова*/
    	int years = 0;							/*начинается жизнь на Земле*/
    	int people_resources = 0;				/*человеческие ресурсы (для Армагеддона)*/
    	int evil_resources = 0;					/*ресурсы сил зла (для Армагеддона)*/
    	while(evil) {							/*пока существует зло...*/
    		years++;							/*и годы идут...*/
    		if (evil && !good) {				/*если в текущем году было зло и не было добра*/
    			infernal += evil_level++;		/*инфернальность растет на уровень зла, которое, в свою очередь, становится сильнее*/
    			good_level--;					/*а добро слабеет под натиском зла*/
    		}
    		else if (evil && good || !evil && !good) {	/*если в текущем году было добро и зло или ни того, ни другого*/
    			infernal = infernal;			/*инфернальность остается на том же уровне (да, тупо, зато наглядно)*/
    		}
    		else if (!evil && good) {			/*если в текущем году было добро и не было зла*/
    			infernal -= good_level++;		/*инфернальность уменьшается на уровень добра, которое, в свою очередь, становится сильнее*/
    			evil_level--;					/*а зло слабеет под натиском добра*/
    		}
    		if (infernal >= 100) {				/*когда уровень инфернальности достигнет критической точки, начинается Армагеддон*/
    			people_resources = 1+rand()%(1000000);	/*это у нас человеческие ресурсы*/
    			evil_resources = 1+rand()%(1000000);	/*а это - адские*/
    			/*тут у нас типа битва людишек против нечисти. ака Армагеддон*/
    			if (people_resources<evil_resources) {	/*если людей меньше, то хана. Ад победил. Пипец всему живому. Начало Апокалипсиса*/
    				cout<<"Все, армагеддец настал, комп тебе больше не понадобится. Беги, покупай белые тапочки\n";
    				return;
    			}
    			else if (people_resources>evil_resources) {	/*и наоборот, если люди победили - начало райской жизни. Манна небесная, пара белых крыльев и все, что к ним прилагается*/
    				cout<<"Че сидишь, готовься получать белые крылья и порцию манны небесной\n";
    				return;
    			}
    			else continue;					/*а если поровну - то ничья, живем дальше*/
    		}
    	}
    }

    Давным-давно, когда я только начинал изучать программирование, ради лулзов был рожден вот такой говнокод говномира. Позже, с появлением классов в моем мировосприятии, был рожден расширенный вариант этого мира с классами, но, к сожалению, в ограничение на сотню строк он никак не хочет влезать :(
    В общем, не судите строго, одна из первых программ вообще, и выложено без изменений)

    uncle Lem, 07 Января 2010

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