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

    +192

    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
    <शैली श्रेणी>
    #समावेश <मानकपन.स>
    
    श्रेणी जानवर
    {
    खुला:
    	भव व्योम लिखो()
    	{
    		म_लिखो("यह एक जानवर है।\n");
    	}
    };
    
    श्रेणी शेर : खुला जानवर
    {
    खुला:
    	व्योम लिखो()
    	{
    		म_लिखो("शेर एक जानवर है।\n");
    	}
    };
    
    श्रेणी चीता : खुला जानवर
    {
    खुला:
    	व्योम लिखो()
    	{
    		म_लिखो("चीता एक जानवर है।\n");
    	}
    };
    
    पूर्णांक मुख्य()
    {
    	जानवर ज, *ज१;
    	शेर श;
    	चीता च;
    
    	ज.लिखो();
    	श.लिखो();
    	च.लिखो();
    
    	ज१=&ज;
    	ज१->लिखो();
    	ज१=&श;
    	ज१->लिखो();
    	ज१=&च;
    	ज१->लिखो();
    
    	वापस 0;
    }

    Вот вы все говорите про индусский код, а он на самом деле вот такой! Мне кажется, простой и логичный!

    (Дистрибутив на http://hindawi.in/en_US/download.php)

    nil, 06 Июня 2010

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

    +157

    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
    //sort rr
        unsigned int i = 0;
        unsigned int random = time(NULL);
        unsigned int nummx = rr->size();
        while (nummx > 0){
            unsigned long numsame=1;
            i = 0;
            for (unsigned int j = 1;j < nummx;++j)
                if ((*rr)[j].m_pref > (*rr)[i].m_pref){
                    i = j;
                    numsame = 1;
                }else if ((*rr)[j].m_pref == (*rr)[i].m_pref){
                    ++numsame;
                    random = random * 69069 + 1;
                    if ((random / 2) < (2147483647 / numsame))
                        i = j;
                }
            swap((*rr)[i],(*rr)[--nummx]);
        }

    Что делает код - достоверно неизвестно. Скорее всего, что-то сортирует и одновременно перемешивает.

    gpr, 05 Июня 2010

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

    +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
    struct Dir {
        Dir(const char* name) {
            d = opendir("/var/log");
        }
        ~Dir();
        const char* next();
        bool operator== (DIR* other);
    private:
        DIR* d;
    };
    ...
    Dir var_log("/var/log");

    evlad, 03 Июня 2010

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

    +1005

    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
    void bvnr(char *text)
    {
    for(int f=0; f<=strlen(text); f++)
    {
    switch(text[f])
    {
    case 'Q' : text[f] = 'q' ; break;
    case 'W' : text[f] = 'w' ; break;
    case 'E' : text[f] = 'e' ; break;
    case 'R' : text[f] = 'r' ; break;
    case 'T' : text[f] = 't' ; break;
    case 'Y' : text[f] = 'y' ; break;
    case 'U' : text[f] = 'u' ; break;
    case 'I' : text[f] = 'i' ; break;
    case 'O' : text[f] = 'o' ; break;
    case 'P' : text[f] = 'p' ; break;
    case 'A' : text[f] = 'a' ; break;
    case 'S' : text[f] = 's' ; break;
    case 'D' : text[f] = 'd' ; break;
    case 'F' : text[f] = 'f' ; break;
    case 'G' : text[f] = 'g' ; break;
    case 'H' : text[f] = 'h' ; break;
    case 'J' : text[f] = 'j' ; break;
    case 'K' : text[f] = 'k' ; break;
    case 'L' : text[f] = 'l' ; break;
    case 'Z' : text[f] = 'z' ; break;
    case 'X' : text[f] = 'x' ; break;
    case 'C' : text[f] = 'c' ; break;
    case 'V' : text[f] = 'v' ; break;
    case 'B' : text[f] = 'b' ; break;
    case 'N' : text[f] = 'n' ; break;
    case 'M' : text[f] = 'm' ; break;
    )
    }
    }

    Перевод текста в нижний регистр. Можно пугать детей на ночь))

    hromjo, 03 Июня 2010

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

    +998

    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
    #define TRACE_VAR	ATraceClass *mTrace
    #define TRACE_VAR_INIT	mTrace = ATraceClass::getInstance()
    
    class ATraceClass {
    public:
    	void log(int severity, const char *format, ...);
    	/* ... */
    }
    
    class ATraceUser {
    public:
    	ATraceUser::ATraceUser() {
    		TRACE_VAR_INIT;
    	}
            int SomeMethod1();
    	/* ... */
    	TRACE_VAR;
    }
    
    int ATraceUser::SomeMethod1()
    {
      /* ... */
      if (errorCondition)
      {
        return mTrace->log( ERR, "Something went terribly"\
                            "wrong when doing the operation %s\n",\
                            mOperation),-1;
      }
      /* ... */
    }

    в догонку к #3355 - это уже как бы пример стиля использования логгера егоным же автором.

    пришел ко мне как-то народ, показал нечто что я тут иллюстрирую в SomeMethod1() и спросил:
    (1) а на кой эти слеши? может нам и весь остальной код нужно ими разукрасить??
    (2) а как это void можно из int функции возвращать? и как это вообще работает? вроде в С/С++ такое нельзя....

    у меня до сих пор в голове не укладывается каким .... надо быть что бы такой код писать.

    Dummy00001, 31 Мая 2010

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

    +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
    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 ATraceClass::LogFunction(const char *format, va_list ap)
    {
      /* ... declarations ... */
    
      for (p=format; (*p)&&(!isTruncated); p++)
      {
        if ( * p == '%' )
          switch( * ++p )
          {
            case 'c':
            { /* ... */ }
            break;
    
            case 'd':
            case 'i':
            { /* ... */ }
            break;
    
            case 'l':   // это %ld
            { /* ... */ }
            break;
    
            case 'L':    // это %Ld
            { /* ... */ }
            break;
      
            case 'f':   // a это %g
            { /* ... */ }
            break;
    
            case 'F':  // a это %Lg
            { /* ... */ }
            break;
    
            case 's': 
            { /* ... */ }
            break;
    
            default: // this is an ERROR case, but we will not perform coding at this point ... maybe later
              break;
          }
          else {
            /* ... */
          }
      }
    }

    наболело. одно чудило (с большой букмы Му) наговнокодило это дело под эгидой "stdio это С, мы в С++ можем круче!!!" ну с тех пор и переизобретают велосипед - с квадратными колёсами. даже %% не догадались сделать.

    уже как года два давлю вот это Г, но наши немецкие умельцы копи-пастят это в новые модуля быстрее чем я успеваю это удалять.

    самое гадкое что народ пишет код как обычно ожидая стандартные stdio шорткаты, и потом долго гадает куда блин сообщение подевалось.

    Dummy00001, 31 Мая 2010

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

    +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
    struct Node{
        char* d;
        Node *left;
        Node *right;
    };
    
    Node* search_insert(Node *root, char* d){
         /*.........*/
        Node *pnew = new Node;
        pnew->d = d
         /*.........*/
    }
    int main(){
        /*.........*/
        Node *root=NULL;
        char* r=new char;
        for (int i = 0; i<10; i++){
                scanf("%s", r);
                root=search_insert(root, b[i]);
        }
         /*.........*/
    }

    Вот такой тупой недочет стоил мне туевой хучи времени. Не единожды стирал все и писал заново. Просветление пришло на третий день.
    Указатель.... поле в структуре - указатель... указатель в который я раз за разом лезу в цикле...

    kir_rik, 30 Мая 2010

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

    +159

    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
    #define a w[p]++;              // a +  add
    #define s w[p]--;              // s -  subtract
    #define m p++;                 // m >  more
    #define l p--;                 // l <  less
    #define b while(w[p]) {        // b [  begin
    #define e }                    // e ]  end
    #define o putchar(w[p]);       // o .  out
    #define i w[p]=getchar();      // i ,  in
    
    void main()
    {
      int w[1024];
      int p = 0;
      int _ = 1024;
      while (_--) w[_] = 0;
    
      m a a a a b l a a a a a a a a a a a a a a a a m s e l a a a a a a a a o m a a
      b l a a a a a a a a a a a a a a a a m s e l s s s o a a a a a a a o o a a a o
      m a a a a a b l s s s s s s s s s s s s s s s s m s e l a o m a a a b l a a a
      a a a a a a a a a a a a a m s e l a a a a a a a o a a a a a a a a a a a a a a
      a a a a a a a a a a o a a a o s s s s s s o s s s s s s s s o i
    }

    Fuck my brain...
    По мотивам http://daniel.lorch.cc/projects/brainfuck/php-brainfuck-1.01/doc.html

    Stalker, 29 Мая 2010

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

    +144

    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
    // ------------------------------------------------
    
    #include <stdio.h>
    
    // ------------------------------------------------
    
    #define USES         /##/
    #define PROCEDURE    void
    #define MAIN         main
    #define VAR          /##/
    #define INTEGER      32
    #define BEGIN        {
    #define END          }
    
    #define FOR          for ( int
    #define TO           ; X <
    #define DO           ; X++)
    #define WRITELN(a,b) printf("%d%c",a,b)
    
    #define IF           if ((
    #define THEN         /5*X) == 5)
    #define ELSE         else
    
    // ------------------------------------------------
    
    USES CRT;
    
    PROCEDURE MAIN()
    VAR X : INTEGER
    BEGIN
         FOR X = 1 TO 10 DO
         BEGIN
              IF X = 5 THEN
                   WRITELN(-X,' ');
              ELSE
                   WRITELN(X,' ');
         END;
    END;
    
    // ------------------------------------------------

    Ностальгия по паскалю...

    k06a, 28 Мая 2010

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

    +170

    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
    struct Obect: public AbsractPrimitiv
    {
    	float X,Y; 
    	Obect(float x, float y)
    	{
    		X=x;
    		Y=x;
    	};
    	
    	Obect(void)
    	{
    		new(this) Obect(0,0);
    	};
    
    	//...
    	//...
    	//...
    
    private://Требование конвенции. Блок private обязан быть в каждом классе.
    };

    Не вру. Вот вам крест! Написано именно так.

    Говногость, 28 Мая 2010

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