Задать вопрос
  • Как настроить RDP-подключения к разным компьютерам?

    @res2001
    АртемЪ,
    Ну и что? Кто мешает сделать его безопасным? Вопрос то был как настроить.

    Никто не мешает. Просто сообщаю автору, что это не безопасно и надо предпринять дополнительные телодвижения, вдруг он не в курсе.
  • Как провести дискретизацию сигнала?

    @res2001
    solid_soft, Передискретизация - это изменение частоты дискретизации. Сам сигнал при этом теоретически не меняется.
    Судя по коду, вам просто нужен код, который генерирует другой сигнал - тот который вам нужен. Не нужно употреблять не понятных терминов.
    Вообще при генерации сигнала есть интервал времени (на котором генерируется сигнал), он измеряется в секундах и есть интервал амплитуд.
    Время у вас задается переменной t. Сейчас время 1 секунда. Задайте ее так:
    t=0:Ts:4*pi;
    Будет интервал времени от 0 до 4*pi секунд. Правда не понятно причем тут время и pi.

    Интервал амплитуды регулируется коэффициентами, на которые вы умножаете ваши sin().
  • Как провести дискретизацию сигнала?

    @res2001
    На сколько я понимаю, чтоб провести дискретизацию сигнала вам нужен:
    1. внешний источника аналогового сигнала
    2. АЦП на компе
    3. ПО работающее на компе позволяющее получать дискретный сигнал от АЦП.

    То что у вас в примере кода - это не дискретизация. Это генерация дискретного сигнала.
    В компьютере все сигналы всегда дискретны по определению их не нужно дополнительно дискретизировать.
  • Как настроить RDP-подключения к разным компьютерам?

    @res2001
    Андрей, Выставлять голый пользовательский RDP в инет плохая затея. Это не безопасно.
    После должной настройки это можно сделать. Настройка заключается в:
    1. генерация своих сертификатов на собственном ЦА, которые будут использоваться в RDP на каждом компе
    2. установка этих сертификатов и прикручивание их к RDP (как это сделать в десктопной винде фиг знает, но думаю, что можно)
    3. Блокировка всех не стойких крипто-протоколов, которые могут использоваться при RDP подключении.
    4. Включение для RDP режима "Network Level Authentification Only"

    Возможно более подходящим решением будет настройка ВПН и получение доступа по RDP через ВПН. По крайней мере это видится более простым решением.
  • Windows 10 игнорует статический маршрут. Как это исправить?

    @res2001
    Конфиги openvpn клиента и сервера то же давайте сюда.

    Винда не игнорирует маршруты, скорее всего маршрут задан не верно или происходит ошибка при добавлении маршрута - это будет видно в логе клиента при подключении. Так что включите логирование.
  • Как сформировать сумму матриц с возможностью использовать разное их количество?

    @res2001
    Реслюков Александр,
    все введенные матрицы должны сохраняться в txt-документ

    Ввели матрицу, сразу сохранили в txt, ввели вторую, сохранили. Сложили, результатом сложения заменили первую матрицу. Ввели третью матрицу, сохранили, сложили, ...

    Но можно и "по простому" - количество матриц известно , размерности то же.
    Динамически выделяете память под трехмерный массив размерностью [k][N][M], вводите все матрицы, складываете, сохраняете ...
    Будет немного сложно разобраться с индексацией в динамическом трехмерном массиве. Появится трехкратная вложенность циклов. Но, видимо, именно на это и направлено задание.
  • Как здесь распараллелили задачу?

    @res2001
    ahame, Ну вот таким и распараллелена (п.2)
  • Как здесь распараллелили задачу?

    @res2001
    Что OpenMP не справляется? Хотя вроде бы подобные вещи как раз для него.
    Но по OpenMP не подскажу, не использовал.

    1. Включите SIMD оптимизации компилятору.
    2. Разбейте ваши окрестности по нескольким потокам, запустите потоки, потом результаты надо будет объединить в основном потоке. Все то же самое, по идее, должен был сделать OpenMP.
  • На каком режиме работают выполняются сервисы Пользовательский режим или на Режиме ядра?

    @res2001
    Небольшое добавление к ответу:
    Большая часть современных ОС имеют монолитные ядра (Windows, Linux, ...) в них работает описанная схема.
    Но есть ОС с микроядрами (самая известная, видимо, QNX), там функции ядра сильно уменьшены. Например в том же QNX в функции ядра входит планировщик процессов и обработчик сообщений (это специфичный для QNX механизм IPC), все остальное работает в user mode даже драйвера устройств, диспетчер ресурсов, файловые системы и т.п.
  • C++ WinForm Как правильно вывести массив структур переданный через указатель?

    @res2001
    Алексей, Имел ввиду константу времени компиляции (#define или constexpr). const int max - это не обязательно константа времени компиляции, она может быть разной. Так что возможно используете VLA.
    там по идеи всё нормально

    Если в ch_kol массив base локальный - то не нормально.
    Это работает из-за того, что массив объявляется на стеке, а на стеке память всегда выделена на весь размер стека. Поэтому, если после уничтожения переменной стек не перезаписан, то там будут лежать старые (уничтоженные) данные.
    Что бы сломать, то что сейчас у вас типа работает достаточно в MyForm_Load после присваивания base определить несколько любых переменных, и присвоить им произвольные значения. Увидите как покорежится ваш вывод.
  • Как правильно сделать комплексное преобразование Фурье в python?

    @res2001
    Роман Попов, Проблема не ясна. Что конкретно у вас не получается?
    В результате максимальная магнитуда для 0 индекса и 2048.

    В результате БПФ в нулевой гармонике находится постоянная составляющая сигнала. Нулевая гармоника обычно максимальна. Т.к. результат БПФ симметричен, то и последняя гармоника будет такой же как нулевая, за исключением того, что мнимая составляющая во второй половине спектра идет с противоположным знаком.
    Обычно в дальнейших преобразованиях вторую половину спектра не используют.
    Постоянную составляющую спектра (нулевую гармонику) можно сделать нулевой. Для этого надо найти среднее арифметическое временного сигнала и разделить каждый отсчет на это среднее.

    Если у вас проблема правильно собрать входной комплексный массив для БПФ, то можно сделать так:
    in = I + 1j * Q
    Это сработает, если массивы I и Q будут numpy array. Если это не так, то сначала приведите их в этот вид:
    I = np.asarray(I)
  • Что не так с наследованием?

    @res2001
    Конструктор в наследнике в вашем случае не обязателен - будет использован конструктор по умолчанию, конструктор mnoj будет вызван со значением параметра по умолчанию.
    Если нужно для mnoj задать отличное от умолчания значение параметра, то, конечно, нужно делать явный конструктор для потомка и в нем вызывать конструктор предка с нужным параметром, например так:
    mnoj1(int n = 0) : mnoj(n) {}
  • Как написать функцию добавления/удаления элемента в массив?

    @res2001
    Sazoks,
    Ругается на амперсант &

    Ну да, в Си ссылок нету в принципе.
  • Как разбить строку на подстроки и определить их в динамический массив строк с помощью си?

    @res2001
    Посмотрите внимательно сюда:
    s[i]=(char *)malloc( 60*sizeof(char));
    и сюда
    s[i]=istr;
    1. Тут есть потеря выделенной malloc памяти во втором присваивании.
    2. Память mallocом вы выделяете под "подстроку", но в s[i] у вас в итоге хранятся указатели на уже существующую строку в c[300]. И это правильно! Цикл с mallocом вообще лишний. Просто определите s как статический массив указателей рамерностью в 2 раза меньше, чем массив c.

    Если вам нужно только вывести строки и не обязательно их складывать в массив, то и s[] вам не нужен - сразу же выводите istr на экран.
  • Как не собирать повторно зависимость при сборке проекта в cmake?

    @res2001
    Другой вариант - использовать библиотеку как внешнюю зависимость.
    В этом случае в вашем проекте уже не будет сабмодуля с библиотекой - библиотека будет полностью внешней сущностью. Пользователь должен будет ее установить самостоятельно каким-то образом, а в вашем проекте просто надо выводить ошибку, если find_package не нашел библиотеку.
    При установки библиотеки обычно вместе со своим бинарником и заголовками устанавливают так же файлы для поиска библиотеки. Это могут быть те же find.cmake файлы для find_package, где будет add_library(... IMPORTED ...). Или конфигурационный файл для pkg-config - эта линуксовая утилита, с помощью которой find_package находит большую часть внешних библиотек.
    В винде вместо pkg-config используются возможности какого-либо пакетного менеджера, например для MSVS есть vcpkg. Обычно в этом случае в cmake уже есть поддержка пакетного менеджера и find_package в состоянии найти библиотеку установленную с его помощью.
  • Как не собирать повторно зависимость при сборке проекта в cmake?

    @res2001
    Mars36, Ок. Тогда можно делать так:
    вручную проверяете наличие собранной библиотеки:
    1. Если библиотека собрана, то создаете цель для библиотеки с помощью add_library(... IMPORTED ...) имя для цели задаете такое же как и в цели для сборки библиотеки. По уму в директиве add_library надо задать не только путь к бинарному файлу библиотеки, но и пути к заголовкам. В этом случае цель импортированной библиотеки будет аналогична цели для собираемой библиотеки и подключать библиотеку к вашей конечной цели можно будет обычным образом через target_link_libraries() без дополнительных действий.
    2. Если библиотека не собрана - add_subdirectory()

    Лучше всего создать свой собственный файл find<имя библиотеки>.cmake для поиска библиотеки, который будет использовать find_package и там производить все эти манипуляции. Примеры подобных файлов поиска в интернете полно.
    Так же нужно учесть, что собранная библиотека будет лежать в каталоге сборки, а не в каталоге сабмодуля. Если не ошибаюсь, каталог сборки можно получить из переменной ${CMAKE_CURRENT_BINARY_DIR}, но это не точно.
    Содержимое переменных можно вывести на экран с помощью message.
    У cmake толковая документация, так что рекомендую: https://cmake.org/cmake/help/v3.7/genindex.html
  • Как не собирать повторно зависимость при сборке проекта в cmake?

    @res2001
    У вас либа в проекте в виде бинарника лежит?
    Тогда можете просто ее указывать в target_link_libraries().
    Если либа в исходниках и ее нужно просто один раз собрать, то оно в принципе так и работает по умолчанию.
    Да в каталог с либой cmake будет заходить при каждой сборке. Ведь конфиг cmake для либы лежит в каталоге с либой и по другому он просто не знает на какие зависимости нужно смотреть. Кроме того пока не проверит каждый файл на предмет изменений, cmake не может узнать не изменилось ли чего в библиотеке. Но пересобирать библиотеку cmake не будет, если нет необходимости.
  • Зачем используют константы для объявления длины массива?

    @res2001
    Hemul GM, Предпочитаю использовать вариант: ДлиннаМассива(массив), чем константу, т.к.:
    1. для статических С/С++ массивов это константное выражение вычисляется на этапе компиляции и не отнимает процессорного времени при выполнении.
    2. Часто семантически более понятно явное взятие длины массива, чем использование константы, т.к. константы и массивы часто называются так, что между ними трудно уловить связь и приходится при чтении кода дополнительно выяснять эти связи. При использовании выражения ДлиннаМассива(массив) такой неоднозначности не возникает.

    При этом массив объявляется, конечно, с использованием константы.

    Для VLA массивов выражение ДлиннаМассива(массив) вычисляется на этапе выполнения. Вообще лучше не использовать VLA, особенно в С++.
  • Как вызвать класс комплексное число?

    @res2001
    im_noob, Я так и подумал.
    Complex complex = polynom.computePolynomial();
    complex.show();
  • Как вызвать класс комплексное число?

    @res2001
    im_noob,
    его результат вывести на экран

    computePolynomial() сам ничего не выводит, он только вычисляет. Это ясно по его коду.
    Вам надо вывести результат на экран любым способом, который придумаете. Впрочем в коде уже все придумано, нужно только использовать.