1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #11271

    −40

    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
    #include <stdio.h>
    #include <unistd.h> 
    #include <stdlib.h> 
    #include <string.h>
    #include <iostream>
    #include <string>
    using namespace std;
    
    static char ifnm[100];
    string *tags = new string [100];
    int tags_init(string stag[]){
      int i=0;
      stag[i++]="root";
      stag[i++]="word";
      stag[i++]="english";
      stag[i++]="russian";
      stag[i++]="russian2";
    //  stag[i++]="id";
      return i;
    };
    int main(int argc,char *argv[]){
    FILE *fp;
    if(argc=0){printf("No file name\n");exit(0);}
    strcpy(ifnm,argv[1]);
    fp = fopen(ifnm, "r");
    if (fp == NULL)exit(-1);
      //Error;
    char str[180];
    int tn=tags_init(tags);
    cout<<"<"<<tags[0]<<">"<<endl;
    while(fgets(str, 180,fp))
    {
      fgets(str,180, fp);
      //cout<<str<<endl;
      char *pname;
        pname = strtok (str,"-");
        int ti=0;
        cout<<"<"<<tags[1]<<">"<<endl;
        ti=1;
      while (pname != NULL && ti<=tn)
      {
        ti++;
        cout<<"<"<<tags[ti]<<">"<<endl;
        printf ("\t%s\n",pname);
        cout<<"</"<<tags[ti]<<">"<<endl;
        pname = strtok (NULL, "-");
      }
    cout<<"</"<<tags[1]<<">"<<endl;
    }
    cout<<"</"<<tags[0]<<">"<<endl;
    
    fclose(fp);
    }

    Преобразует текстовый файл в xml формат

    AliceGoth, 21 Июня 2012

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

    +964

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    [Flags]
        public enum ColumnState
        {
            Exist = 1,
            NotExist = 2
        }

    Большинство енумов у нас помечено именно так.

    Irdis, 07 Октября 2011

    Комментарии (58)
  4. Куча / Говнокод #7892

    +74

    1. 1
    Ваш пароль должен состоять из 6-12 букв или цифр нормальной толщины шрифта.

    Не говнокод, но...

    7ion, 18 Сентября 2011

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

    +165

    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
    // header
    
        struct TMWFeatureSet
        {        
            TMWFeatureSet();
            ~TMWFeatureSet();
            
            enum TFeatureSetBitMask
            {
                EBackUpBitMask = 1, 
                ERestoreBitMask = 1 << 1, 
                EWipeBitMask = 1 << 2, 
                ELockBitMask = 1 << 3, 
                ELocateBitMask = 1 << 4, 
                EMessageBitMask = 1 << 5, 
                EScreamBitMask = 1 << 6, 
                EPrintBitMask = 1 << 7, 
                EShareBitMask = 1 << 8
            };
            
            enum TFeatureSet
            {
                EBackUp = 0, 
                ERestore, 
                EWipe, 
                ELock, 
                ELocate, 
                EMessage, 
                EScream,
                EPrint, 
                EShare,
                         
                ECount
            };
            
            
            void SetFeatureAttr( TInt iIndex, TBool aValue );
            
            void Reset( void );
             
            void ExternalizeL( RWriteStream & aOutputStream );
            
            void InternalizeL( RReadStream & aInputStream );
            
            RArray<TFeatureSetBitMask> iBitMasks;
            
            TFixedArray<TBool,ECount> iFeatureSetArr;       
        };        
    
    // implementation
    
        TMWFeatureSet::TMWFeatureSet()
        {
            iBitMasks.Append( EBackUpBitMask );
            iBitMasks.Append( ERestoreBitMask );
            iBitMasks.Append( EWipeBitMask );
            iBitMasks.Append( ELockBitMask );
            iBitMasks.Append( ELocateBitMask );
            iBitMasks.Append( EMessageBitMask );
            iBitMasks.Append( EScreamBitMask );
            iBitMasks.Append( EPrintBitMask );
            iBitMasks.Append( EShareBitMask );         
        }
        
        TMWFeatureSet::~TMWFeatureSet()
        {
            iBitMasks.Close();
        }
        
        void TMWFeatureSet::SetFeatureAttr( TInt iIndex, TBool aValue )
        {
            iFeatureSetArr[ iIndex ] = aValue;
        }
    
        void TMWFeatureSet::Reset( void )
        {
            for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
            {
                SetFeatureAttr( i, EFalse );
            }
        }
    
        void TMWFeatureSet::ExternalizeL( RWriteStream & aOutputStream )
        {
            for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
            {
                aOutputStream.WriteUint8L((TUint)iFeatureSetArr[ i ]);
            }
        }
    
        void TMWFeatureSet::InternalizeL( RReadStream & aInputStream )
        {
            for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
            {
                iFeatureSetArr[ i ] = (TBool) aInputStream.ReadUint8L();
            }
        }

    Это реализация битовой маски и по шаблону Simpleton: реализация простейшей функциональности самым сложным способом известным разработчику.
    По идее надо было как то так:
    int mask;
    .....
    bool IsFeatureAvailable( feature )
    {
    return ( ( mask & feature ) == feature );
    }

    zurg, 12 Мая 2011

    Комментарии (58)
  6. Куча / Говнокод #5120

    +62

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Уважаемые коллеги!
    Вот и наступает Новый Год!
    Пускай в новом году у каждого будет как можно меньше сбоев и багов!
    Пусть будет профессиональный рост идти по экспоненте! 
    А тем, кто уже профессионалы своего дела - не останавливаться на достигнутом!
    Желаю меньше говнокода в программах, пусть даже с бодуна и на больную голову будет писаться код!
    
    Всех с наступающим, хорошего настроения и веселого празднования!

    1_and_0, 31 Декабря 2010

    Комментарии (58)
  7. PHP / Говнокод #4959

    +163

    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
    <?php
    // Заменить значния, выделенные жирным на действительные
    // Соединяемся с "Мускулом"
     define("MYSQL_HOST","myhost.ru",true);
     define("MYSQL_USER","username",true);
     define("MYSQL_PASS","userpass",true);
     define("MYSQL_DB_N","userdb",true);
     define("MYSQL_DB_N","userstable",true);
     $_MYSQL_CONNECT = false; $_MYSQL_ERROR = -1;
     if ($_MYSQL_CONNECT = @mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS))
     {
      if (mysql_select_db(MYSQL_DB_N,$_connect))
      {
       $_MYSQL_ERROR = 0; define("MYSQL_CONNECTED",true,true);
      } else { $_MYSQL_ERROR = 2; define("MYSQL_CONNECTED",false,true); }
     } else { $_MYSQL_ERROR = 1; define("MYSQL_CONNECTED",false,true); }
    // Проверяем значение
    // Определяем список разрешённых неалфавитноцифровых символов
     $_SRCH[0] = '.'; $_SRCH[1] = '_'; $_SRCH[2] = '-'; $_SRCH[3] = ' ';
     if (isset($_POST['user']))
     {
      $_tmp = iconv("UTF-8","CP1251//IGNORE",urldecode($_POST['user']));
      if (ctype_alnum(str_replace($_SRCH,'',$_tmp)) && (strlen($_tmp) < 33))
      {
       if (MYSQL_CONNECTED)
       {
        $_query = 'SELECT * FROM '.MYSQL_US_N." WHERE nick='".$_tmp."'";
        if ($_result = mysql_query($_query,$_MYSQL_CONNECT))
        {
         if ($_row = mysql_fetch_assoc($_result))
         {
          define("_RESULT","RES_EX",true);
         } else { define("_RESULT","RES_OK",true); }
        } else { define("_RESULT","RES_MYSQL_BQ",true); }
       } else { define("_RESULT","RES_MYSQL_NC",true); }
      } else { define("_RESULT","POST_IN",true); }
     } else { define("_RESULT","POST_NS",true); }

    qbasic, 17 Декабря 2010

    Комментарии (58)
  8. Perl / Говнокод #4506

    −126

    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
    sub Tgetent {
        local($TERM) = @_;
        local($TERMCAP,$_,$entry,$loop,$field);
    
        # warn "Tgetent: no ospeed set" unless $ospeed;
        foreach $key (keys %TC) {
    	delete $TC{$key};
        }
        $TERM = $ENV{'TERM'} unless $TERM;
        $TERM =~ s/(\W)/\\$1/g;
        $TERMCAP = $ENV{'TERMCAP'};
        $TERMCAP = '/etc/termcap' unless $TERMCAP;
        if ($TERMCAP !~ m:^/:) {
    	if ($TERMCAP !~ /(^|\|)$TERM[:\|]/) {
    	    $TERMCAP = '/etc/termcap';
    	}
        }
        if ($TERMCAP =~ m:^/:) {
    	$entry = '';
    	do {
    	    $loop = "
    	    open(TERMCAP,'<$TERMCAP') || die \"Can't open $TERMCAP\";
    	    while (<TERMCAP>) {
    		next if /^#/;
    		next if /^\t/;
    		if (/(^|\\|)${TERM}[:\\|]/) {
    		    chop;
    		    while (chop eq '\\\\') {
    			\$_ .= <TERMCAP>;
    			chop;
    		    }
    		    \$_ .= ':';
    		    last;
    		}
    	    }
    	    close TERMCAP;
    	    \$entry .= \$_;
    	    ";
    	    eval $loop;
    	} while s/:tc=([^:]+):/:/ && ($TERM = $1);
    	$TERMCAP = $entry;
        }
    
        foreach $field (split(/:[\s:\\]*/,$TERMCAP)) {
    	if ($field =~ /^\w\w$/) {
    	    $TC{$field} = 1;
    	}
    	elsif ($field =~ /^(\w\w)#(.*)/) {
    	    $TC{$1} = $2 if $TC{$1} eq '';
    	}
    	elsif ($field =~ /^(\w\w)=(.*)/) {
    	    $entry = $1;
    	    $_ = $2;
    	    s/\\E/\033/g;
    	    s/\\(200)/pack('c',0)/eg;			# NUL character
    	    s/\\(0\d\d)/pack('c',oct($1))/eg;	# octal
    	    s/\\(0x[0-9A-Fa-f][0-9A-Fa-f])/pack('c',hex($1))/eg;	# hex
    	    s/\\(\d\d\d)/pack('c',$1 & 0177)/eg;
    	    s/\\n/\n/g;
    	    s/\\r/\r/g;
    	    s/\\t/\t/g;
    	    s/\\b/\b/g;
    	    s/\\f/\f/g;
    	    s/\\\^/\377/g;
    	    s/\^\?/\177/g;
    	    s/\^(.)/pack('c',ord($1) & 31)/eg;
    	    s/\\(.)/$1/g;
    	    s/\377/^/g;
    	    $TC{$entry} = $_ if $TC{$entry} eq '';
    	}
        }
        $TC{'pc'} = "\0" if $TC{'pc'} eq '';
        $TC{'bc'} = "\b" if $TC{'bc'} eq '';
    }

    Гениальный код.

    Arigato, 01 Ноября 2010

    Комментарии (58)
  9. Си / Говнокод #4029

    +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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    #include <stdio.h>
    
    main()
    {
        char old[1000];
        char new[1000];
        int i;                      /*счетчик цикла длинны массива */
        int z;                      /*счетчик нового массива */
        int l;                      /*длинна массива */
        int c;                      /*член массива */
        l = 0;
        z = 0;
    
        printf
            ("программа удаления повторяющихся символов\n");
        printf
            ("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
    
    
        while ((c = getchar()) != EOF) {
            old[l] = c;
            l++;
        }
        old[l] = 0;
    
        printf
            ("Введите символ, который нужно удадить как повторяющийся\n");
        c = getchar();
    
    
        for (i = 0; i < l; i++) {
    
            if (old[i] != c) {
                new[z] = old[i];
                z++;
            } else if (old[i] == c && old[i + 1] != c) {    /*один символ из повторяющихся */
                new[z] = old[i];
                z++;
            }
    
        }
        new[z] = 0;
        printf("%s\n", new);
        printf("*end");
    }

    Сорри за флуд, но тут форматирование полутше.

    killer1804, 19 Августа 2010

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

    +189

    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
    for (int y=0; y<height; ++y)
    	{
    		int x=0;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + srcp[x+1]*28830 + 
    				srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + 
    			(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + (srcp[x-3]+srcp[x+3])*1951 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16;
    		for (x=4; x<width-4; ++x)
    		{
    			dstp[x] = ((srcp[x-4]+srcp[x+4])*339 + (srcp[x-3]+srcp[x+3])*1951 + 
    					(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    					srcp[x]*18508 + 32768)>>16;
    		}
    		dstp[x] = (srcp[x-4]*678 + (srcp[x-3]+srcp[x+3])*1951 + 
    				(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    				srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x+3]*3902 + srcp[x-2]*13618 + 
    			(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + srcp[x-2]*13618 + 
    			srcp[x-1]*28830 + srcp[x]*18508 + 32768)>>16;
    		srcp += pitch;
    		dstp += pitch;
    	}

    вот он - бесконстантый код

    3.14159265, 29 Июня 2010

    Комментарии (58)
  11. Куча / Говнокод #3509

    +134

    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
    [BITS 16]
    [ORG 7C00h]
    main:
    
    mov ah,0Eh
    mov al,'B'
    int 10h
    
    mov ah,0Eh
    mov al,'o'
    int 10h
    
    mov ah,0Eh
    mov al,'l'
    int 10h
    
    mov ah,0Eh
    mov al,'g'
    int 10h
    
    mov ah,0Eh
    mov al,'e'
    int 10h
    
    mov ah,0Eh
    mov al,'n'
    int 10h
    
    mov ah,0Eh
    mov al,'O'
    int 10h
    
    mov ah,0Eh
    mov al,'S'
    int 10h
    
    mov ah,0Eh
    mov al,' '
    int 10h
    
    mov ah,0Eh
    mov al,'2'
    int 10h
    
    mov ah,0Eh
    mov al,'.'
    int 10h
    
    mov ah,0Eh
    mov al,'0'
    int 10h
    
    times 510-($-$$) db 0
    dw 0xAA55

    Так будет выглядеть бутлоадер BolgenOS 2.0

    Запускать с:

    nasm os.asm -o os.bin
    dd if=os.bin of=os.img bs=512
    kvm os.img

    Webkill, 18 Июня 2010

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