Задать вопрос
  • Что нужно исправить в кодее сортировки merge, чтобы она правильно работала?

    @res2001
    Developer, ex-admin
    Может быть потому, что массивы в С/С++ индексируются, начиная с нуля, следовательно последний элемент будет иметь индекс (n-1), т.е. 50. А вы передаете в merge_sort в качестве right значение 51. Так что у вас выход за пределы массива. Так же вы используете начальное значение для left = 1, таким образом вы не обрабатываете 0 элемент массива.

    Кроме того. Заверните ваш код в тег code (кнопка </> на панели инструментов) и верните все отступы - код не возможно читать.
    Ответ написан
    Комментировать
  • Как WSL 2 запускает приложения на физ. машине Windows? Как сделать это в VirtualBox или VMWare?

    @res2001
    Developer, ex-admin
    WSL2 - запускает свою гостевую ОС в виртуальной машине, но эта машина тесно интегрирована в с виндой хоста, так что многие моменты обычных гипервизоров скрыты. То что вы можете запустить виндовые исполняемые файлы из WSL, это заслуга интеграции с хостом. Такие программы исполняются хостовой виндой, а не гостевой ОС. Другие гипервизоры так не умеют - у них нет такой тесной интеграции с хостовой ОС.

    По настройке сети для WSL2: https://learn.microsoft.com/ru-ru/windows/wsl/netw...
    Все получается.

    Подключить физический диск в ВМ можно. Для virtualbox нписано тут: https://www.virtualbox.org/manual/ch09.html#rawdisk
    У vmware есть своя инструкция.

    Подключить к гипервизору физическую машину - нельзя. Можно "сконвертировать" физическую машину в виртуальную и запускать уже виртуальную. Вот, например, инструкция от virtualbox: https://www.virtualbox.org/wiki/Migrate_Windows
    Ответ написан
    Комментировать
  • Как сделать Bat файл для пинга вводимого хоста?

    @res2001
    Developer, ex-admin
    set /p name="Input the host name: "
    ping %name%

    Даже не знаю, что тут комментировать :-)
    Дополнительную информацию смотрите тут:
    set /?
    ping /?
    Ответ написан
    1 комментарий
  • Где изучать STL и Boost?

    @res2001
    Developer, ex-admin
    STL по сути часть языка, так что в любом учебнике по плюсам будут и основы STL.
    Boost - это такая расширенная версия STL, многие новшества перед тем как попасть в стандарт и соответственно в STL тестируются на Boost. Но в Boost содержится много того, чего нет в STL. У Boost своя хорошая документация, изучайте по ней и по примерам.
    Любые другие библиотеки изучаются по документации от разработчиков библиотеки. Если документации нет, бывает и такое, - по исходникам.
    Ответ написан
    Комментировать
  • Какой компьютер выбрать для программирования?

    @res2001
    Developer, ex-admin
    1. Как уже писали, для программирования много не надо. Но когда комп начинает тормозить в не подходящий момент - это не приятно.
    2. Ноутбук или стационарный ПК надо выбирать исходя из того как вы пользуетесь им. Если он все время на одном месте - то смысла в ноуте нет.
    3. Учтите, что стационарный выйдет дешевле при тех же характеристиках.

    Я недавно обновил свой ноут. У меня вопроса не стояло ноут или ПК, т.к. регулярно бываю на выезде, хотя основное время - дома на удаленке.
    Взял Lenovo Legion 5. Доволен как слон :-)
    У Леново есть еще хорошие варианты в рамках линеек ThinkPad T/P/X. В каждой линейке несколько моделей. Пишут, что thinkpadы сертифицируются для пентагона, так что там качество на высоте должно быть.

    Если все таки остановитесь на ноуте, обращайте внимание на то, что в некоторых моделях память распаяна на материнке и заменить (увеличить) ее практически не реально. Так же есть смысл смотреть на наличие дополнительного слота для SSD. Ну и наличие необходимых внешних интерфейсов то же может быть важным вопросом. Если подключаете внешние мониторы, то смотрите, чтоб были разъемы в нужном количестве и нужного типа.
    Обычно, можно купить ноут с небольшим SSD и количеством памяти и сразу проапгрейдить его, возможно будет дешевле, чем сразу покупать ноут с необходимым размером SSD и памяти. На процессоре экономить не стоит.
    На озоне сейчас есть наши продавцы, которые возят из китая. Доставка долгая - 1-1.5 месяца. Но сильно дешевле, чем брать там где "в наличии". Растаможка уже включена в стоимость. У продаванов из Китая растаможка, скорее всего, не включена, поэтому у них ценник будет еще ниже, но он, с большой вероятностью, не окончательный.
    Ответ написан
    1 комментарий
  • Как будет ходить трафик внутри сети?

    @res2001
    Developer, ex-admin
    Нет понятия "основной шлюз".
    Есть "шлюз по умолчанию" в настройках сети на ПК.
    Если шлюз по умолчанию на ПК микротик, то все пакеты пойдут через микротик, т.е. по варианту 1.
    Не силен в микротиках, но в общем случае можно настроить DHCP так, чтоб он отдавал адрес оптического роутера как шлюз по умолчанию (или настроить статически). Тогда будет работать вариант 2. В таком случае микротик в сети будет выполнять роль только DHCP сервера, если, конечно, у него нет другого функционала.
    Ответ написан
    Комментировать
  • Почему программы получают доступ к планировщику задач, регистру, автозапуску и службам?

    @res2001
    Developer, ex-admin
    Смотря какой доступ. Смотря из-под какой учетной записи запущена программа.
    Доступ к планировщику задач есть у всех, пользователь может создавать новые задачи, удалять старые и т.п.; доступ к реестру к пользовательской ветке есть у пользователя полный, к ветке HKLM - на чтение, к некоторым разделам доступ ограничен; автозапуск - это просто ветки реестра и каталог "Strtup" в меню пользователя, соответственно права доступа зависят от нахождения ветки/каталога - если это пользовательский реестр или меню, то доступ полный, если системный - на чтение; доступ к службам у обычного пользователя на чтение есть, на запись требуются админские права.
    Если есть доступ у пользователя, то есть доступ и у любых программ, запущенных под этим пользователем.
    Ответ написан
    Комментировать
  • Как открыть localhost для общей сети?

    @res2001
    Developer, ex-admin
    Как только ты дашь доступ из интернета к этому приложению по советам выше, приложение сразу же начнут ломать.
    Если приложение изначально не создавалось для работы в интернете, то скорее всего рано или поздно в нем найдут баг и сломают. А дальше может быть что угодно: внедрение шифровальщика/вымогатора, использование твоего компа в бот сети и т.п. не приятные вещи.

    Поэтому для приложений, предназначенных для использования в относительно безопасной локальной сети, стоит использовать ВПН, а не прямой доступ из интернета.
    Ответ написан
    3 комментария
  • Как в Windows, подключится сразу двумя пользователями к одному сетевому диску?

    @res2001
    Developer, ex-admin
    Надо "разлогиниться" и залогинится пользователем 2.
    Ответ написан
    3 комментария
  • Ввод текста с++?

    @res2001
    Developer, ex-admin
    Библиотека называется WinAPI.
    Видимо нужно найти нужное окно (по каким-то признакам) и начинать посылать туда сообщения о нажатии клавиш.

    Собственно к С++ эта задача особого отношения не имеет. Та же логика, видимо, была у вас и в питоне, только там все это уже было запрятано в готовую библиотеку. На плюсах может и есть такая готовая библиотека, но точно это не стандартная библиотека, надо искать что-то стороннее.
    Разных библиотек в исходниках и без на плюсах и Си очень много. Гуглите.
    Ответ написан
    Комментировать
  • Как вывести кириллицу в c++?

    @res2001
    Developer, ex-admin
    lololoshka_1991, Если совсем просто, то пиши исходники в кодировке cp866. Кодировка консоли по умолчанию как раз такая в русской винде. Но в этом случае и запускай программу руками из консоли, т.к. тот же MSVS может менять кодировку консоли при запуске программы из него.
    Так же кодировка консоли может меняться и командой в самой консоли. Например: chcp 1251
    В винде по умолчанию может быть 3 варианта кодировок с поддержкой кириллицы: cp866, cp1251, UTF8.

    Что бы сделать программу независимой от кодировки консоли, то придется заморочиться. Готового решения не встречал. По уму надо делать так: пишем исходники в UTF8, в программе узнаем кодировку консоли (WinAPI позволяет это делать), перед выводом весь текст перекодируем в кодировку консоли, после ввода весь ввод перекодируем в UTF8. Внутри программы работаем только с UTF8. Для хранения строк в программе использовать wchar_t, wstring и т.п. Функции перекодирования в WinAPI так же присутствуют.

    Кстати в плюсах есть метод std::basic_ios.imbue(), который позволяет задавать кодировку потока. Можно попробовать поиграть с этим. Но вообще менять кодировку консоли из программы - плохо, т.к. пользователь консольной программы может ждать ответ от запускаемой программы в конкретной кодировке. Это широко используется при написании батников и т.п. скриптов. Например большая часть виндовых команд корректно выводит текст не зависимо от того какая кодировка в консоли. Тот же dir, например.
    Ответ написан
    Комментировать
  • Как отправить байт(ы) в COM-порт?

    @res2001
    Developer, ex-admin
    Сохраните ваши командные байты в файлы в двоичном виде.
    Отправить файл в последовательный порт можно так:
    type file.dat >COM1
    Ответ написан
    1 комментарий
  • Как удалить все строки после 10й строки?

    @res2001
    Developer, ex-admin
    Есть специализированная команда head, с помощью которой можно вывести N первых строк файла:
    head -q -n 10 file.txt >file_new.txt
    rm file.txt
    mv file_new.txt file.txt
    Ответ написан
  • Обход Dom дерева как то относится к дискретной математике?

    @res2001
    Developer, ex-admin
    Изучайте, конечно. Прирост даст, но не в обходе ДОМ.
    ДОМ и так что-то из этого уже использует под капотом, вы этим пользуетесь, вызывая стандартные методы.
    Ответ написан
    Комментировать
  • Как раздать серые ip провайдера в локальную сеть?

    @res2001
    Developer, ex-admin
    Обычно, когда вы арендуете целиком подсеть, то у вас есть эта подсеть + еще какой-то белый адрес не из этой подсети, который выдается оператором для внешнего интерфейса и через который будет происходить маршрутизация вашей подсети оператором. Соответственно на шлюз на внешний интерфейс вешается этот отдельный адрес, а в локальной сети назначаете адреса из подсети (статически или через DHCP). Т.е. все то же самое, как и при использовании серых адресов, только в случае с серыми адресами подсети их вам никто не выдает (выбираете любой диапазон по собственному усмотрению) и вы обязаны использовать NAT для выхода в интернет.

    Если же у вас только подсеть, то используйте ответ Andrey Barbolin
    Ответ написан
    1 комментарий
  • Как передать динамический массив в функцию?

    @res2001
    Developer, ex-admin
    sizeof(chars) в результате дает размер указателя (8 - для x64 систем, 4 - для х32 систем), а не размер строки. Чтоб получить размер строки надо его передать в функцию (str.size()) или вызвать strlen уже внутри.
    sizeof(*chars) всегда в результате равен 1, т.к. размер char по стандарту 1 байт.

    Вам не нужно 2 цикла. Я так понимаю, вы хотели различать четное и не четное количество символов в строке.
    Но если количество элементов четное, то мы должны обработать все элементы массива при этом количество итераций цикла будет strlen(chars)/2. А если количество элементов не четное, то центральный элемент мы пропускаем и количество итераций будет то же strlen(chars)/2, за счет того, что тут используется целочисленное деление и остаток от деления отбрасывается.

    В функцию можно передавать ссылку на объект string, а не сырой массив (c_str()). string позволяет обращаться на прямую к каждому символу отдельно с помощью операции индексации (str[i], так же как и сырые массивы). При этом возвращать что-либо из функции не нужно, т.к. вы будете манипулировать непосредственно данными самого объекта и все изменения будут видны в main.
    Ответ написан
    Комментировать
  • Как упростить проверку на правильность круглых скобок?

    @res2001
    Developer, ex-admin
    Просто считайте количество открывающих скобок и количество закрывающих. Причем, если на закрывающей скобке количество открывающих <= количества закрывающих, то ее не учитываем (или учитываем в ошибках закрывающих скобок), т.к. нет парной открывающей.
    Ошибки по открывающим скобкам будут, если в конце количество открывающих > количества закрывающих, количество ошибок открывающих скобок в этом случае = количество открывающих - количества закрывающих.
    Количество правильных скобок == количеству закрывающих (т.к. не правильные закрывающие мы не считаем).
    Ответ написан
    Комментировать
  • Какой софт есть для RDP подключений windows->windwos аналог remmina?

    @res2001
    Developer, ex-admin
    RDP подключения можно сохранять как *.rdp файл. Заводите каталог с набором RDP файлов. Все.
    Ответ написан
    Комментировать
  • Как изменить имя выходного файла через CMakeLists.txt?

    @res2001
    Developer, ex-admin
    На счет имени таргета посмотрите тут: https://stackoverflow.com/questions/31038963/how-d...
    С каталогом, ну я бы в проекте сделал подкаталог MyDir и в нем свой cmakelists.txt с описанием таргета для библиотеки. Библиотека будет собираться в своем подкаталоге. В корневой cmakelists.txt включать подкаталог с помощью add_subdirectory(MyDir)
    Ответ написан
    1 комментарий
  • Почему не полностью отзывается клиент?

    @res2001
    Developer, ex-admin
    Что клиент подключается к серверам с разными ключами? Ну тогда надо отзывать и второй клиентский ключ.

    Вообще в вашей конфигурации нет смысла создавать клиентам разные ключи. Вам ничто не мешает синхронизировать клиентские ключи на серверах, точно так же как и список отзыва.
    Кстати для списков отзыва есть протокол OCSP, позволяющий проверять списки отзывов по сети. В этом случае отпадает необходимости передавать файлы со списком отзыва по серверам. Но тут, конечно, надо заморочиться с поднятием и поддержкой OCSP сервера и нужно указывать URL OCSP при создании сертификатов.
    Ответ написан