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

    В номинации:
    За время:
  2. Куча / Говнокод #17889

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #widgetu2272.frm-sub-st #u2283-4,#widgetu2272.frm-subm-err-st #u2284-4,#widgetu2272.frm-subm-ok-st #u2282-4,#widgetu2293.frm-sub-st #u2304-4,#widgetu2293.frm-subm-err-st #u2305-4,#widgetu2293.frm-subm-ok-st #u2303-4,#widgetu2575.frm-sub-st #u2586-4,#widgetu2575.frm-subm-err-st #u2577-4,#widgetu2575.frm-subm-ok-st #u2576-4,#widgetu2608.frm-sub-st #u2619-4,#widgetu2608.frm-subm-err-st #u2610-4,#widgetu2608.frm-subm-ok-st #u2609-4,#widgetu2641.frm-sub-st #u2652-4,#widgetu2641.frm-subm-err-st #u2643-4,#widgetu2641.frm-subm-ok-st #u2642-4,#widgetu2471.frm-sub-st #u2472-4,#widgetu2471.frm-subm-err-st #u2483-4,#widgetu2471.frm-subm-ok-st #u2477-4,#widgetu2772.frm-sub-st #u2778-4,#widgetu2772.frm-subm-err-st #u2779-4,#widgetu2772.frm-subm-ok-st #u2777-4,#widgetu2706.frm-sub-st #u2712-4,#widgetu2706.frm-subm-err-st #u2713-4,#widgetu2706.frm-subm-ok-st #u2711-4,#widgetu2404.frm-sub-st #u2405-4,#widgetu2404.frm-subm-err-st #u2419-4,#widgetu2404.frm-subm-ok-st #u2414-4,#widgetu2674.frm-sub-st #u2685-4,#widgetu2674.frm-subm-err-st #u2676-4,#widgetu2674.frm-subm-ok-st #u2675-4,#widgetu2197.frm-sub-st #u2200-3,#widgetu2197.frm-subm-err-st #u2209-4,#widgetu2197.frm-subm-ok-st #u2198-4
    {
    	opacity: 1;
    	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    	filter: alpha(opacity=100);
    	min-height: 51px;
    }

    Сайты, который продают (с)
    Основной хардкор не влез.
    По ссылке вся прелесть бытия:
    http://www.nextpage.com.ua/css/index.css

    thereiter, 30 Марта 2015

    Комментарии (145)
  3. Java / Говнокод #15567

    +73

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    private boolean isAuthorized( ExecutionResult result )
    {
        Iterator<Long> accessCountIterator = result.columnAs( "accessCount" );
        while ( accessCountIterator.hasNext() )
        {
            if (accessCountIterator.next() > 0L)
            {
                return true;
            }
        }
        return false;
    }

    Человек написал книжку по програмированию :(
    isbn:1449356265/9781449356262

    wvxvw, 24 Марта 2014

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

    +106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $items = array('palto','noski','shapki');
        $colors = array('red','black','white');
        $materials = array('kozha','meh','aluminij');
    
        foreach($items as $item) {
          foreach($colors as $color) {
            foreach($materials as $material) {
              echo $item.'-'.$color.'-'.$material;
              echo '</br>';
            }
          }
        }

    Задача:
    Группа 1.
    Пальто, Шапки, Носки
    Группа 2.
    Красный, Синий, Зеленый
    Группа 3.
    Мех, Кожа

    Необходимы комбинации следующего вида, пример:
    1) Пальто - красный - мех
    2) Пальто - красный - кожа
    3) Пальто - синий - мех
    ....
    N) Носки - зеленый - кожа

    При том условии, что группа занимает только свое место в порядке. Т.е. пальто не может быть 2-ым или 3-им словом в комбинации.

    Vasiliy, 15 Июля 2013

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

    +17

    1. 1
    2. 2
    3. 3
    4. 4
    int a=0; 
    while (a<=1 && a>=0) { 
      a--; 
    }

    Я даже хз, что тут автор делает...

    kostoprav, 19 Июня 2013

    Комментарии (145)
  6. Си / Говнокод #25229

    +1

    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
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    #define SQARESZ 3
    
    
    void rotateclockwise(char *ptra, size_t sz)
    {
        char (*a_ar)[sz] = (void *)ptra;
        char b_ar[sz][sz];
        for (size_t y = 0; y < sz; y++)
        {
            for (size_t x = 0; x < sz; x++)
            {
                b_ar[y][x] = a_ar[sz-1-x][y];
            }
        }
        memcpy(a_ar, b_ar, sz*sz);
    }
    
    void print_ar(char *ptra, size_t sz)
    {
        char (*a_ar)[sz] = (void *)ptra;
        for (size_t y = 0; y < sz; y++)
        {
            for (size_t x = 0; x < sz; x++)
            {
                printf("%i ", a_ar[y][x]);
            }
            printf("\n");
        }
    }
    
    int main()
    {
        char a[SQARESZ][SQARESZ] =
        {
          {1,2,3},
          {4,5,6},
          {7,8,9}
        };
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
    
        return 0;
    }

    https://habr.com/post/317300/ В C++17 до сих пор нет нормальных многомерных массивов, которые были в Fortran начиная с Fortran 90

    > UPD от 2016-12-10 14:03. Посмотрел на этот коммент от @selgjos, поэкспериментировал с компилятором и понял, что с помощью C99 VLA всё-таки можно добиться нужного мне эффекта.
    > В общем, окей, в C есть нужные мне массивы. Как и в Fortran. А в C++ их по-прежнему нет.

    j123123, 26 Декабря 2018

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

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    //Создаём новое изображение из старого // gif png jpg
                if (preg_match('/[.](GIF)|(gif)$/', $filename)) {
                    $src = imagecreatefromgif($target);         //если оригинал был в формате gif,
                } else if (preg_match('/[.](PNG)|(png)$/', $filename)) {
                    $src = imagecreatefrompng($target);         //если оригинал был в формате png,
                } else if (preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
                    $src = ImageCreateFromJPEG($target);        //если оригинал был в формате jpg,
                } else {
                    throw new Exception('формат не определён, шли-бы вы лесом');
                }

    хуита, 20 Января 2014

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

    +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
    typedef struct {
      uint32_t id;
      char * title;
    } dbrow_t;
    
    typedef struct {
      char * context;
      dbrow_t dbrow;
    } parser_context_t;
    
    typedef enum {    
      bad_char = 0,
      identifer,
      number,
      state_end_context,  
      state_end_line
    } type_t;
    
    type_t ch_d[0x100] = { [0] = state_end_line, [1 ... 0xff] = bad_char, ['0' ... '9'] = number, ['a' ... 'z'] = identifer, ['\n'] = state_end_context};
    
    inline char * do_other_type(char * p, type_t type) { while(ch_d[*(++p)] == type); return p;}
    
    static inline uint64_t bad_char_headler(parser_context_t * context) { context->context = do_other_type(context->context, bad_char); return 1;}
    
    static inline uint64_t number_headler(parser_context_t * context) {
      uint32_t id = 0; char * p = context->context;
      while(({ id *= 10; id += (*p - '0'); ch_d[*(++p)];}) == number);
      context->dbrow.id = id; context->context = p;
      return 1;
    }
    
    static inline uint64_t identifer_headler(parser_context_t * context) {
      char * p = context->context, * title = context->dbrow.title;
      char * end_identifer = do_other_type(p, identifer);
      memcpy(title, p, (end_identifer - p)); *(title + (end_identifer - p)) = 0;
      context->context = end_identifer;
      return 1;
    }
    
    static inline uint64_t end_context_headler(parser_context_t * context) {
      context->context = do_other_type(context->context, state_end_context);
      if(context->dbrow.id && *context->dbrow.title)
        fprintf(stderr, "id = %u, title = %s\n", context->dbrow.id, context->dbrow.title);
      context->dbrow.id = 0, *context->dbrow.title = 0;
      return 1;
    }
    
    static inline uint64_t end_line_headler(parser_context_t * context) { return 0; }
    
    typedef uint64_t(*headler_ptr_t)(parser_context_t *);
    
    headler_ptr_t headlers[] = { [bad_char] = bad_char_headler, [identifer] = identifer_headler, [number] = number_headler, [state_end_context] = end_context_headler, [state_end_line] = end_line_headler };
    
    int main(void) {
        char * content = strcpy(malloc(50), "1|raz\n11|dva\n21|tri\n31|shestb\n5000|test\n|||\n||\n|\n");
        parser_context_t context = (parser_context_t){ .context = content, .dbrow = (dbrow_t){ .title = malloc(1000)}};
        while(headlers[ch_d[*(context.context)]](&context));
        return 0;
    }

    Решил пацанам показать как писать парсер - вышло говно. Хотя так-то должно тащить - забенчите кто-нибудь, настолько это гумно медленнее strtok()'а.

    superhackkiller1997, 15 Июля 2013

    Комментарии (144)
  9. Куча / Говнокод #8329

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Короче, ушла я от вас.
    Не вписываюсь в коллектив, что уж поделаешь. Все плюсуют улюлюкающих троллей и минусуют мои претензии по поводу культуры общения.
    От администрации никаких конкретных действий не вижу. Видать, это здесь и есть норма. Что ж, найду сообщество покультурнее.
    Правда, скорее всего англоязычное. На русских варваров уже надежды никакой.
    Не думаю, что это тут кого-то к чему-то сподвигнет, менталитет не тот, а эффект толпы только убеждает их в правоте действий.
    Но в любом случае своё "фи" я выразила и теперь умываю руки.
    Пароля не будет, вход по OpenID. Можете банить, мне уже всё равно.
    Lure of Chaos, спасибо за хоть какую-то поддержку. Пусть не настолько, как хотелось бы, но хоть единственный за меня вступался.

    lucidfox, 27 Октября 2011

    Комментарии (144)
  10. 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)
  11. Pascal / Говнокод #27889

    −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
    Program print_numbers_twice;
    
    Procedure give(p: pptrint);
    begin
    	if pptrint(p^) <> nil then begin
    		give(pptrint(p^));
    		writeln((p-1)^)
    	end
    end;
    
    Procedure take;
    var n: ptrint;
    begin
    	if not SeekEof then begin
    		read(n);
    		take
    	end else begin
    		n := (pptrint(@n)+1)^;
    		give(pptrint(n));
    		give(pptrint(n))
    	end
    end;
    
    Begin
    	take
    End.

    На входе программа получает неизвестное заранее количество целых чисел, разделенных пробельными символами, а затем выводит их два раза в том же порядке по одному числу в строке.

    Очень простая и короткая программа. Я думаю, вам не составит труда понять, как она работает. Пишите в комментариях!

    Threadwalker, 22 Декабря 2021

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