• Существуют логические элементы электроники в типовых корпусах?

    @pfg21
    ex-турист
    КАНЕЧНА !!
    176 серия логических элементов на КМОП-транзисторах, а также ее последователи 561 564 и т.д.
    аналог западная серия 4000

    155 серия логических элементов на ТТЛ и ее последователи 531 533 555 и т.д.
    аналог западная серия микросхем 7400
    Ответ написан
    Комментировать
  • Какую выбрать СУБД, если в день может быть более 11млн записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    11 миллионов inserts в день - это 127 в секунду. При такой нагрузке справится любая современная БД. Ну я не знаю таких чтоб не справлялись. Делайте только короткую буферизацию и batch-insert пачками по 100 - 1000 чтобы оптимизировать сетевой roundtrip.

    Есть специализированные NoSQL системы такие как RocksDb, Tarantool в которых именно много оптимизаций сделано было для быстрой вставки. Они выдерживают и во много раз быстрее.

    И в данной задаче нужно также спросить бизнес - как быстро данные нужны к чтению пользователя. Нужно сию секунду чтоб они отобразились на UI или можно подождать пару минут или часов.
    Ответ написан
    1 комментарий
  • Как нарисовать конус в opengl?

    Посмотрите этот пример.
    Ответ написан
    Комментировать
  • Как переделать код под ООП?

    sheerluck
    @sheerluck
    #include <iostream>
    #include <vector>
    
    class Data
    {
        private:
            std::vector<int> elements;
            std::size_t N;
    
        public:
            explicit Data(const std::size_t size)
                : N{size}
            {
                elements.reserve(size);
                elements.resize(size);
            }
            void fill()
            {
                std::cout << "Enter elements of array:" << std::endl;
                auto index = std::size_t{};
                for (auto &elem : elements)
                    std::cin >> elements.at(index++);
            }
            void process(const int x)
            {
                if (x == elements.at(0))
                {
                    elements.at(0) = elements.at(N - 1);
                    elements.at(N - 1) = x;
                    std::cout << "Array after swapping first and last elements: ";
                    for (const auto &elem : elements)
                        std::cout << elem << " ";
                }
                else
                    std::cout << "Error";
            }
    };
    
    int main()
    {
        auto x = int{};
        auto n = std::size_t{};
        std::cout << "Enter x: ";
        std::cin >> x;
        std::cout << "Enter Number of array elements: ";
        std::cin >> n;
        auto data = Data{n};
        data.fill();
        data.process(x);
        return 0;
    }
    Ответ написан
    2 комментария
  • Как скопировать строку в строку?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Что такое Im? Судя по "->" - это указатель. Вы кладете в вектор указатель. И у вас получается вектор из кучи указателей, которые все указывают на одну и ту же область памяти. И вот в эту область памяти вы в цикле постоянно записываете path. В итоге там останется только последняя запись.

    Вам надо в векторе хранить не указатели на ваш класс/структуру, а сами объекты.
    Ответ написан
    1 комментарий
  • Почему условие работает не правильно?

    @kalapanga
    = это оператор присваивания, а оператор проверки на равенство ==
    Ответ написан
    2 комментария
  • Как в структуре обьявить ссылку на структуру в С arduino?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Так у вас в структуре две переменные с одинаковым именем, на что компилятор и ругается.
    bool submenu;  
    struct menu *submenu;
    Ответ написан
    1 комментарий
  • Указатели в языке Си?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Вмешалась ОС? Но если так, то почему?

    Потому что классическая ошибка - использование неинициализированного указателя. Ты обьявил a указателем на целое, но не присвоил ему никакого значения (через malloc(), calloc() или функции, возвращающие указатель). Обьявленная переменная была выделена в куче и получила какое-то мусорное значение, доступное твоей программе (вполне может быть указатель на часть кода, например, на ядро, на общие функции). Ты его прочитал.
    При попытке записать по данному адресу поймал SIGSEGV, потому что данный адрес твоей программе по записи недоступен. Все, как должно быть.
    могу ли я указателю дать ссылку на конкретную ячейку в памяти?

    Теоретически можешь, но практически ось тебе сразу выдаст SIGSEGV, потому что писать ты можешь только в те области памяти, которые тебе доступны по записи.
    warning: initialization of 'int *' from 'int' makes pointer from integer without a cast

    Ну правильно говорит - инициализация делается без приведения типа. Такой финт ушами часто делают со строками - по умолчанию выставляя там указатель на NULL (что обычно означает, что строке еще не выделялась память), напрмер
    char *str = (char *) NULL;
    Ответ написан
    Комментировать
  • Указатели в языке Си?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему программа завершилась? Вмешалась ОС? Но если так, то почему?

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

    Почему я не могу поменять значение самого указателя (ведь указатель - это всего лишь ссылка на адрес памяти, а не на значение).

    Значение указателя ты поменять можешь, но это не то, что было написано в коде. В коде было написано поменять значение на которое указатель указывает. Поменять указатель было бы a = (int *)10;

    могу ли я указателю дать ссылку на конкретную ячейку в памяти?

    Можешь, но под ОС с виртуальной памятью это в большинстве случаев не имеет смысла. API в таких ОС обычно устроены так, что ты просишь выделить область памяти с заданными характеристиками, а ОС выполняет выделение и возвращает тебе адрес выделенного участка.

    получаю ошибку, ведь вряд ли адрес памяти у указателя хранится в виде 16-ричного целочисленного литерала.

    В памяти всё хранится как последовательность байтов. Любую последовательность байтов можно проинтерпретировать как указатель. Но чтобы компилятор С понял что ты имеешь в виду, ему надо явно сказать, что ты хочешь проинтерпретировать целое число как адрес: int *a = (int *)0x0061FF18;
    Ответ написан
    Комментировать
  • Как при http запросе curl не выводить ничего в консоль?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как выполнить запрос и не выводить ничего в консоль?

    Если результат запроса надо сохранить -- то открыть файл на запись и передать полученный указатель в CURLOPT_WRITEDATA. Если сохранять не надо -- установить функцию, которая будет игнорировать передаваемые ей для записи данные в CURLOPT_WRITEFUNCTION.
    Ответ написан
    Комментировать
  • Как сделать, чтобы при нажатии кнопки выводился текст на дисплей?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Откройте пример для работы с дисплеем. Останется только добавить один if для обработки кнопки.
    Ответ написан
    Комментировать
  • Начал изучать Ардуино, столкнулся с проблемой, не понимаю что делать?

    nava2002
    @nava2002
    Инженер
    int GLed = A7; // Не правильно
    int GLed = 7; //Правильно так, тогда во всех командах analogRead ( GLed ); будет читаться аналоговый вход А7

    Если нужно использовать эту ногу как ЦИФРОВУЮ нужно указать:
    int GLed = 90; // Эта нога в Ардуино Мега назначится как цифровой вход/выход D90 (она же А7)
    digitalWrite ( GLed, 1 ); // Будет работать как цифровой ВЫХОД.

    В Ардуине NANO так сделать нельзя. А6 и А7 могут быть только аналоговыми входами. Нужно взять картинку с распиновкой вашей платы и внимательно посмотреть какие есть варианты для назначения ног в платформе Ардуино.
    Можно конечно лезть в настройки портов и управлять ногами через команды ассемблера но я думаю что на этапе освоения платформы такой подход будет излишним.
    Ответ написан
    2 комментария
  • Будет ли скомпилированный код C++ работать на всех архитектурах процессора?

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

    Более того, например, если у вас приложение х64 и вы используете какую-то специфическую фичу процессора, которая есть только в определенных моделях процессора, то приложение будет корректно работать только на процессорах поддерживающих эту фичу. Если нужно, в приложении можно предусмотреть проверку процессора и если фича не поддерживается использовать какую-то универсальную реализацию.
    Ответ написан
    Комментировать
  • Как сменить тип литералов в С++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    f(std::string("abc"))

    Каких-то специальных встроенных в язык средств созадавать const std::string нету.
    Ответ написан
    2 комментария
  • Как сменить тип литералов в С++?

    @nagayev Автор вопроса
    Ответ из комментариев:
    Начиная с С++14 можно сделать так:
    "abc"s
    Так же можно определять пользовательские литералы
    Ответ написан
    Комментировать
  • Почему программа на Си молчит?

    @kaka888
    C, C++, Qt, Python Flask, MySQL, Lua
    Вместо printf("%d\n", atoi(a[i])); напиши printf("%c\n", a[i]);.
    Ответ написан
    Комментировать
  • Почему программа на Си молчит?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что atoi(const char * string)
    Ответ написан
    Комментировать
  • Что за деталь на фото?

    @pfg21
    ex-турист
    кондер стоит как защита от помех коллектора двигателя.
    там выделяется куча помех для которых провод становится передающей антеной.
    на второй картинке синфазный дроссель с бифилярной намоткой. тоже для подавления помех.

    все прекрасно будет работать без них, только куча помех в эфире.
    Ответ написан
    2 комментария
  • Что за деталь на фото?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Керамический конденсатор, если не ошибаюсь на 22 нанофарад на 250 вольт. n - обозначение нанофарад, Z - допуск по величине или точность.
    https://go-radio.ru/marking-capacitor.html

    Доп. ответ - деталь с обмоткой называется дроссель.
    Ответ написан
    6 комментариев