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

    +3

    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
    include std/socket.e as s
    include std/error.e as err
    
    constant PORT = 5050
    constant BACKLOG = 5
    
    procedure die(object result, sequence action) 
    	printf(2, "Error %d in %s", {result, action})
    	err:crash(action)
    end procedure
    
    procedure ensure_zero(integer result, sequence action)
    	if result != 0 then
    		die(result, action)
    	end if 
    end procedure
    
    function ensure_seq(object result, sequence action)
    	if atom(result) then
    		die(result, action)
    	end if
    	return result
    end function
    
    enum SOCKET, READ, WRITE, ERROR
    constant PHRASE = "Hello from Euphoria\n"
    
    procedure client_proc(sequence socket)
    while 1 do
    		for i = 1 to length(PHRASE) do
    			sequence result = s:select({}, socket, {}, 0, 100)
    			sequence result_s = result[1]
    			if result_s[WRITE] = 1 then
    				s:send(socket, {PHRASE[i]}, 0)
    			end if 
    			task_yield()
    		end for
    end while
    end procedure
    
    constant client_proc_id = routine_id("client_proc")
    
    sequence server = ensure_seq(s:create(s:AF_INET, s:SOCK_STREAM, 0), "create")
    ensure_zero(s:bind(server, "127.0.0.1", PORT), "bind")
    ensure_zero(s:listen(server, BACKLOG), "listen")
    
    while 1 do
    	sequence listen_result = s:select(server, {}, {}, 0, 100)
    	if listen_result[1][READ] = 1 then
    		sequence client = ensure_seq(s:accept(server), "accept")
    		printf(1, "Here comes %s\n", {client[2]})
    		atom task = task_create(client_proc_id, {client[1]})
    		task_schedule(task, {0.5, 0.5})
    	end if
    	task_yield()
    end while

    MAKAKA, 27 Октября 2020

    Комментарии (72)
  2. Python / Говнокод #27060

    −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
    number = input("Введите цифру от 1000, до 20000: >")
    if int(number) < 1000 or int(number) > 20_000:
        print("Неправильное число")
        exit(0)
     
    j = ''  # сделать стринг
     
    i = 0  # for
     
    maximum = []  # поиск максимального числа
     
    count = 0  # ошибка
     
    while i < int(number):
        i += 1  # ++
        i_string = str(i)
        j = i_string[::-1]
        if int(i) + int(j) == int(number):
            maximum.append(int(i))
            count += 1  # ошибка
    if count == 0:
        print(0)
        exit(0)
    print(max(maximum))

    Цель кода была в том, чтобы найти максимальный x, по формуле X+F(x) = N, где N число, которое ввели, а F(X) перевёрнутый X
    x = 1234 f(x) = 4321

    warzon131, 26 Октября 2020

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

    −3

    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
    using System;
    using System.Linq;
    using System.Text.RegularExpressions;
    
    namespace Filter
    {
        class MainClass
        {
            /// <summary>
            /// Filter ver. 1.0
            /// Matching only one word
            /// <created>Aleksandr 23.10.2020</created>
            /// </summary>
            /// <param name="args"></param>
            /// 
            public static void Main(string[] args)
            {
                try
                {
                    string str = "ехал грека через редиска че за редиска кек";
    
                    //Настройки=====================================================================
                ////Уберите комментарий строки 20 если хотите ввести свое слово, и уберите строку 21
                ///
                //string str1 = Console.ReadLine();       //<==== decomment
                //==================================================================================
    
                string str1 = "редиска";
    
                //если разкомментировали строку 21, то замените слово "тварь" на слвоо которое ввели   //<==== decomment
                Regex regex = new Regex(@"редиска(\w*)");
                MatchCollection matches = regex.Matches(str);
                if (matches.Count > 0)
                {
                    foreach (Match match in matches)
                    {
                        Console.WriteLine(match.Value);
                    }
    
                    var arrS = str.Split(' ').Select(s => s.Trim(',', '?', '.', '!')).ToArray();
    
                    for (var i = 0; i < arrS.Length; i++)
                    {
                        if (arrS[i].ToLower() == str1)
                            arrS[i] = "***";
                    }
                    var newStr = string.Join(" ", arrS);
    
                    Console.WriteLine(newStr);
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Совпадений не найдено");
                }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Исключение: {ex.Message}");
                    Console.WriteLine($"Метод: {ex.TargetSite}");
                    Console.WriteLine($"Информация об исключении: { ex.InnerException}");
                }
            }
        }
    }

    AlexStrew, 25 Октября 2020

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

    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
    // удалить cookie
    void delete_cookies() {
        cout << "Set-Cookie: login = ololo; Max-Age=0\n";
        cout << "Set-Cookie: sid = ololo; Max-Age=0\n";
    }
    // ...
    // вывод списка изображений
    if(cur_pic>1)
    {
        cout << "<a href='http://[DELETED URL]/?"<<cur_pic-1<<"' align='middle'> Previous </a>";
    }
    if(cur_pic==1)
    {
        cout << "<a href='http://[DELETED URL]/?"<< 1 <<"' align='middle' style='color:#00ff00'> 1 </a>";
    }
    else
    {
        cout << "<a href='http://[DELETED URL]/?"<< 1 <<"' align='middle' > 1 </a>";
    }
    if(cur_pic==2)
    {
        cout << "<a href='http://[DELETED URL]/?"<< 2 <<"' align='middle' style='color:#00ff00'> 2 </a>";
    }
    else
    {
        cout << "<a href='http://[DELETED URL]/?"<< 2 <<"' align='middle' > 2 </a>";
    }

    CGI-приложение на C++ это весело!

    groser, 25 Октября 2020

    Комментарии (7)
  5. Куча / Говнокод #27055

    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
    // Define type
    define bottles_of_beer => type {
    
    	// Define internal data 
    	data private bottles = 99
    
    	// Define private methods
    	private br => '<br/>'
    	private s => .bottles != 1 ? 's' | ''
    	
    	// Generate lyrics when object represented as a string
    	public asstring => {
    
    		local(out = '')
    	
    		// Use Lasso query syntax to generate the lyrics
    	
    
    		with n in 99 to 1 by -1 do {
    			.bottles = #n
    			#out +=  .bottles + ' bottle' + .s + ' of beer on the wall, ' + .br
    			#out +=  .bottles + ' bottle' + .s + ' of beer; ' + .br
    			.bottles--
    			#out += 'Take one down, pass it around, ' + .br
    			#out += .bottles + ' bottle' + .s + ' of beer on the wall. ' + (.br * 2) 
    		}
    
    		// Return result
    		return #out
    	}
    }
    
    bottles_of_beer

    https://en.wikipedia.org/wiki/Lasso_(programming_language)

    MAKAKA, 24 Октября 2020

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

    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
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    /* https://habr.com/ru/company/jugru/blog/524600/
    Давайте теперь поговорим о метаклассах, коль скоро ваш вопрос был в первую очередь о них.
    Для их реализации было необходимо три фундаментальных нововведения. Во-первых, программирование
    во время компиляции. На момент начала работы над метаклассами оно частично присутствовало в
    constexpr, но тогда оно было ещё сырое и не до конца обобщённое. Во-вторых, была необходима
    рефлексия, по которой тогда только-только появились первые предложения, и рассчитывать на неё
    было рискованно. В-третьих, нужна была генерация кода, создание исходного кода C++ во время
    компиляции — на тот момент в C++ этого ещё ни разу не делали.
    
    Но при наличии этих трёх предпосылок метаклассы становятся просто синтаксическим сахаром,
    который во время компиляции применяет функцию рефлексии и генерации кода. Поэтому в
    первоначальной статье по метаклассам (P0707) также написано об этих трёх вещах: рефлексии,
    полном программировании во время компиляции, то есть возможности выполнять любой код C++
    во время компиляции, и генерации кода C++; ничего этого на тот момент в языке не было.
    
    Самым важным шагом в этом направлении стало добавление программирования во время компиляции.
    Это значит, что вторая предпосылка метаклассов в C++20 почти закончена. Функции consteval
    с гарантированным выполнением во время компиляции на самом деле были предложены именно в
    статье, которую я только что упомянул. На основе моей статьи Эндрю Саттон (Andrew Sutton)
    сделал реализацию метаклассов в Clang, с помощью которой были написаны consteval и некоторые
    другие фичи C++20.
    
    В общем, с программированием во время компиляции дела обстоят хорошо. Что касается рефлексии,
    она входит в список семи приоритетов для C++23. Даже без учёта нарушений из-за COVID-19 я
    сомневаюсь, что рефлексию завершат к 2023 году, но ей точно будет уделяться много усилий.
    Это не может не радовать. Над генерацией сейчас тоже работают Дэвид Вандевурд и, опять-таки, Эндрю Саттон.
    
    Когда рефлексия, consteval и генерация станут частью стандарта, для добавления метаклассов
    будет достаточно заявки на пяти страницах, в которой мы просто поблагодарим за реализацию
    этих трёх предпосылок, и предложим добавить поверх них синтаксический сахар, который позволит
    во времени компиляции применять функцию к классу. В общем, в этой области сделано уже очень
    многое, но, как видите, это проект, требующий много лет для завершения. Мне пришлось разбить
    его на несколько более мелких заявок, чтобы вся работа не была забракована из-за одного
    неудачного сегмента. Несмотря на это, мы всегда учитывали конечную цель — метаклассы; и мы
    всегда ориентировались на определённый вариант использования.
    
    Легковесная обработка исключений — более новый проект, я впервые предложил её комитету в 2018 году.
    В отличие от метаклассов, на начальном этапе диалога прототипа ещё не было, и я хотел узнать, готов
    ли комитет вообще двигаться в этом направлении. С самого начала мы получили положительную реакцию,
    а также некоторые технические вопросы. В следующем году мы планируем начать работу над прототипом.
    Когда прототип будет готов и мы сможем ответить на эти технические вопросы, мы составим более подробную заявку.
    
    Наконец, нужно сказать ещё об одном проекте, обсуждение которого началось только в феврале этого года.
    Это было в Праге на встрече юзер-группы, её запись выложена на YouTube. Речь идёт о передаче параметров и
    инициализации. Здесь используется подмножество правил статического анализа, которые использовались для
    Lifetime. Я уже подготовил об этом статью (под номером 708), но прежде чем подать её комитету, мне необходимо
    будет создать прототип.
    */

    Почему это выглядит как вореции?

    j123123, 24 Октября 2020

    Комментарии (59)
  7. Куча / Говнокод #27053

    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
    У студента из Камеруна на автостанции в Люберцах украли багаж на 1 млн рублей
    
    https://tass.ru/proisshestviya/9788371
    
    МОСКВА, 22 октября. /ТАСС/. Багаж студента из Камеруна, оставленный им без присмотра на автостанции
    в Люберцах, был похищен. Два чемодана украли двое ранее судимых мужчин, сообщила журналистам начальник
    пресс-службы ГУ МВД по Московской области Татьяна Петрова.
    
    "В Люберцах полицейские задержали мужчин, похитивших личные вещи у уроженца Республики Камерун. В
    дежурную часть поступило заявление от 25-летнего студента о том, что на автовокзале у него похитили два
    чемодана с принадлежащим ему имуществом. Общая сумма материального ущерба составила свыше 1 млн
    рублей", - сказала Петрова.
    
    Полиция установила, что двое мужчин на автостанции в городском округе Котельники увидели чемоданы без
    присмотра и украли их. Местный участковый нашел обоих по камерам наблюдения. Задержанными оказались
    39-летний уроженец Самарской области и 46-летний житель Подмосковья, оба ранее судимы. В ходе осмотра
    места происшествия в помещении автовокзала полицейским было обнаружено и изъято похищенное имущество
    и возвращено потерпевшему.
    
    Возбуждено уголовное дело по статье о краже, подозреваемые заключены под стражу.

    rotoeb, 24 Октября 2020

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    var src = "c:\src";
    var dest = "c:\dest";
    var cmp = CompressionLevel.NoCompression;
    var zip = source_folder + ".zip";
    
    ZipFile.CreateFromDirectory(src, zip, cmp, includeBaseDirectory: false);
    ZipFile.ExtractToDirectory(zip, dest_folder);
    
    File.Delete(zip);

    Интересный способ для копирования всех файлов в директории и поддиректориях.

    https://stackoverflow.com/questions/58744/copy-the-entire-contents-of-a-directory-in-c-sharp

    groser, 23 Октября 2020

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

    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
    template <typename T, typename OUT_T = uint8_t> 
    OUT_T subdecoder_nbt::extract_bits(T bits, uint8_t pos, uint8_t end)
    {
        auto invert_bytes = [](T bytes) -> T
        {
            auto *p     = reinterpret_cast<uint8_t*>(&bytes), 
                 *p_end = reinterpret_cast<uint8_t*>(&bytes) + sizeof(bytes) - 1; 
            for(; p < p_end; ++p, --p_end)
            {
                *p = *p ^ *p_end;
                *p_end = *p ^ *p_end;
                *p = *p ^ *p_end;
            }
    
            return bytes;
        };
    
        bits = invert_bytes(bits);
    
        bits <<= pos;
        bits >>= (sizeof(bits) * 8 - (end - pos) - 1);
    
        return (OUT_T)bits;
    }

    Как правильно доставать биты из промежутка из стандартных типов C++ на x86.
    Изучал эту проблему в сумме почти сутки.

    А всё потому, что x86 хранит байты в Little-Endian, из-за чего при сдвиге биты окажутся не там, где ожидаешь.

    YpaHeLI_, 23 Октября 2020

    Комментарии (146)
  10. 1C / Говнокод #27048

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Функция ВнешнийОтчетВФоновомЗадании(НаимРеглОтч)
    	...
    		ИмяОбработки = ВнешниеОтчеты.Подключить(АдресВоВременномХранилище, , Ложь);
    		Возврат ВнешниеОтчеты.Создать(ИмяОбработки, Истина);
    	...
    КонецФункции

    В фоновом задании создаем внешний отчет с БезопасныйРежим=Истина. Вопрос, типа, "предупреждение безопасности, разрешить открывать данный файл?", конечно, никому не выходит. Итог для пользователя - ошибка. Что за звездец! Как можно задавать вопрос в фоновом? Зачем? ЗУП 3.1 типовая

    sandvich, 22 Октября 2020

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