Задать вопрос
  • Не могу решить задачу на C?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Если проблема только с тем, что у вас циклов слишком много, то можно 3 последних объединить в 1.

    Вы при каком условии должны числа дописывать в ответ? Пока есть число хоть в одном из двух массивов.
    Вот и получается:
    while (i < M || j < N)
    Но внутри уже чуть побольше случаев. Можно просто ваши же условия объединить. Если выполняется условие первого цикла - делаете тело первого цикла. Иначе, проверяете условие второго цикла, делаете его, иначе - тело третьего цикла.

    Но можно знатно сократить код, если просто расписать все варианты, когда вы берете число из A. В противном случае, очевидно, берется число из B. Число из A берется, если оно есть и оно "лучше" числа из B - или B вообще нет, или A < B:
    if (i < M && (j == N || A[i] < B[j])) {
      C[k++] = A[i++];
    } else {
      C[k++] = B[j++];
    }
    Ответ написан
    4 комментария
  • Чат-бот без программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Такое возможно. К сожалению когда конструктор уже создан и опубликован - этот сегмент обычно заполнен. И вы запрыгиваете в последний вагон. Кроме того конструктор предлагает ограниченный сет возможностей. Ну... меньше чем в языке программирования. И если заказчик попросит вас улучшить что-то или добавить фичу - вы оказываетесь полностью в заложниках от API конструктора.
    Ответ написан
    Комментировать
  • Чат-бот без программирования?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Начинайте брать заказы и зарабатывать!
    Ответ написан
    Комментировать
  • Чат-бот без программирования?

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

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Сначала о самых главных навыках ЛЮБОГО программиста:

    1. Непрерывно улучшать чтение\письмо по-английски!
    2. Уметь искать ответы в google.com или др. поисковую технологию
    3. Всегда, всегда задаваться вопросом: "А может кто-то уже решил мою проблему?" и пользоваться навыком из п.2.

    По сути вопроса:
    1. Если опыта программирования нет, то я бы рекомендовал прочитать "C++ за 21 день" от Дж. Либерти
    2. Если опыт есть, то читать книгу Лафоре про Объектно ориентированное программирование на C++
    3. На этой стадии опыт написания кода уже есть, поэтому Стив Макконел с его Совершенным кодом
    4. После этого читаются правила от Скотта Майерса, но через призму скептицизма. На этом этапе уже должен быть достаточно опыта чтобы понять что вам подходит, а что нет
    5. Чтение Рефакторинга от Фаулера
    6. Только на этоп этапе читать Страуструпа. Читать вдумчиво. Читать так, чтобы каждое его слово и каждая его мысль была понята, прочувтвована

    Практикуясь той или иной фиче языка, идиоме рекомендую на реализациях алгоритмов сортировок, структур данных и всем что связано с алгоритмами.

    Да, и читать надо по-умному! Для программиста чтение проф.литературы означает "Непрерывно вбивать код" и пытаться применить хотя бы в каком-нибудь 'hello world'-е изучаемой технологии или языке или идиоме. Только постоянная долбежка позволяет вбить в память пальцев нужные и правильные вещи на уровне инстинктов, которые экономят время при создании больших программных проектов.

    UPD:
    Один из нюансов чтения проф.литературы заключается в том, что почти никогда нет возможности прочитать с первого раза! Будьте терпеливы, т.к. наверняка Вам придется перечитывать как минимум абзац, не редкостью будет перечитывание 2-3 страниц, а иногда и целой главы с начала. Процесс проф.литературы - итеративный. С первого раза формируется "общее" представление с "дырыми" по прочитанному материалу. Повторное чтение закрывает часть этих "дыр". А паралельная практика при этом дает еще ясное понимание того как надо и как не надо и где именно у Вас не получается.
    Ответ написан
    3 комментария