Задать вопрос
  • Как правильно спроектировать "космический корабль"?

    Используй систему статов. Например у тебя есть класс

    enum StatType {
       speed;
       power;
       mobility;
    }
    
    class StatManager {
        // Выставляет начальное значение стата
        void setStateBase(StatType type, float value);
       // Добавляет новый модификатор для стата
        void addStatModf(StatType type, StatModf modf);
        // Удаляет модификатор стата
        void removeStatModf(StatType type, StatModf modf);
        
        // Возвращает значение стата со всеми повешенными на него StatModf 
        Float getStateValue(StatType type);
    }
    
    enum StatModfType {
       set;
       add;
       mult;
    }
    
    class StatModf {
       var StatModfType type; // как именно модификатор влияет
       var Float value;  // значение с которым он влияет
    }


    При выполнении getStateValue перебирай все модификаторы для этого стата на базовое значение.
    Рекомендую применять модификаторы в порядке их типа (StatModfType) вначале set потом mult, потом add а не в порядке добавления. Тут самый простой вариант предложен, подумай и переработай под свои нужны.
    Ответ написан
    1 комментарий
  • Как доработать логотип?

    BuriK666
    @BuriK666
    Компьютерный псих
    Комментировать
  • Как лучше обеспечить защиту SSH от брутфорса?

    DevMan
    @DevMan
    - использовать ключи, пароли отключить
    - port knocking
    - fail2ban
    Ответ написан
    Комментировать
  • Возможно ли управление шлагбаумом по сети?

    Ну питать реле через провода ЛВС точно не советую.
    У нас освещение в институте было в одном коробе с камерами (лень видимо было отдельно делать), так при включении/выключении света картинка пропадала секунд на 10-15. :D

    Сделайте отдельный кабель до шлагбаума, с кнопкой где вам надо, если не хотите "ардуины".
    Ну или, как ту предлагают - радиоканал.

    Ну или колхоз в виде ненужной мобилы (а может там уже проложен телефон?!). При звонке сигнал с её динамика усиливать через транзистор, который откроет реле, которое будет воздействовать на шлагбаум! Правда все смски "акций" от оператора будут иногда произвольно открывать шлагбаум. :D
    Ответ написан
    1 комментарий
  • Возможно ли управление шлагбаумом по сети?

    loly_girl
    @loly_girl
    IoT, сети, биолог, арт-директриса
    Отдербаньте от этого патч-корда одну пару и используйте её для подачи тока на реле. Зачем огороды городить?
    Ответ написан
    Комментировать
  • Какой алгоритм?

    @Fortop
    Tech/Team lead
    Привести их к формату с годом и использовать date_diff и тому подобные функции в соответствующих языках.
    Ответ написан
    Комментировать
  • Лишние символы в c++, откуда?

    Во-первых, new char выделит память только для одного символа, а у вас их много. То есть уже в следующей строке (cin >> array) проезд по памяти. Если пишете в целях обучения и нельзя брать std::string, то выделяйте с запасом, например new char[256]; Освобождать при этом память надо будет при помощи delete[] array;
    Во-вторых, конец строки определяется по нулевому символу на конце. cin >> array делает это сам (пишет в конец array нулевой символ), а вы в своей функции нулевой символ не выставляете. Сделать это можно так:
    str[length_str] = '\0';
    Но надо иметь в виду, что памяти надо выделить [хотя бы] на 1 больше, чем length_str.

    Итого:
    1. Вам надо в обоих случаях память выделять под массив. В первом случае можно под 256 элементов. В идеале при этом читать не при помощи cin, а другими функциями, дабы избежать переполнения на случай, если введут строку более длинную.
    2. В reverse надо выставлять терминирующий нуль и исправить длину массива. Возможно вообще разворачивать строку по месту, т.е. менять местами буквы, а не создавать новую строку (в этом случае не надо ни память выделять, ни трогать терминирующий нуль, он останется на месте).
    3. Вам надо удалять выделенную память по окончании использования при помощи delete []
    Ответ написан
    2 комментария
  • Что это за деталь(на фото)?

    @vilgeforce
    Раздолбай и программист
    Резистор 2.2 Ома, мощность 5 Ватт.
    Ответ написан
    4 комментария
  • Как сделать так, чтобы main() возвратила double?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Вам хочется странного. Код возврата из приложения -- целое число, это жёстко закодировано во многих местах ОС. В POSIX это часть стандарта. В C и C++ это часть стандарта.
    Ответ написан
    3 комментария
  • Какого робота придумать?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Придумайте робота, который бы придумывал роботов за вас.
    Ответ написан
    1 комментарий
  • Существуют в продаже прозрачные E-INK дисплеи?

    GavriKos
    @GavriKos
    Мне кажется, такие E-ink не могут существовать технически. Как работает e-ink: в ячейке есть порошок двух цветов - белый и черный. Контроллер просто перемещает их в ячейке - т.е. сверху либо черный порошок. либо белый. Соответственно состояния прозрачности нет вообще. Вам подойдет ЖК.
    Ответ написан
    Комментировать
  • От того что быстро включаешь и выключаешь свет, действительно перегорают лампочки?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Реальность - при включении, нить лампы накаливания испытывает ударные термические напряжения и может легко перегореть. От этого есть защита - устройство плавного включения ламп. Искать в электротоварах.
    Ответ написан
    Комментировать
  • Как можно использовать солнечную батарею?

    Spetros
    @Spetros
    IT-шник
    КО подсказывает, солнечную батарею можно использовать двумя способами: по назначению и не по назначению.
    Ответ написан
    Комментировать
  • Как можно использовать солнечную батарею?

    @vilgeforce
    Раздолбай и программист
    Кружку с пивом накрывать, чтобы мошка не налетела!
    Ответ написан
    Комментировать
  • Как получить массив случайных чисел, сумма которых равна 500?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Предположим, что числа нужны целые неотрицательные. Если числа могут быть нулевыми, делаете так:
    n1=irand(501); // от 0 до 500
    n2=irand(501); // от 0 до 500
    n3=irand(501); // от 0 до 500
    sort(n1,n2,n3); // сортируете по возрастанию любым подходящим способом
    x0=n1; x1=n2-n1; x3=n3-n2; x4=500-n3;

    Если числа могут быть только положительными, то поступаете аналогично:
    n1=irand(497); // от 0 до 496
    n2=irand(497); // от 0 до 496
    n3=irand(497); // от 0 до 496
    sort(n1,n2,n3); // сортируете по возрастанию любым подходящим способом
    x0=n1+1; x1=n2-n1+1; x3=n3-n2+1; x4=496-n3+1;

    Распределение будет слегка неравномерным (наборы, содержащие нули в первом случае и единицы - во втором, будут встречаться чуть реже), но и это можно исправить, слегка усложнив программу.
    Ответ написан
    Комментировать
  • Есть ли одноплатный компьютер для управления силовой элеткроникой?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Совмещать в одном устройстве компьютер и управление силовой электроникой очень дорого - коммутационные помехи легко подвесят такой компьютер, поэтому нужно потратить массу времени на организацию надежной защиты и экранирования.

    Большинство имеющихся на рынке одноплатников являются макетами/админскими игрушками (чтобы чайник пинговался!) и не предназначены для работы в промышленности.

    Как правило, за управление в АСУ ТП отвечает ПЛК, который общается по промышленной сети с датчиками/исполнительными устройствами, а "компьютер" выполняет роль индикации и конфигуратора, но не "управляет" процессом.

    Итак вопрос - что за электроника? Если это двигатель, к нему нужен контроллер привода (обычно это преобразователь частоты). У этого контроллера будет внешний интерфес (RS485, CAN, Ethernet, сухие контакты наконец), к которому уже можно подключить одноплатник.

    Но не стоит вешать на GPIO одноплатника тиристоры управления фазами двигателя.
    Ответ написан
    4 комментария
  • Как запрограммировать подсветку клавиатуры?

    А с чего вы взяли, что там вообще есть отдельно управляемые элементы подсветки для каждой клавиши в отдельности?
    Ответ написан
    Комментировать
  • Как регулировать температуру в заданных пределах?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    :[|||||||||||||||||||||||||||/////////////////-еще мноооого километров баяна-\\\\\\\\\\\\\\|]:
    if (ktemp = false && temp_atmosphere < t1) {
    Я так полагаю, вы хотите проверить ktemp на ложность.
    В этом случае, нужно писать два знака равно, потому что один знак в C++ - присваивание.

    А еще лучше, написать:
    if ( (!ktemp) && (temp_atmosphere < t1) ) {
    Ответ написан
    4 комментария
  • Принцип работы медианного фильтра?

    Дальше полученное значение используется в качестве нового значения яркости для данного пиксела. Вот и все.
    Но есть ряд нюансов:
    0) Медианный фильтр можно применять к любому каналу. Но эффект будет разным и не всегда осмысленным. В данном случае вы описываете фильтрацию в канале яркости.
    1) Конвертацию в HSV надо делать для всего изображения целиком до начала фильтрации. Можно конечно и на лету, но зачем усложнять? Хотите фильтровать канал яркости? Конвертируете в HSV где яркость есть в явном виде и фильтруете её. После фильтрации можно перевести обратно в RGB, если вам так удобнее.
    2) Естественно для вычисления нового значения надо использовать значения пикселей из оригинального изображения. Поэтому результат надо писать не поверх, а в отдельную область памяти.
    3) Есть специфика обработки краёв.
    Ответ написан
    Комментировать