• Что делать, если программа не видит библиотеку iostream?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Понять, что C и C++ - это два разных языка, и либо использовать C++, либо не использовать iostream.
    Ответ написан
    Комментировать
  • Что стоит учить с или c++ или c#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Добрый вечер! Столкнулся с такой проблемой: Мне очень нравятся семейство языков Си, у меня есть выбор учить C++ либо C#, хочу разрабатывать ПО для ПК. Подумал начать с C++ и говорят что сначала поучить чистый СИ, а после переходить на C++, так что же из этого правильно? Надо ли учить Си? Или может лучше начать с C#, а дальше уже выучу C++?

    Тема сравнения С/C++/C# в публичном пространстве - опасная тема. Она обычно заканчивается
    топиком в 1000 страниц и великой войной всех против всех. Я видел много таких войн.
    Они ничем не заканчиваются. Специалисты остаются при своих мнениях. А зритель просто развлекается.

    Сам по себе выбор языка ставят только новички. Професиионалу безразличен язык (почти). Его может больше интересует отрасль, стек технологий, стандарты и протоколы. С моей точки зрения сегодня
    таким стандартом может быть выбор облака (AWS, Azure, GCP).

    Чистый СИ учить смысла нет. Учи сразу С++. Но даже его создатель Бьорн Страуструп считает что С++ это
    сложный язык и он настаивает чтобы новички не брались учить все фичи сразу. Исключение по языку
    СИ может быть в том случае, если ты собрался быть инженером по разработке микро-контроллеров
    и у тебя скорее всего будет только СИ как основной (на 80-90%) инструмент взаимодействия с таким железом. Выйти на мидловый или синьорный уровень в С++ очень тяжело. Тяжелее чем в других языках.
    Поэтому будь готов терпеть. Вот когда виски станут седые - тогда и будешь господин-синьор.

    C# - это очень сильно корпоративный стандарт от Microsoft. Никакой связи с С++ он не имеет. Он конечно
    внешне похож но это сходство обманчиво. Да изучать его тоже можно. Он учится легко. Существуют книги
    вроде ".... C# за 14 дней". Разработка бизнес-приложений на шарпах идет гораздо быстрее чем на С++
    например. И завалить систему в синий экран в этом языке гораздо труднее. В нем реализованы методы
    защиты памяти и нельзя грязно трюкачить с указателями как это любят в С или С++. Производительность
    шарпов в численных методах будет слабее чем в С++ но обычно бизнес не ставит таких задач и чаще
    надо будет писать веб-хендлеры или хендлеры MQ-систем. Кач уровней синьорити идет быстрее в шарпах.
    Ответ написан
    2 комментария
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Да не вопрос. Но нужна среда разработки для DOS. Borland C, Watcom C. Я предпочитал борланд, в нем есть прикольный отладчик.

    Написав программу, удивишься копеечности ее размеров :)
    Ответ написан
    Комментировать
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    Нужно компилировать под DOS, а ты скомпилировал под Windows.
    Каждая программа на Windows содержит в себе маленькую программу для DOS, которая выводит такое сообщение.

    Скорее всего - тебе понадобится компилятор и среда разработки примерно из тех же годов, что и DOS
    Ответ написан
    3 комментария
  • Как решить задачу на c?

    GavriKos
    @GavriKos
    Ну если выше ваша попытка перенести на си, то:
    if i+1<=x:

    это так не работает, условие должно быть в круглых скобках (if это оператор), двоеточие не нужно:
    if (i+1<=x)

    int a[0]*x;


    Вот это я вообще не понял и 99% что это не будет работать. Просто почитайте в гугле как в си инициализировать массив переменной длины.

    И да - в тегах c++, в вопросе c - вы определитесь

    P.S. Логику не проверял вообще, чисто синтаксис. Кстати в цикле тоже ошибка - и тоже просто советую загуглить цикл for
    Ответ написан
    Комментировать
  • Как рассчитать координаты по известным соседним?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Берете 2 любве точки, пересекаете окружности. 2 получившиеся точки проверяете с остальными n-2 окружностями.
    Ответ написан
    3 комментария
  • Может ли новичок программирование начать с с++/Gamedev?

    Ответ на вопрос из заголовка - смотри требования в вакансиях на gamedev C++ и оценивай свои силы, сколько времени тебе понадобится, чтобы эти требования выполнить.

    Если говорить про разработку собственной игры или движка:
    https://qna.habr.com/q/1285166
    Опять же попробуй декомпозировать задачу по разработке конкретной игры с конкретными механиками / визуалом / сюжетом и оцени сколько тебе времени понадобится, чтобы освоить все инструменты и разработать.
    И сколько денег, если ты захочешь привлечь людей со стороны.
    И сколько времени, чтобы заработать эти деньги
    И какие навыки нужны для заработка этих денег
    И сколько времени понадобится на получение этих навыков
    И сколько денег нужно, чтобы не умереть с голоду во время получения этих навыков и разработки игры.

    я видел на форумах писали что Gamedev на плюсах это ели на хлеб наскребсти.

    Геймдев на любом языке такой, тк деньги компенсируются "интересностью".
    Если хочется денег - идти надо в enterprise.


    Есть еще один вариант не трогать сейчас программирования и погрузиться в школьную учебу и повторить весь школьный материал чтоб сдать экзамены и поступить в хороший колледж/университет,

    Хороший вариант.

    я не хочу чтоб моя жизнь была проведена на заводе до старости и люди меня считали глупым мне хочется поступить в МФТИ или в какие то престижные колледжы/университеты чтоб уж точно не пропасть в жизни

    1. То что ты с пятого класса учишься на одни тройки не делает тебя автоматически глупым.
    2. Учёба в хорошем вузе не защищает тебя от работы на заводе до старости и не гарантирует тебе, что ты достигнешь какого-либо успеха в жизни.
    3. Чтобы поступить на бюджет в МФТИ или аналогичного уровня университет не достаточно хорошо учиться и получить много баллов на ЕГЭ.
    4. Одним из признаков глупого человека является неумение грамотно и лаконично выражать свои мысли.
    Ответ написан
  • Стоит ли очищать оперативную память от массивов структур в Си?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Нет, если это локальная переменная, ничего делать не надо. Она выделяется на стеке и отчищается автоматически по выходу из функции.

    Надо вызывать free только для тех блоков памяти, который вы сами получили через malloc.
    Ответ написан
    Комментировать
  • Как извлечь элементы многобайтового массива как единое число?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Лучше так делать не надо. Это UB - нарушение всяких strict aliasing, выравниваия и вообще от порядка байт в машине зависит. Лучше руками собрать ULL по частям, вроде
    for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*i);
    или
    for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*(7-i));


    На худой конец, если очень узкое место, надо делать memcpy из массива в &result.
    Ответ написан
    Комментировать
  • С++ На всех ли платформах одинаковая точность операций с float?

    Stalker_RED
    @Stalker_RED
    Я просто оставлю это здесь
    https://0.30000000000000004.com/
    там и про IEEE754, и про разные языки, и про длинную арифметику...
    Ответ написан
    Комментировать
  • С++ На всех ли платформах одинаковая точность операций с float?

    solotony
    @solotony
    покоряю пик Балмера
    В общем ответ - нет. Нет никакой гарантии что операции с плавающей точкой посчитаются одинаково на разных архитектурах. Я на практике с этим сталкивался при решении дифуров, когда из-за проблем с точностью мы получали качествнно разный результат на разных платформах
    Ответ написан
    Комментировать
  • Кроссплатформенное программирование на C?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте поговорим о шрифтах. В 2012 я перешел с windows7 на Linux. И первая проблема практической работы с десктопом заключалась в том что я начал менять шрифты. Вот не нравились мне не шрифты не алгоритмы их рендеринга. Надо отдать должное МС. Шрифты у них хорошие. Дизайнеры очень долго думали над ними. Вот. Когда вы заняты кросс-платформенным UI возникает проблема. - Где взять шрифты максимально похожие на оригинал. Высота. Кернинг. Все должно быть максимально похожим на оригинальный десктоп где идет разработка иначе дизайн разваливается. В годы развития Linux Suse я пытался устанавливать их десктопы и использовать. И самая большая визуальная проблема что я видел - это полный развал шрифтового оформления. Доходило до смешного. Я просто не мог прочитать кириллический месседж в окне. Текст - сползал куда-то за границу окна. Или текст успешно переносился а баттон сползал за границы окна. Вобщем проблем было масса. Я думаю что одна из главных проблем кросс-платформенного UI - это унификация шрифтов. И дело тут вовсе не в Qt или Gnome/Gtk или KDE. А дело в том что другая платформа понятия не имеет как должен выглядет текстовый месседж.
    Ответ написан
    Комментировать