1. Куча / Говнокод #22454

    0

    1. 1
    pp.userapi.com/c836128/v836128263/22744/TU54pVBZz1A.jpg

    dm_fomenok, 28 Февраля 2017

    Комментарии (1)
  2. Куча / Говнокод #22453

    −3

    1. 1
    Говно

    guestinho, 27 Февраля 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #define I "%d"
    #define II I I
    #define III II I
    #define IIII II II
    #define IIIII III II
    #define IIIIII III III
    #define IIIIIII IIII III
    #define IIIIIIII IIII IIII

    http://codeforces.com/contest/778/submission/25038973

    guestinho, 27 Февраля 2017

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

    0

    1. 1
    Я бо-бо...

    guestinho, 27 Февраля 2017

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

    0

    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
    private void ScanDir()
    {
    	CurrentLevel++;
    	string save_dir=CurrentDir;
    	int i=0;
    	if (current_dirs.Length>0)
    		for (;i<current_dirs.Length;i++)
    		{
    			out_data+=current_tabs+"<DIR> "+CutPathName(current_dirs[i])+"\r\n";
    			try { CurrentDir=current_dirs[i]; }
    			catch
    			{
    				out_data+=current_tabs+"<ошибка доступа>\r\n\r\n";
    				CurrentDir=save_dir;
    				continue;
    			}
    			waiting=true; // синхронизатор этого потока
    			Thread.Sleep(120); // задержка, что бы второй поток успел скинуть данные
    			while (saving) // ожидание флага из потока записи
    				Thread.Sleep(100);
    			waiting=false;
    			ScanDir();
    			CurrentDir=save_dir;
    		}
    	else
    		out_data+=current_tabs+"<папки отсутствуют>\r\n";
    	save_dir=null;
    	string[] inner_files;
    	try { inner_files=Directory.GetFiles(save_dir); }
    	catch { out_data+=current_tabs+"<ошибка доступа>\r\n\r\n"; return; }
    	if (inner_files.Length>0)
    		for (i=0;i<inner_files.Length;i++)
    		{
    			out_data+=current_tabs+CutPathName(inner_files[i])+"\r\n";
    			inner_files[i]=null;
    		}
    	else
    		out_data+=current_tabs+"<файлы отсутствуют>\r\n";
    	inner_files=null;
    	CurrentLevel--;
    }

    Загрузка списка файлов и директорий на диске.
    Оптимизировано для уменьшения потребления памяти и нагрузки CPU.

    От одного только описания оптимизации хочется убежать и спрятаться под одеяло:

    "Для оптимизации я добавил в глобалку следующую инфу:
    1) массив текущих папок;
    2) текущий уровень вложения;
    3) текущую папку для глобалки;
    4) строка табуляции;
    5) свойства для п. 2 и 3.

    2 для того, что бы в его свойстве (5) менять табулятор (4) по необходимости;
    3 добавлено исключительно для свойства (5), в котором подгуржаются текущие папки (1)."

    FrontlineReporter, 27 Февраля 2017

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

    +2

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdint.h> 
    
    void secret(void) __attribute__ ((used,noinline,noreturn));
    void brainfuck(void) __attribute__ ((noinline));
    int main(void);
    
    void secret(void)
    {
      printf ("You win!\n");
      exit(0);
    }
    
    char *bfprog = "+++---";
    
    void brainfuck(void)
    {
        char *bfprog_p = bfprog;
        unsigned long long i;
        unsigned char arr[500] = {0};
        arr[499] = ( ((uintptr_t)secret ^ (uintptr_t)main) & 0xffffff00 ) >> 8*0;
        arr[0]   = ( ((uintptr_t)secret ^ (uintptr_t)main) & 0xffff00ff ) >> 8*1;
        arr[498] = ( ((uintptr_t)secret ^ (uintptr_t)main) & 0xff00ffff ) >> 8*2;
        arr[1]   = ( ((uintptr_t)secret ^ (uintptr_t)main) & 0x00ffffff ) >> 8*3;
        unsigned char *arr_p = &arr[249];                  
        for (i = 0;; i++)
        {
            switch (*bfprog_p)
            {
                case '>':
                    arr_p++;
                    break;
                case '<':
                    arr_p--;
                    break;
                case '+':
                    (*arr_p)++;
                    break;
                case '-':
                    (*arr_p)--;
                    break; 
    /*           case '.':
                    putchar(*arr_p);
                    break;
                case ',':
                    *arr_p = getchar();
                    break;                   нинужно*/
                case '[':
                    if (*arr_p == 0 )
                    {
                        unsigned long long bracketcount = 0;
                        do
                        {
                          if (*bfprog_p == '[')
                              bracketcount++;
                          else if (*bfprog_p == ']')
                              bracketcount--;
                          bfprog_p++;
                        } while (bracketcount != 0);
                        bfprog_p-=1;
                    }
                    break;
                case ']': 
                    if (*arr_p != 0 )
                    {
                        unsigned long long bracketcount = 0;
                        do
                        {
                          if (*bfprog_p == ']')
                              bracketcount++;
                          else if (*bfprog_p == '[')
                              bracketcount--;
                          bfprog_p--;
                        } while (bracketcount != 0);
                    }
                    break;
                default: return;
            }
            bfprog_p++;
        }
        return;
    }
    
    int main(void)
    {
        brainfuck();
        return 0;
    }

    Задача - подставить в char *bfprog такую строку, чтобы запустилась функция secret(). Менять что-либо еще в коде запрешено. Платформа - 32битные интели, компилятор - гцц. ОС - линукс или виндовс, на ваше усмотрение (хотя разницы по-идее не будет). Предполагаем, что тут применяется особо расширенный и улучшенный ASLR который при каждом запуске перетасовывает размещение функций, и secret от main находится на хуй знает каком расстоянии. Победившему - нихуя

    j123123, 27 Февраля 2017

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

    0

    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
    for (....)
    {
        lCurrent=new Label();
        lCurrent.Name="task_header_"+cPriority.ToString();
        lCurrent.Location=new Point(pCurrent.X,pCurrent.Y);
        lCurrent.TabIndex=cPriority-1; // по табу потом определяется индекс таска в интерфейсной реализации
        lCurrent.Click+=new EventHandler(label_Click);
        lCurrent.Font=this.Font;
        lCurrent.BackColor=this.BackColor;
        lCurrent.Text=Path.GetFileNameWithoutExtension(tasks[i])+": "; // таск подгружается из файла; тут сложнА всё; этот текст отображается нормально
        lCurrent.Visible=lCurrent.Enabled=true;
        lCurrent.Parent=this; // что есть что нет - не важно
        try { tСurrent=new TaskDataStruct(tasks[i],lСurrent,workSet,expander); } // тоже долго объяснять; тут самое важное - lCurrent
        catch { lCurrent.Dispose(); lCurrent=null; continue; } // если при создании таска что то пошло не так - то и всё остальное мне не нужно
        this.Controls.Add(lСurrent); // мне кажется, что проблема где то здесь
        allTasks.Add(tCurrent); // это List моих тасков
        pCurrent.Y+=30;
        cPriority++;
    }

    неплохой набор бреда, костылей и велосипедов

    FrontlineReporter, 27 Февраля 2017

    Комментарии (1)
  8. Куча / Говнокод #22446

    +2

    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
    Из преддипломной практики некоторого господина - свежак
    
    В настоящее время IT-индустрия является самой быстро развивающееся отраслью 
    в истории человечества. Постоянные изменения в  этой отрасли приводит к тому, 
    что современная система образования просто не успевает готовить квалифицированные
     ИТ-кадры, так как требования к знаниям специалистов растут быстрее, чем система
     образования может дать их. Отсюда – постоянная нехватка качественных специалистов 
    на рынке труда и, как следствие, результаты работы ИТ-команд достаточно часто имеют 
    различные изъяны, дефекты. Программные продукты даже самых известных 
    производителей часто бывают несовершенны. Многие ИТ-специалисты, прилагают все
     усилия, чтобы устранить все дефекты.
    
    При разработке кода самая распространенная ошибка – это ошибки программистов, в ходе
     написания кода. Причин появления таких ошибок достаточно много. Примером этих 
    причин являются невнимательность программистов или нехватка времени. Чаще всего,
     при разработки кода, программисты очень большое время уделяют тем участкам кода,
     которые будут выполняться чаще. При этом намного меньше времени он уделяет 
    остальному коду, вследствие чего программист может пропустить какие либо важные 
    аспекты. 
    
    Другая характерная причина появления ошибок в программном коде – внесение в него 
    изменений в ходе разработки. Разработчик меняет один кусок кода, который может 
    влиять на функциональность другого фрагмента программы. Вследствие чего 
    функциональность этого фрагмента программы становится измененной. 
    
    Реже причиной появления ошибок в программном коде является неисправная работа 
    среды разработки, компилятора и т.д.

    kegdan, 27 Февраля 2017

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

    +2

    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 std::cout;
    using std::cin;
    using std::endl;
     
    void func1()
    {
        int var;
     
        cout << "secret function " <<  var << endl;
    }
     
    void printHelloWorld()
    {
        long *ptr = (long *)&ptr + 3;
        *ptr = (long)&func1;
        *((int *)ptr - 1) = 052;
     
        cout << "Hello, World" << endl;
    }
     
    int main()
    {
        printHelloWorld();
     
        return 0;
    }

    Результат его выполнения:
    Hello, World
    secret function 42
    Вопросы:
    1 Почему выводится secret function 42, если вызывается только printHelloWorld();
    2 Откуда взялось число 42?

    Подсказки:
    1 Не потому что 42 - это ответ на «главный вопрос Жизни, Вселенной и Всего Остального»
    2 На других архитектурах и компиляторах результат может быть другим, я компилил в linux gcc 5.4.0 x64

    Топик на киберфоруме:
    Простая и интересная задачка по C++: объяснить почему результат работы программы именно такой, какой он есть

    Pythoner, 26 Февраля 2017

    Комментарии (36)
  10. Си / Говнокод #22444

    +1

    1. 1
    2. 2
    puts("Ня. Пока.");
    exit(0);

    bormand, 26 Февраля 2017

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