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

    +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
    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
    class AnotherDammLoggerClass {
    
    public:
    
      // ...
      
      static inline char *strtime()
      {
        // method is twice as fast as strftime)
        static const int ASCII_OFFSET=48;
        static char buffer[32]="";
        struct timeval tv;
        struct tm *lt;
    
        if ( 0 == gettimeofday(&tv,NULL) )
        {
          lt=localtime(&tv.tv_sec);
    
          int i=0;
    
          /* year */
          buffer[i++]=(lt->tm_year%100/10)+ASCII_OFFSET;
          buffer[i++]=(lt->tm_year%10)+ASCII_OFFSET;
          /* month */
          buffer[i++]=((lt->tm_mon+1)/10)+ASCII_OFFSET;
          buffer[i++]=((lt->tm_mon+1)%10)+ASCII_OFFSET;
          /* day */
          buffer[i++]=(lt->tm_mday/10)+ASCII_OFFSET;
          buffer[i++]=(lt->tm_mday%10)+ASCII_OFFSET;
          /* separator */
          buffer[i++]='.';
          /* hours */
          buffer[i++]=(lt->tm_hour/10)+ASCII_OFFSET;
          buffer[i++]=(lt->tm_hour%10)+ASCII_OFFSET;
          /* minutes */
          buffer[i++]=(lt->tm_min/10)+ASCII_OFFSET;
          buffer[i++]=(lt->tm_min%10)+ASCII_OFFSET;
          /* seconds */
          buffer[i++]=(lt->tm_sec/10)+ASCII_OFFSET;
          buffer[i++]=(lt->tm_sec%10)+ASCII_OFFSET;
          /* separator */
          buffer[i++]='.';
          /* microseconds */
          buffer[i++]=(((tv.tv_usec)%1000000)/100000)+ASCII_OFFSET;
          buffer[i++]=(((tv.tv_usec)%100000)/10000)+ASCII_OFFSET;
          buffer[i++]=(((tv.tv_usec)%10000)/1000)+ASCII_OFFSET;
          buffer[i++]=(((tv.tv_usec)%1000)/100)+ASCII_OFFSET;
          buffer[i++]=(((tv.tv_usec)%100)/10)+ASCII_OFFSET;
          buffer[i++]=(((tv.tv_usec)%10))+ASCII_OFFSET;
          /* delimiter */
          buffer[i++]=(char)0;
        }
        else
        {
          strcpy(buffer,  "<no time>");
        }
        return buffer;
      }
      // ....
    }

    оптимизируем производительность. коммент "twice as fast as strftime" порадовал: вместо того что бы редундантные вызовы поубирать, давайте ручками перепишем. для пущей красоты сделано inline (и еще скапипазджено в три других места проекта).

    потому что в логгере strftime() наверное жутко тормозил - например по сравненю с записью сообщений на диск.......

    Dummy00001, 23 Мая 2011

    Комментарии (8)
  2. Си / Говнокод #6737

    +147

    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
    make: предупреждение: Неправильный ход часов.  Сборка может быть неполной.
    mooncrafter@ubuntu:~/allthis/4_mesg$ make lol
    make: Внимание: Файл `Makefile' имеет будущее время 1,6e+03 s модификации
    gcc -c create_matrix/create_matrix.c
    gcc -c source/server.c source/lib/do.h source/lib/scmsg.h source/lib/msg.h
    gcc server.o -o server
    gcc -c source/client.c source/lib/do.h source/lib/scmsg.h source/lib/msg.h
    rm create_matrix.o server.o client.o source/lib/do.h.gch source/lib/scmsg.h.gch source/lib/msg.h.gch
    apt-get moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
    ...."Have you mooed today?"...
    sleep 1.5
    clear
    
    
    
    make: предупреждение: Неправильный ход часов.  Сборка может быть неполной.
    mooncrafter@ubuntu:~/allthis/4_mesg$ clear

    - называется перевёл чася на час наЗад!

    Mooncrafter, 23 Мая 2011

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

    +166

    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
    #include <dir.h>//ДЛЯ ОПРЕДЕЛЕНИЯ mkdir(ИМЯ ПАПКИ)
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <alloc.h>
    #include <string.h>
    #include <iostream.h>
     int ndig(char x)
    {if('0'<=x&&x<='9')return 0;else return 1;}
    // СТРОКА ВЕДОМОСТИ ДЛЯ ОДНОГО СТУДЕНТА
     struct stud
    {char fio[122];int b[9],ns
    static int nc
    ,nd;
     void out(FILE*fo);stud(){fio[121]=0;}
    stud(FILE*fi);
    stud(stud&s){*this=s;}
    }; //end of stud body
     int stud::nc=44;
     int stud::nd=5;
     stud::stud(FILE *fi)
    {fscanf(fi,"%i ",&ns); fgets(fio,nc,fi);
    for(int j=1;j<=nd;++j)fscanf(fi,"%i",&b[j]);}
    
     void stud::out(FILE*fo=stdout)
    {fprintf(fo,"%3i ",ns);
    fputs(fio,fo); for(int j=1;j<=nd;++j)
    {if(b[j]>=0&&b[j]<6) fprintf(fo,"%3i",b[j]);
    else fprintf(fo,"   ");}
    fprintf(fo,"\n"); if ( fo==stdout) getch();
    }//end of stud
    
    //ВЕДОМОСТЬ ОДНОЙ ГРУППЫ
    //("МАССИВ СТРОК" ДЛЯ ОТДЕЛЬНЫХ СТУДЕНТОВ)
    
     struct grup{ stud**st;//"МАССИВ СТУДЕНТОВ"
    FILE*fi;char title[3][122]//"ШАПКА" ВЕДОМОСТИ
    ,sf[77];
    
    int ms;//ЧИСЛО СТУДЕНТОВ
    void nw();//ПАМЯТЬ ДЛЯ СТУДЕНТОВ
    void out(char*sf); void out(FILE*fo);
    grup(grup&g);grup(int fms){ms=fms; nw();}
    grup(char*sf); grup&operator=(const grup&g);
    void deg();~grup(){deg();} grup(); };
    //end of grup body
     grup::grup(){ms=0;st=0;fi=0;
    for(int j=0;j<3;++j)memset(title[j],0,122);}
    
     void grup::nw()
    {st=new stud*[ms+1];
    if(!st){cout<<"\nst=0  grup::nw()\n";exit(1);}
    for(int j=0;j<=ms;++j)
    {st[j]=new stud;
    if(!st){cout<<"\nst[j]=0\n";exit(1);}
    }}
     grup::grup(char*fsf)
    {strcpy(sf,fsf); char s[77]="\n"; int j;
    fi=fopen(sf,"rt");
    if(!fi)
    {cout<<"\n0)fi=0,sf="<<sf;getch();exit(1);}
    ms=0; while(!feof(fi)){fgets(s,77,fi);++ms;}
    ms-=3; fclose(fi); fi=fopen(sf,"rt");
    if(!fi){cout<<"\nfi\n";exit(1);}
    for(j=0;j<3;++j) fgets((title[j]),77,fi);
    
    //ВВОД "СТУДЕНТОВ" ИЗ ФАЙЛА sf
    nw();for(j=1;j<=ms;++j){stud stj(fi);*st[j]=stj;}
    fclose(fi);
    }
     grup&grup::operator=(const grup&g)
    {if(this==&g)return*this; int j; this->deg();
    fi=g.fi; strcpy(sf,g.sf); ms=g.ms;
    nw(); for(j=0;j<=ms;++j)*st[j]=*g.st[j];
    for(j=0;j<3;++j)strcpy(title[j],g.title[j]);
    return*this;
    }
     grup::grup(grup&g)
    {for(int j=0;j<3;++j)strcpy(title[j],g.title[j]);
    ms=g.ms; strcpy(sf,g.sf);
    nw(); for(j=0;j<=ms;++j)*st[j]=*g.st[j];
    }
     void grup::deg()
    {if(st) {for(int j=0;j<=ms;++j)
    if(st[j]){delete st[j];st[j]=0;}delete[]st;st=0;}
    }
     void grup::out(FILE*fo=stdout)
    {if(fo==stdout)cout<<'\n'; int j=0;
    for(;j<3;j++) fputs(title[j],fo);
    
    for(j=1;j<=ms;j++) st[j]->out(fo);
    }
     void grup::out(char*sf)
    {FILE*fo=fopen(sf,"wt");
    if(!fo){cout<<"\nfo=0\n";exit(1);}
    out(fo); fclose(fo);
    } //end of grup

    Кусок кода с "базовыми классами" для курсовой работы в непоследнем университете Петербурга. Данные "классы" потом по заданию предлагается всячески расширять.
    А потом жалуемся, что студенты ничего не умеют. А кто ж их учит?

    CTRSpirit, 23 Мая 2011

    Комментарии (68)
  4. PHP / Говнокод #6735

    +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
    //ці граблі краще не чіпати, а то все завалиться) тут якось магічно визначається попередній крок)
    if (($step_id - 1) == 4) {
        $prstep_id = 3;
    } elseif (($step_id - 1) == 6) {
        $prstep_id = 5;
    
    } elseif (($step_id - 1) == 9) {
        $prstep_id = 8;
    } elseif (($step_id - 1) == 3) {
        $prstep_id = 4;
    } elseif (in_array($step_id, array(6, 9, 14))) { //кроки на яких рахуються закритим проектом
        $prstep_id = $step_id;
    } else {
        $prstep_id = ($step_id - 1);
    }

    hudson, 23 Мая 2011

    Комментарии (65)
  5. PHP / Говнокод #6734

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    $cd = strtotime($givendate);
    $newdate = date('Y-m-d H:i:s', mktime(date('H',$cd),
                       date('i',$cd), date('s',$cd), date('m',$cd)+$mth,
                       date('d',$cd)+$day, date('Y',$cd)+$yr));

    kovel, 23 Мая 2011

    Комментарии (16)
  6. Python / Говнокод #6733

    −179

    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
    a=0
    b=0
    c=0
    d=0
    ...
    z=0
     
    A=0
    B=0
    C=0
    D=0
    ...
    Z=0
    ile=int(input())
    while ile>0:
        pom=0
        ile-=1
        slowo=input()
        dlugosc=len(slowo)
        while dlugosc>0:
            dlugosc-=1
           
            if slowo[pom]=='a':
                a=a+1;
            if slowo[pom]=='b':
                b=b+1
            if slowo[pom]=='c':
                c=c+1
            if slowo[pom]=='d':
                d=d+1
            ...
            if slowo[pom]=='z':
                 z=z+1
           
            if slowo[pom]=='A':
                A=A+1
            if slowo[pom]=='B':
                B=B+1
            if slowo[pom]=='C':
                C=C+1
            if slowo[pom]=='D':
                D=D+1
            ...
            if slowo[pom]=='Z':
                Z=Z+1
                   
            pom+=1
       
    if(a>0):
        print('a', a)
    if(b>0):
        print('b', b)
    if(c>0):
        print('c', c)
    if(d>0):
        print('d', d)
    ...
    if(z>0):
        print('z', z)
     
    if(A>0):
        print('A', A)
    if(B>0):
        print('B', B)
    if(C>0):
        print('C', C)
    if(D>0):
        print('D', D)
    ...
    if(Z>0):
        print('Z', Z)

    Чел походу не знает о существовании массивов и циклов.
    ... заменено, уж больно код длинный.
    Типичный пример китайского кода.
    Оригинал - http://ideone.com/kkZ51,8lrxt

    З.Ы. Да, в питоне не массивы, а списки, но так понятнее

    pabloid, 23 Мая 2011

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

    +164

    1. 1
    2. 2
    if (!isset($_POST))
      exit;

    вот такое встретил у одного прогера)

    alex_ok, 23 Мая 2011

    Комментарии (11)
  8. Pascal / Говнокод #6731

    +87

    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
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
    if Edit1.Text='515' then
    Form1.Caption:='Пароль взломан!'
    else Form1.Caption:='неправельно!';
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Edit1.Text:='1';
    if Edit1.Text='1' then
    begin
    if Form1.Caption='неправельно!' then
    Edit1.Text:='2';
    if Edit1.Text='2' then
    begin
    if Form1.Caption='неправельно!' then
    Edit1.Text:='3';

    Личинка человека решила сделать брутфорс паролей. Когда нажимается кнопка идёт беспощадный перебор без цикла на предмет совпадения пароля

    memnek, 23 Мая 2011

    Комментарии (21)
  9. PHP / Говнокод #6730

    +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
    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
    static public function break_value($value)
             {  
                       
              $value=str_ireplace("echo","_", "$value");
              $value=str_ireplace("==","_", "$value");
              //$value=str_ireplace("$","_", "$value");
              $value=str_ireplace("GET","_", "$value");
              $value=str_ireplace("POST","_", "$value");
              $value=str_ireplace("function","_", "$value");
              $value=str_ireplace("if(","_", "$value");
              $value=str_ireplace("else","_", "$value");
              $value=str_ireplace("query","_", "$value");
              $value=str_ireplace("\'","\"", "$value");
              $value=str_ireplace("document.","_", "$value");
              $value=str_ireplace("window.","_", "$value");
              $value=str_ireplace("{","(", "$value");
              $value=str_ireplace("}",")", "$value");
              $value=str_ireplace("getElementByID","_", "$value");
              $value=str_ireplace("script","_", "$value");
              $value=str_ireplace("exit","_", "$value");
              $value=str_ireplace("break","_", "$value");
              $value=str_ireplace("include","_", "$value");
              $value=str_ireplace("session","_", "$value");
              $value=str_ireplace("header","_", "$value");
              $value=str_ireplace("alert","_", "$value");
              $value=str_ireplace("хуй","_", "$value");
              $value=str_ireplace("блять","_", "$value");
              $value=str_ireplace("блядь","_", "$value");
              $value=str_ireplace("педераст","_", "$value");
              $value=str_ireplace("пидарас","_", "$value");
              $value=str_ireplace("сука","_", "$value");
              $value=str_ireplace("ебан","_", "$value");
              $value=str_ireplace("еблан","_", "$value");
              $value=str_ireplace("мудак","_", "$value");
              $value=str_ireplace("скотин","_", "$value");
              $value=str_ireplace("ублюдок","_", "$value");
              $value=str_ireplace("мразь","_", "$value");
            
              return $value;
             }

    Попросили поучаствовать в проекте. это кусок класса protection, который был создан для того чтобы фильтровать переменные в GET и POST :D

    nolka4, 22 Мая 2011

    Комментарии (27)
  10. ActionScript / Говнокод #6729

    −110

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    var vremya=15
    var tim=0
    var FpS=24//ваше fps
    var intarval=1
    stage.addEventListener(Event.ENTER_FRAME,qwer)
    function qwer(e:Event){
    t+=interval
    if(tim>vremya*FpS){
    interval=0
    trace("15 сукунд прошло!!!")
    }
    }

    Как сделать 15-секундную задержку? анонимус подскажет!

    KirAmp, 22 Мая 2011

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