Ответы пользователя по тегу Программирование
  • Есть ли игры, где основной процесс игры это написание кода?

    bogolt
    @bogolt
    the-game.ru - космическая стратегия, с возможностью создания скриптов на перле для оптимизации производства, полетов и в общем любых действий.
    Ответ написан
    Комментировать
  • Как понять суть программирования (подробнее в содержании)?

    bogolt
    @bogolt
    Смотреть и пробовать - разные вещи. Настолько разные, что часто смотреть как кто-то что-то делает скучно, а вот самому делать интересно. И наоборот.
    Не думаю что можно понять что-то об интересующем занятии не попробовав его.

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

    Если коротко - найти любой популярный курс по интересующей тематике ( сайты, игры, прикладные программы ), начать читать/смотреть и обязательно параллельно делать. Во всех курсах для начинающих обычно описывается какие программы нужно установить чтобы можно было у себя запустить рабочие примеры. Дальше станет ясно - если интересно пытаться что-то создавать управляя всесильной машиной, то занимайтесь.
    Ответ написан
    Комментировать
  • Как побороть свою лень?

    bogolt
    @bogolt
    А зачем? Все нормально, лет через десять оглянитесь назад - а у вас куча не сделанных ( или сделанных другими ) проектов, посмотренных фильмов, прочитанных книг. Так никуда и не съездили куда хотели.. молодость куда-то утекла, но зато поленились всласть. Сказка ведь, ага?
    Ответ написан
    1 комментарий
  • Как сделаить Ряд тейлора (через указатели)?

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

    bogolt
    @bogolt
    Они нужны для:
    • Реализации криптографических алгоритмов
    • Реализации любых других алгоритмов требующих работу с битами
    • Чтобы пользователи языка не изобретали велосипеды


    Понимаете, это ведь не особенность языка - это скорее особенность наших процессоров,принципов вычислений, ассемблера. Раз уж эти операции существуют, причем именно в том виде в каком к ним привыкли то логично предположить что многие программы и алгоритмы рассчитывают на их наличие в инструментарии разработчика. Представьте что вам пришлось бы портировать некий криптографический алгоритм использующий эти операторы на js в котором их не было бы. Допустим вы реализуете его умножая/деля на два, но затем обнаруживаете, что при умножении старший бит у вас исчезает, а должен становится самый младшим. Кроме того ваша реализация на js была бы много медленней чем встроенная в язык реализация.
    Ответ написан
    Комментировать
  • Какие перспективные технологии/направления для С++ программиста есть сейчас?

    bogolt
    @bogolt
    Си++ позволяет создавать отличные кроссплатформенные приложения. Программы с единым ( процентов на 95 ) кодом, которые работают на винде, линуксе и маке ( Qt, wxWidgets самые навороченные библиотеки ).
    Тоже самое касается игр - cocos2dx, sdl и вы можете разрабатывать игру на чистых плюсах с тем чтобы запускать ее на любой мобильной и десктопной платформе.
    Серверы: си++ применяется для написания высокопроизводительных серверов.

    Словом - си++ нужен, важен и вероятнее всего еще долго не уйдет со сцены.
    Из недостатков - большой порог вхождения, с того момента как вы научились на нем писать, до того момента когда ваши программы становятся безопасными в планете утечек и крэшей. Ну и плохой код на плюсах написать очень легко. Так что много хорошей литературы, несколько больших проектов и желательно хорошие коллеги-учителя.
    Ответ написан
    Комментировать
  • Как лучше организовать класс и его объекты?

    bogolt
    @bogolt
    Если у вас будет только лишь указатель на вершину дерева, то как вы дальше будете ходить по ветвям этого дерева - без указателей на них?
    По-моему для узла дерева нужно что-то в таком духе:
    template<class T>
    struct Node
    {
    Node* left, *right;
    T data;
    };
    Ответ написан
  • Как лучше с точки зрения стиля программирования прописывать включение файлов ?

    bogolt
    @bogolt
    Давайте разберемся.
    .h файлы нужны для того чтобы описать типы данных и функции которые могут использоваться из разных .c файлов. Если у вас есть самодостаточный .c файл - хедер файл вообще ему не нужен.
    Когда же вы в си файле описываете функцию int make_me_coffie(int coffeine_level) то для того чтобы ее можно было вызывать из других си файлов - вам нужно этим файлам сообщить о существовании такой функции. Для этого вы можете в каждом из этих си файлов добавить описание этой функции.
    Так например в kitchen.c вы можете написать
    int make_me_coffie(int );

    и дальше спокойно пользоваться этой функцией. Никаких инклюдов тут не вообще нужно. Всем понятно что тащить в каждый си файл кучу определений типов и функций банально неудобно, и может привести к ошибкам, поэтому придумали инклюды. Инклюд включает содержимое файла в то место где он стоит. То есть все те определения функций появятся в вашем файле перед его сборкой.

    Теперь к вашим вопросам. Включать header.h в теле header.c не обязательно ( так как обязательного вообще ничего нет ) - то логично и разумно. Если уж у вас есть один модуль header то скорее всего функции и типы данных описаны именно в header.h а значит header.c должен его включать.

    Включать в header.c если он уже включен в header.h совершенно не обязательно, так как наш header.c уже включает header.h который включает stdio.h - а значит все необходимые определения функций уже будут в нашем файле. Впрочем включить stdio.h можно, это ничему не повредит благодаря системе дефайнов, которые обычно добавляются в каждый хедер файл, чтобы предотвратить множественное его включение.
    Ответ написан
    Комментировать
  • Как создать GUI на чистом C?

    bogolt
    @bogolt
    На голом си не так уж много GUI библиотек. Пожалуй самая навороченная из кросс-платформенных, свободных это Gtk++.
    Ну если вам только под винду то можно конечно взять WinAPI, хотя имхо это самый проигрышный вариант.
    Ответ написан
    Комментировать
  • Как далеким от программирования основателям найти ведущего разработчика в стартап?

    bogolt
    @bogolt
    "Наличие успешно реализованных проектов" - очень интересный критерий. Но ведь вполне может быть так, что человек долго и упорно работал, а проектов реализованных нет. Или есть но показать их не может. А может были - но уже их не существует, умерли от старости. А вы такое ощущение что ищите стартапера, да еще и такого который уже что-то успешно реализовал, но такому и вы скорее всего будете не нужны.
    В мире современного софта программы могут устаревать еще до выхода на рынок, конторы разоряются и забрасывают почти реализованные проекты, проекты оказываются никому не нужны по выходу и тоже умирают. А еще есть корпоративный сектор - где успешно реализованный проект вроде бы есть, но пользуется им два человека, и увидеть его извне ну никак нельзя. Вот и получается что этим требованием вы можете срезать кучу подходящих кандидатов.
    Ответ написан
    2 комментария
  • Почему так происходит и где ошибка?

    bogolt
    @bogolt
    Так, теперь попробуйте улучшить ваш вопрос, так чтобы на него можно было ответить.
    1. Скриншот запущенного приложения это прекрасно, но непонятно зачем он нужен.
    2. Скриншот куска ошибок - ничего не понятно какие именно там ошибки. Разберитесь как из студии скопировать лог сборки и вытащите эти сообщения оттуда.
    3. После чтения из файла - проверьте значение переменной con и выведете его на экран, чтобы убедится что именно из файла читается не то число.
    Если там не то число - то проверьте тип этой переменной - может вы записали туда char "1" а читаете его уже как int или наоборот.
    Ответ написан
  • Как сделать или где заказать сервер для приложения?

    bogolt
    @bogolt
    Возможно сделать на Parse
    Ответ написан
    Комментировать
  • Какой учебник для изучения С++ с нуля в данный момент актуален ?

    bogolt
    @bogolt
    Лучше все же начать с чистого Си. Почти все книги по Си++ подразумевают что вы уже знакомы с языком Си, поэтому множество базовых, совпадающих с си вещей (вроде циклов, условных операторов и тд ) в учебниках по плюсам не объясняются.
    Да и вообще - разобраться на базовом уровне с голым Си куда проще чем сделать тоже самое с плюсами. А вот после этого вполне можно открывать любой учебник по си++ ( Рекомендую Брюса Эккеля, хотя сейчас в связи с выходом нового стандартна он уже немного устарел, впрочем не думаю что уже есть хорошие учебники с учетом этого самого нового стандарта ).
    Ответ написан
  • Как добиться нужного fps?

    bogolt
    @bogolt
    Если хотите понизить фпс ( я так понял по вопросу что хотите вы именно этого ), то после вычислений времени текущего цикла, добавляйте sleep() на недостающее количество миллисекунд.
    Например вам нужно чтобы 1 цикл выполнялся за 30 мс, а он выполнлился за 20, значит нужно поспать еще 10 до выхода из цикла.
    Ответ написан
    3 комментария
  • Где найти интересные задачи по с++ разного уровня?

    bogolt
    @bogolt
    Не знаю что такое "озов" похоже на город какой-то, но тогда неясно отчего с маленькой буквы. Говорят в древности на Руси алфавит ( ну или буквица ) начинался с буквы Аз, откуда вероятно и пошли азы...

    По сути вопроса - любая программа длиннее тысячи строк будет представлять собой вполне себе задачу среднего уровня. Поставьте себе задачу и реализуйте ее на си++. Например напишите свой http/ftp сервер или клиент. Создайте простую игру, или удобное приложение.

    Можно конечно искать задачи где нужно "с помощью указателей" сделать что-либо, или "написать иерархию классов с виртуальными функциями" но имхо это полная ерунда. Она может помочь разве что закрепить синтаксис языка, но не дает понимания того зачем конкретная фича языка нужна.
    А вот создание собственной объемной программы - такое понимание дает в полной мере. Когда вы напишите 20й класс похожий на остальные, то зададитесь вопросом как это можно сделать проще, перечитаете учебник языка и поймете зачем нужны например шаблоны или виртуальные функции.
    Если до написания программы ( а лучше во время ) вы будете штудировать учебник языка - будет совсем хорошо.
    Ответ написан
    Комментировать
  • Удобно ли будет читать техническую литературу на PocketBook 515?

    bogolt
    @bogolt
    Для себя решил что e-ink читалка хороша для последовательного, спокойного чтения - например художественной литературы. Если же в книге есть графики, листинги кода, схемы или же вам нужно постоянно пролистывать ее туда-сюда - электронные чернила не удобны. Скорость работы, удобство управления начинают тут играть важную роль, и как следствие проще пересесть за комп или взять обычный (ios/android) планшет.
    Эксперименты ставил на PocketBook 902.
    Ответ написан
    Комментировать
  • Какой язык программирования/направление выбрать? Смена профессии

    bogolt
    @bogolt
    > Стоит ли изучать php/js/ruby/python или лучше java/c?
    Определитесь со сферой ваших интересов, и под нее уже выбирайте языки. Работу можно найти имхо под любой язык/технологию, поэтому в ваших интересах чтобы этот язык/технология наилучшим образом удовлетворяла вашим личным предпочтениям. Это в первую очередь скажется на эффективности вашей работы, да и больше положительных ощущений никому не мешали.
    Ответ написан
    5 комментариев
  • Java vs C++. Что полезнее?

    bogolt
    @bogolt
    Удивляюсь почему в сравнении Java vs C++ многие упоминают, что Java кросс-плафторменна. Си++ тоже кросс-платформенный ЯП. Программа написанная на нем может быть скомпилирована практически под любой платформой. Да, программу на си++ нельзя перенести на уровне бинарников, но часто ли вы видели универсальные бинарники?
    Для Си++ есть множество очень полезных библиотек позволяющих писать красивый и быстрый GUI ( единственная известная мне хорошая GUI программа написанная на Джаве - Eclipse ). Большинство же десктопных приложений пишется именно на плюсах.
    В новом стандарте появилась нативная многопоточность ( впрочем раньше никто не мешал использовать одну из множества кросс-платформенных библиотек для достижения тех же целей ).

    Из основных недостатков си++ скажу что первые 2 года работы с этим языком программист больше вредит, нежели помогает. Это учитывая что он неплохо уже знает синтаксис и уже пишет на нем какие-то программы. Огромное количество скрытых ям, граблей, заряженный ружей - заботливо разложены создателями нескольких версий стандартов, в безумной мечте об обратной совместимости языка ( что конечно очень круто ).
    Ответ написан
    7 комментариев
  • Что необходимо знать, чтобы создать игру с 2D?

    bogolt
    @bogolt
    Игра довольно сложная задача, если не делать что-то совсем простое, вроде тетриса, впрочем даже тут для новичков встретится множество подводных камней. Для разработки игры на Си++ можно использовать cocos2dx как вам уже советовали. Если хотите писать на голом си - можно воспользоваться библиотекой SDL. Она более низкоуровневая как кокос, но для простых вещей тоже подойдет.
    Однако для создания игры вовсе не обязательно брать сразу же игровую библиотеку - игру можно вполне написать на той же Qt и получить сразу опыт разработки как приложений так и игр ( если вы таки выберете игру ).
    Преимущество Qt в ее востребованности. Кроме того это отличная библиотека с огромным количеством примеров и отличной документаций. Вам, как новичку я бы посоветовал начать именно с нее, а затем уже решать что именно вы хотите написать.
    Ответ написан
  • Изучение C++. Как сдвинуться с мертвой точки?

    bogolt
    @bogolt
    Не переживайте. Переход от теории к практике это всегда непросто. Для написания первой программы, как бы внимательно вы не изучали теорию, вам придется много раз обращаться к справочникам или к гуглу. Этот этап нужно просто пройти. Ничего, что написание первого кода занимает,как вам может казаться бесконечность. Главное двигаться вперед, и понимать ( хотя бы ключевые моменты ) того что вы делаете.

    Кроме того можно попробовать начать с модификации примеров рабочего кода. Берите код из туториалов по интересным вам темам ( по тому же сетевому программированию огромное количество примеров как клиентов так и серверов ).

    Тут уже написали про ваш пример - расскажите с чем проблема в вашем коде? Быть может стоит его разбить на несколько частей, и убедится что каждая из них работает как задумывалось.
    Ответ написан
    1 комментарий