• В чем отличия C++ и C# ?

    @Perzh
    Как новичек новичку скажу по поводу 5 пункта: легче начать с C#, но правильней C++ так как:
    - C++ мультипарадигменный, а C# - нет (чисто ООП)
    - C# решает проблемы, которые в C++ нужно решать самому.
    - C# неявно использует механизмы, которые используются в C++ явно (например, указатели).

    Таким образом, практика C++ покажет почему C# устроен так, а не иначе.

    P.S.: лучше вообще изучать тот язык, которому тебя сможет обучить кто то знающий =)
    Ответ написан
    2 комментария
  • В чем отличия C++ и C# ?

    @lookid
    Вы немного не понимаете масштабы. Язык программирования это как иностранный язык. Программировать под, это как писать статьи в журнале про что-либо. Фактически отличие в С++ и C#, как между английским и немецким. Писать на них под андроид, это как писать статьи по машиностроению или строительству на английском и немецком. Перейти всегда можно, область сменить всегда можно. Но, что бы стать хорошим кодером в чем-то нужно потратить время на изучение предметной области и языка. Вы можете писать про местные соревнования по гонкам и с помощью переводчика, но будет не то. Так что готовьтесь, что придется посидеть и поизучать, а не сразу убийц энгрибердс писать.
    Ответ написан
    2 комментария
  • Какую роль играют float и double в скобках?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Такая запись имени типа в скобках в выражении - это явное приведение типа. Тут вы указываете компилятору, что выражение надо преобразовать вот к такому вот типу (флоат, в данном случае).

    float нужен вам в начале, потому что вещественные константы имеют тип double. Поэтому у eps/2.0 и 1.0 в первом цикле имеют тип double, все вычесляется в double. Преобразовав одно из выражений в float вы получаете то, что вам надо. Без этого все вычисления идут в double и ответ находится не тот. На самом деле там float при сравнении все-равно расширяется до double но на результат сравнения это не влияет в данном случае.

    Еще, вместо явного приведения типов, можно поставить f после вещественных констант, чтобы указать компилятору, что это float:
    while (1 + eps/2.0f != 1.0f){

    Тогда вычисления будут во float и ответ будет правильный.

    Во втором цикле double вам не нужен. Ведь вычисления итак идут в этом типе. Да и написано у вас там с опечаткой, вы к типу double приводите все выражение со сравнением. т.е. вы булево значение преобразуете в дабл. Потом оно назад в булево преобразуется при проверке условия циклом. В итоге это бесполезное действие.
    Ответ написан
    Комментировать
  • Какие есть СИ-подобные языки?

    tendkuh
    @tendkuh
    PHP sucks, it's very important to remember, folks
    Си учить проще всего, потому что в нём вообще ничего нет, в отличие от других языков.
    Он даже выводить ничего не может по умолчанию, для этого нужно подключать библиотеку.
    И это очень и очень хорошо, потому что не каждая программа обязана чтото выводить.
    Си лучший язык. После него действительно легко учить любой другой язык программирования.
    А какой зависит от задачи, какой следующий язык учить после Си, зависит только от работы.
    Они все пишутся Сишниками сегодня, поэтому вы в любом будете себя чувствовать уверенно.
    Но просто язык учить мало, надо ещё учить платформу или движок под которые пишите
    - иначе придётся постоянно рефакторить.
    Ответ написан
    Комментировать