Задать вопрос
  • Как живётся программисту без дискретной видеокарты?

    manul
    @manul
    Жил... Было плохо... Но жить можно...
    Ответ написан
    Комментировать
  • Как получить переменную из другого метода одного класса?

    manul
    @manul
    Переменные объявленные в методе - недоступны нигде кроме этого метода.
    Что бы переменная стала доступна другим методам ее нужно объявить в классе, что и сделал Atllantis выше.
    Такая переменная называется полем класса.

    А вообще, держите какую нибудь книжку, или справочник по Java под рукой, очень помогает.
    Я, когда писал свои первые проекты на плюсах, под рукой держал "C++ для чайников" (да, все было так плохо), для Java посоветую вам "Полный справочник по Java" Герберта Шилдта.
    Ответ написан
    1 комментарий
  • Как упростить (оптимизировать) код?

    manul
    @manul
    Для начала избавьтесь от копипасты
    private Thread GetThreadData(ThreadStart startData)
    {
        Thread result = new Thread(startData);
        result.IsBackground = true;
        result.Start();
        return result;
    }
    Ответ написан
    Комментировать
  • Как разделить строку по скобкам, внутри которых еще есть скобки?

    manul
    @manul
    Задайте переменную - счетчик открытых скобок. Пройдитесь циклом по строке.
    Ответ написан
    Комментировать
  • Олимпиадное программирование с чего начать?

    manul
    @manul
    Просто пиши на C++ что нибудь интересное для себя, попутно читая про непонятные для тебя вещи.
    Ответ написан
    Комментировать
  • Как работает C++/CLI?

    manul
    @manul
    C++/CLI - не C++.
    Соответственно там весь код managed.
    Даже указатели ^
    Ответ написан
  • C++ Разработчики под Windows - почему их становится все меньше?

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

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

    manul
    @manul
    Никак

    Знающий не говорит, говорящий не знает (Лао Цзы)


    Просто участвуй в олимпиадах. Пытайся. Снова и снова. И наконец, тебе должно по настоящему нравится решать олимпиадные задачки, иначе все твои усилия будут бесполезны.

    От себя скажу что решать олимпиады по программированию != Хорошо программировать

    Говорю как человек в оных регулярно участвующий.

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

    Не веришь? Посмотри любые решения олимпиадников - на codeforces.com например.
    Там по всем стандартам ад и ужас.

    Лучше потратить время на что то действительно полезное, например на свой проект, разработка которого только в радость.
    Ответ написан
    Комментировать
  • Почему не подключается библиотека DLL к проекту Visual Studio C++?

    manul
    @manul
    Итак, допустим у нас есть динамическая библиотека MyDLL.dll c следующим кодом
    #include <windows.h>
    
    int __declspec(dllexport) MyDLLSqr(const int n) {
        return n*n;
    }
    
    extern "C" bool __declspec(dllexport)
    DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
        return true;
    }


    И наш проект с MyDLL.dll и файлом main.cpp и следующим кодом:
    #include <iostream>
    
    extern "C" void __declspec(dllimport) MyDLLSqr (const int);
    
    int main() {
        std::cout<< MyDLLSqr(4); // 4
    }


    Вот так примерно всё работает.
    А как вы подключали DLL ?

    Скорее всего в отсутствующем файле DLL.h было что то вроде

    #pragma once
    
    #ifdef BUILD_DLL
        #define DLL_EXPORT __declspec(dllexport)
    #else
        #define DLL_EXPORT __declspec(dllimport)
    #endif
    
    extern "C" void DLL_EXPORT MyDLLSqr (const int);


    Для удобства использования объявленных в вашей DLL функций
    Ответ написан
    Комментировать
  • Лучший вариант проверки ввода на несколько условий в C++?

    manul
    @manul
    Знаете что плохо в вашем варианте?
    То, что несмотря на присутствие continue, вы оставляете эти ужасные else if.

    Можно попробовать так:
    int x;
    while (cin>>x) {
        if (x < 0) {
            cout<<"x должно быть положительным числом"<<endl;
            continue;
        }
        if ( !x ) {
            cout<<"x не должно равняться нулю"<<endl;
            continue;
        } 
        if (x == 5) {
            cout<<"x не должно равняться пяти"<<endl;
            continue;
        }
        break;
    }
    Ответ написан
    Комментировать
  • Возможна ли работа с двумя бинарными файлами одновременно в С++?

    manul
    @manul
    Не нужно использовать сишные либы вперемешку с STL.
    Я говорю про fopen и cin /cout .
    Ответ написан
    Комментировать
  • Как правильно видоизменить код?

    manul
    @manul
    std::string buffer;
    std::getline (std::cin, buffer); // Линия с консоли с пробелами и всем прочим
    Ответ написан
    Комментировать
  • Какой путь у новичка в Go?

    manul
    @manul
    Путь хомяка прост - грызть.
    Ответ написан
    Комментировать
  • Как считывать данные с текствого файла С++?

    manul
    @manul
    #include<iostream>
    #include<fstream>
    
    int main() {
        std::ifstream textFile ("MyFile.txt");
        std::string buffer;
        while ( std::getline( textFile, buffer ) ) {
            std::cout<< buffer <<std::endl;
        }
    }


    Самый нормальный способ - считывать по строке.
    Ответ написан
    Комментировать
  • Имеет ли смысл начинать с Си?

    manul
    @manul
    Имеет. Синтаксис C и C++ положен в основу всех Си подобных языков - а это C#, Java, тот же Go отчасти.
    Ответ написан
    Комментировать
  • Стоит ли заниматься поддержкой проектов на Delphi? Не тупиковый ли это вариант развития?

    manul
    @manul
    Опыт как сказали выше - однозначно дело полезное.
    Но опыт в чем? Если после этого вам подвернется хорошая вакансия на одном из активно используемых языков (например C++, C#, Java) - то вам будет немного неуютно от обилия инородно выглядящих кусков кода...
    И да, пока вы спокойно кодите на засохшем делфи, в этих языках постоянно появляются новые фичи, пишутся библиотеки, разрабатываются паттерны.
    Да, на делфи немало было написано, но сейчас он мягко говоря непопулярен.
    Ответ написан
    Комментировать
  • Что изучать C# или С++?

    manul
    @manul
    C# не то что бы легче, просто язык многое делает неявно за тебя, многие вещи сложны внутри, но простые для использования.
    C# усваивается легче, идет сразу с библиотеками почти на все случаи жизни.

    C++ вываливает всю сложность на пользователя, нужно самому разбираться.
    C++ гибче как его освоишь, но пока освоишь пройдет немало времени.

    Понимание C++ дает лучшее понимание как устроена та или иная фишка из C#.

    Вот пример "неявности" C#:
    struct StackWork {  
            public Int32 Value;
        }
    
       class HeapWork {
           public Int32 Value;
       }
       
       // ...
       StackWork sw1 = new StackWork();
       StackWork sw2 = sw1;
       sw2.Value = 475;
      
       Console.WriteLine( sw1.Value.ToString() ); // 0
       
       // ...
       HeapWork hw1 = new HeapWork();
       HeapWork hw2 = hw1;
       hw2.Value = 475;
    
       Console.WriteLine( hw1.Value.ToString() ); // 475


    То есть, область выделяемой под обьект памяти (куча или стек) зависит от типа, причем при одинаковом синтаксисе ( "new TypeName()" ).
    Конечно, это сделано для удобства, но в C# ты не можешь выбирать в какой области памяти разместить свой обьект!

    А вот пример на "страшных и неинтуитивных плюсах":
    struct MyWork {  
            int Value = 0;
        }
        
       //...
       // Явно, выделяем память в стеке
       MyWork sw1;
       MyWork sw2 = sw1;
       sw2.Value = 475;
       
       cout << sw1.Value; // Как и ожидалось, 0
       
       // Явно, выделяем память в куче
       MyWork * h1 = new MyWork;
       MyWork *h2 = h1;
       hw2 -> Value = 475;
       
       cout << hw1 -> Value; // Как и ожидалось, 475


    Интересные вещи есть и там и там.
    Для бизнеса конечно выгоднее C# (никаких заморочек, поддержка, библиотеки).
    Но все же C++ интереснее для саморазвития.
    Ответ написан
  • Верен ли такой подход к изучению программирования?

    manul
    @manul
    Копипаста - зло.
    Так и дезигнером стать не далеко - знай себе копипасти да формочки лепи.
    Лучше всего как уже сказали - понять чужой код и написать свой.
    Ответ написан
    Комментировать
  • Создание теста?

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

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