• Какой Linux дистрибутив выбрать для ноутбука Acer Aspire V3-771?

    tsarevfs
    @tsarevfs
    C++ developer
    Можете обратить внимание на Mint. Близкий родственник Ubuntu с более традиционным интерфейсом.
    Ответ написан
    Комментировать
  • Есть конкретная цель - нужны советы по ее воплощению

    tsarevfs
    @tsarevfs
    C++ developer
    Задача не сказать что бы сложная, но начать лучше с теоретического минимума. В противном случае даже в случае успешного решения задачи в голове останется каша. Начните например с курса codecademy или хорошей книги по языку.
    Ответ написан
  • Можно ли создавать в рантайме объект в C++?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    можно попробовать как-нибудь так:

    typedef boost::variant<int, string, bool> field_t;
    typedef std::map<string, field> settings_t;
    struct A
    {
       A(file)
       : settings_(file.parse())
       {}
    private:
       settings_t settings_;
       int my_method()
       {
          int a = boost::get<int>(settings_["a"]);
          int b = boost::get<int>(settings_["b"]);
          return a + b;
       }
    }
    Ответ написан
    Комментировать
  • Есть ли списки базовых функций в Python?

    tsarevfs
    @tsarevfs
    C++ developer
    В питоне есть замечательные функции help и dir, дающие справку из консоли. А множество печатных шпаргалок можно найти по слову cheatsheet.
    Ответ написан
    Комментировать
  • Какие библиотеки изучить, чтобы создать 2D игру?

    tsarevfs
    @tsarevfs
    C++ developer
    Pygame вполне подходит для этой задачи. Я как раз пишу небольшую карточную игру с помощью нее. Еще я использую numpy.array для работы с координатами, но не думаю, что это хороший вариант. В принципе, больше ничего и не потребуется. Здесь описано портирование под Android.
    Главное выработайте четкие дедлайны и не ставьте сразу сложных задач.
    Поддерживайте код в читаемом виде. Плохо если через месяц никто уже не будет понимать как это все работает. Возьмите на себя разработку архитектуры и основных интерфейсов.
    Ответ написан
    3 комментария
  • Какой язык программирования начать изучать филологу в 30 лет, если в школе у него было 3 по алгебре, 4 по геометрии, а по остальным предметам 5?

    tsarevfs
    @tsarevfs
    C++ developer
    python.
    "+" простой в обучении, логичный, выразительный;
    много библиотек, в том числе, возможно, интересные вам как филологу http://nlpub.ru/
    "-" может работать в сотни раз медленнее по сравнению с C++ (частично решается использованием готовых библиотек для ускорения трудоемких операций)
    Ответ написан
    Комментировать
  • Как создать консольный терминал на C++?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    @grigorkh
    не используйте reinterpret_cast без крайней необходимости.

    предлагаю создать интерфейс и реализовать для каждой команды:
    class command_t
    {
    public:
    	virtual void apply(std::vector< std::string > const &args) = 0;
    	virtual std::string get_help() = 0;
    };
    
    class add_command_t : command_t
    {
    public:
    	void apply(std::vector< std::string > const &args)
    	{
    		int ans = atoi(args[1].c_str()) + atoi(args[2].c_str());
    		std::cout << ans;
    	}
    
    	std::string get_help()
    	{
    		return "add arg1 arg2\n";
    	}
    };
    
    //аналогично mul_command и.т.д


    Затем запихнуть экземпляры вместо функций в map.
    typedef std::map< std::wstring, command_t * > command_map_t;
    typedef command_map_t::iterator command_iter;
    
    //////////////////////////////////////////
    
    command_map_t commands;
    commands['add'] = new add_command_t();
    //...
    
    while (true)
    {
    	std::string x;
    	std::getline(cin, x);
    	std::vector< std::string > words = split(x); //напиши split сам
    
    	command_iter iter = commands.find(words[0]); 
    	if (iter != commands.end()) //если такая команда есть
    	{
    		iter->apply(words);
    	}
    	else
    	{
    		std::cout << "Wrong command!\n";
    	}
    }


    Так ты сможешь реализовать команды не только с 2 int-овыми параметрами. В конструктор help_command можно передать указатель на commands и в зависимости от аргументов выдавать справку по всем командам, или по конкретной указанной.
    Не забудь почистить память в конце.
    Ответ написан
    Комментировать
  • Как можно систематизировать процесс разработки приложения?

    tsarevfs
    @tsarevfs
    C++ developer
    По возможности декомпозируйте задачу на части, так чтобы минимизировать связи между ними. Начните работу с написания интерфейсов основных классов. Рисовать блок-схемы кажется мне делом неблагодарным. Они не более наглядны и гораздо более трудоемки чем хороший псевдокод. Иногда удобно рисовать иерархию классов, их взаимодействие.
    Ответ написан
    Комментировать
  • Лабораторные по программированию

    tsarevfs
    @tsarevfs
    C++ developer
    Во многих адекватных фирмах программист избавлен от лишних формальностей, при условии, что он хорошо пишет код. Но все зависит от специальности. ТЗ, согласование спецификаций ложится на плечи product manager.
    Ответ написан
    Комментировать
  • Visual Studio C++, ошибка: "Данный проект устарел"?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Инструкция с картинками. Проект устарел - имеется в виду, что код изменился с момента последней компиляции. Далее вы начинаете компиляцию, из за ошибок в вашем коде она прерывается. Вам предлагают запустить то что было скомпилированно в прошлый раз(а в вашем случае компиляция первая => запускать нечего).
    Ошибки которые привели к прекращению компиляции показаны в окне вывода. Если из вывода не понятно в чем ошибка, гугление по ее номеру часто помогает понять что к чему.
    Ответ написан
    1 комментарий
  • Как создать консольный терминал на C++?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Ладно, @grigorkh, ты меня рассмешил.
    Сначала нужно научиться писать хоть что-то работающее. Вот
    так вы можете создать свою первую программу.
    Далее возьмите книжку по C++, Эккель подойдет. Читайте, напишите хотя бы 5-10 упражнений на строки, ввод-вывод, циклы, if.
    Теперь вы готовы приступить к выполнению вашего задания.
    В цикле (а этому моменту вы уже знаете что это такое) вы считываете команды по одной до тех пор пока не введена команда exit.
    Пусть каждая команда это строка, первое слово в которой - имя действия, остальные - аргументы. Научитесь разбивать строчку на слова. Дальше разбираете какая команда введена и формируете требуемый ответ. В итоге получится что-то такое:
    #include <iostream>
    #include <string>
    
    main ()
    {
    	while (true) 
    	{
    		std::string command;
    		std::getline (std::cin, command); 
    
    		if (command = "exit")
    			break;
    
    		std::vector<std::string> words = разбить_на_слова(command)
    
    		if (words[0] == "help")
    		{
    			std::cout << "plus arg1 arg2\nminus arg1 arg2"
    		}
    
    		if (words[0] == "plus")
    		{
    			std::cout << строка_в_число(words[1]) + строка_в_число(words[2]);
    		}
    
    		// дальше аналогично(или не очень) разобрать остальные команды
    	}
    
      return 0;
    }


    У такого кода будет много недостатков, например новые команды не очень удобно добавлять. Да и 2 + 2 * 2 ему не понять. Но до этого еще очень далеко.

    И научитесь пользоваться гуглом. Там есть ответы на 99.99% вопросов которые у вас возникнут в ближайшее несколько месяцев изучения программирования.
    Ответ написан
    2 комментария
  • Где еще кроме веба используется Python?

    tsarevfs
    @tsarevfs
    C++ developer
    +Удобно скрипты в game dev писать. Хорошо работать в связке с C++ (boost::python)
    Ответ написан
    Комментировать