Задать вопрос
  • Как улучшить код на Си(сделать "красивше")?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    char num1[N];
      char num2[N];
      char num3[N];
      char *nums[3] = {num1,num2,num3};

    А чего не nums[3][N]?

    while(c=fgetc(in))

    Когда ты думаешь условие while перестанет выполняться?

    if ( c == '\n' || c == ' ' )

    Я бы добавил проверку на конец файла: if ( c == '\n' || c == ' ' || c == EOF)

    (*(nums+i))[j]

    А чего не nums[i][j]?

    int length(char s[]){

    Есть такая готовая функция strnlen из string.h

    maxNum не обрабатывает случай когда аргументы равны.
    Ответ написан
    8 комментариев
  • Makefile не могу понять в чем ошибка убираю условие переходит на другое?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В языке make нет конструкции if .... Есть всякие другие. Вам, похоже, подойдёт ifdef ...

    if ... есть в языке automake, но чтобы получить рабочий Makefile, исходный Makefile.am нужно прогнать через automake, а получившийся Makefile.in нужно прогнать через configure.
    Ответ написан
    Комментировать
  • Как соединить куски предложений в одну строку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    sed ':x {N ; s/\([^.!?]\)\n/\1 / ; /\n/!bx ; P ; D}' -i file.txt
    Ответ написан
    Комментировать
  • Что такое производная?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Изучил много литературы на эту тему, попытался разобраться досконально с этой производной, знаю определения формулы, понимаю геометрический и физический смысл производной.

    Не обманывай себя: если бы ты понимал геометрический смысл производной, у тебя не возникло бы дальнейших вопросов.

    Не могли бы вы объяснить это простыми словами

    Давай с элементарного геометрического смысла и начнём: пусть у тебя есть график дифференцируемой функции y=f(x), это такая непрерывная линия. А ты -- очень маленький и стоишь на этой линии. y показывает на север, x -- на восток, а линия, например, уходит на северо-восток. Ты настолько маленький, что тебе кажется, что линия вблизи тебя -- прямая. Производная f'(x) говорит тебе, насколько линия наклонена к направлению на восток в точке x. Т.е. если f'(x) = 2 в точке x где ты стоишь, то если ты пройдёшь 1 шаг на восток, нужно будет пройти 2 шага на север, чтобы вернуться на линию.

    Все эти "бесконечно малые" можно интерпретировать как "настолько маленькие, чтобы поведение функции заметно не менялось", т.е. что функция "почти прямая" в этом масштабе, и при дальнейшем уменьшении ничего не меняется.
    Ответ написан
    4 комментария
  • Как активировать ctrl+r в истории zsh, если я использую сочетание клавиш для vim?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Решил использовать сочетание клавиш для vim в терминале bash. ... Так вот, сочетание клавиш та работает, а вот ctrl+r для истории - нет.

    bind -P покажет все активные комбинации клавиш. Что выводит bind -P | grep 'C-r'? Что выводит bind -P | grep reverse-search-history?
    Ответ написан
  • Правильно ли я понимаю работу чипа MAX4896?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Все минусы питающие управляемые устройства соединить с PGND, управляемые устройства подключить одной стороной к плюсам их источников и другой стороной -- к OUT[0-7].

    Можно ли на PGND соеденить питание +, а на OUT пинах подключить устройства, которые должны будут получать питание или нет?

    Нет, потому что ток в OUT[0-7] может только втекать.
    Ответ написан
  • Что именно происходит в Ардуино при попытке записи слишком большого числа?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Откуда диапазон значений, тоже понятно. Но что конкретно происходит при попытке выйти за этот диапазон?
    Почему при вычислении степеней двойки в какой-то момент выводится минимальное значение, -32768, а затем - одни нули?

    Точно понятно?

    2^0 == 0b0000000_00000001 == 1 (16 младших разрядов)
    ...
    2^14 == 0b01000000_00000000 == 16384 (16 младших разрядов)
    ...
    2^15 - 1 == 0b01111111_11111111 == 32767 (16 младших разрядов)
    2^15 == 0b100000_00000000 == -32768 (16 младших разрядов)
    2^15 + 1 == 0b100000_00000001 == -32767 (16 младших разрядов)
    ...
    2^16 - 1 == 0b11111111_11111111 == -1 (16 младших разрядов)
    2^16 == 0b1_00000000_00000000 == 0 (16 младших разрядов)
    2^16 + 1 == 0b1_00000000_00000001 == 1 (16 младших разрядов)

    Что происходит при других операциях со слишком большими числами?

    Неопределённое поведение, если тип значения знаковый. Компилятор может наоптимизировать что захочет.
    Если тип значения беззнаковый -- результат обрезается по ширине типа данных результата.
    Ответ написан
    Комментировать
  • Как подключить header без ошибки?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему компилятор g++ пишет, что не определены конструкторы с деструкторами и метод?

    g++ main.cpp neuron.cpp layer.cpp -o test
    Ответ написан
    4 комментария
  • Как исправить undefined reference to существующей функции?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert

    g++ ... -I/usr/local/include/RHVoice ...
    main.cpp:(.text+0x17): undefined reference to `RHVoice_new_tts_engine'
    main.cpp:(.text+0x27): undefined reference to `RHVoice_get_voices'

    Судя по пути до каталога с заголовками нужно добавить что-то такое: -L/usr/local/lib -lRHVoice. Чтобы узнать точно, нужно посмотреть, куда установилась и как называется библиотека (*.a или *.so) RHVoice.
    Ответ написан
    1 комментарий
  • Один двумерный или два одномерных массива?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что выбрать?

    То, в чём потом не запутаешься. Потому что в массивах ты уже запутался.
    Я бы предложил один массив структур с полями для имени, фамилии и отчества.

    Что лучше выбрать с точки зрения использования памяти и производительности?

    Лучше выбрать то, в чём потом не запутаешься. Если будет тормозить -- прогнать через профилировщик и смотреть на результаты профилирования.
    Ответ написан
    Комментировать
  • Не находит std::threads. Что не так?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Не находит std::threads. Что не так?

    Кто не находит? Какое сообщение об ошибке?
    Я вижу вот что:
    $ cat > thr.cpp
    #include <thread>
    using namespace std;
    void doIt(){
      //do nothing
    }
    int main(){
      thread t(doIt);
      t.detach();
      return 0;
    }
    $ g++ -std=c++11 thr.cpp -o thr
    /tmp/ccVyziLM.o: In function `std::thread::thread<void (&)()>(void (&)())':
    thr.cpp:(.text._ZNSt6threadC2IRFvvEJEEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEEEOT_DpOT0_]+0x20): undefined reference to `pthread_create'
    collect2: error: ld returned 1 exit status

    Лечится ключом -pthread:
    $ g++ -std=c++11 thr.cpp -pthread -o thr
    Ответ написан
    1 комментарий
  • Как убрать флаг g в поиске vim?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Для замены все вхождений используется флаг g

    Для замены всех вхождений в одной строке.

    % s/some/text/

    % как раз говорит применять ко всем строкам.
    Ответ написан
  • Почему лог journald в бинарном виде?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Это связано с тем, что раньше программы писали для людей, а люди читали вывод программ. А теперь программы пишут для других программ, а люди больше не нужны.
    Ответ написан
    1 комментарий
  • Как организовать динамическое использование for?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    #!/bin/bash
    arr=([1]=1 [2]=2 3 [5]=4 5);
    eval 'for i in {0..'${#arr[*]}'..2};do
     printf "[$i]:${arr[$i]}\n";
    done'

    Такой brace expansion работает только с литералами. Приведённое решение генерирует тело цикла с литералами и засовывает его в eval.
    Ответ написан
    Комментировать
  • Как победить detached HEAD state?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Я (Петя ) пробовал так:
    1. Удалил свой проект локально усебя на компе.
    2. Клонировал проект Васи с гитхаба себе на комп.
    3. git checkout хэш_8_го_коммита_Васи

    Вот в этот момент случился detached HEAD.

    5. git remote set-url origin url_на_репозиторий_Пети.git

    Не нужно, т.к. шаг 2 уже это сделал.

    Как сделать?

    Зависит от того, как вы решите поступить с историей. Есть несколько вариантов:
    - выкинуть два ненужных коммита совсем и переписать историю начная с этого места. Для этого на шаге 3 нужно было сделать git reset --hard хэш_8_го_коммита_Васи, а при пуше в репозиторий пушить с ключом -f

    - откатить два ненужных коммита, оставив их в истории. Для этого на шаге 3 нужно было сделать
    git revert хэш_10_го_коммита; git revert хэш_9_го_коммита


    - родить новую ветку от 8-го коммита и разрабатывать дальше в ней. Для этого на шаге 3 нужно было сделать
    git checkout хэш_8_го_коммита_Васи -b имя_новой_ветки


    Ну и дальше в IDEA при попытке: VCS --> Commit... --> Commit and push... получаю сообщение "The Git repository C:\project2018wm is in the detached HEAD state"


    В вашем текущем состоянии я бы сделал следующее:
    git stash
    git checkout master # или имя ветки в которой были 8 хороших коммитов
    действия из выбранного варианта из перечисленных выше
    git stash pop
    Ответ написан
    Комментировать
  • Как пробросить несколько ответов в консоль для скрипта?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    cat <<EOF | java -jar setup.jar
    yes
    no
    maybe
    EOF
    Ответ написан
    1 комментарий
  • C - Как сделать отдельную функцию под ввод массива с клавиатуры и функцию под вывод?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    составить две функции, вызывающиеся в main - функцию ввод массива определенной длины n, и функцию вывод массива в консоль

    1) понять, что эти функции будут принимать и что возвращать
    2) перенести код ввода в первую функцию
    3) написать вторую функцию
    Ответ написан
    Комментировать
  • Почему приходит сообщение run-parts: /etc/cron.daily/mlocate exited with return code 1?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как победить ошибку?

    Снести mlocate к чёртовой матери, потому что им никто не пользуется. apt-get remove mlocate
    Ответ написан
    Комментировать
  • Linux NASM чтение и вывод содержимого файла?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    какая-то беда нету вывода никакого

    запусти свою программу под strace: strace -i -v test и увидишь, какие системные вызовы и с какими аргументами она делает с каких адресов.
    Ответ написан
    1 комментарий
  • Забивается буфер клавиатуры как быть?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    игра где обрабатываются нажатия только если они есть...
    из за задержки буффер клавиатуры успевает забиться

    Что мешает вставить код опроса и чтения клавиатуры внутрь цикла задержки?
    Ответ написан
    2 комментария