• Где взять math.h?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Вообще-то стандартная запись
    #include <math.h>
    Означает она инструкцию искать math.h в стандартных папках инклудов. А запись в кавычках означает "возьми из текущего каталога"
    Ответ написан
    Комментировать
  • Можете накидать идеи для проектов на rust?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Попробуйте сайт exercism.io
    Там есть более 90 заданий для практики rust
    Ответ написан
    Комментировать
  • Почему не пишут сайты на языке Си?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Потому что очень сложно и очень долго.
    Ответ написан
    Комментировать
  • Когда выйдет стандарт c2x?

    https://en.wikipedia.org/wiki/C2x
    Точная дата не известна, но не раньше декабря 2021.
    Если вас от изучения си останавливает будущий стандарт языка - можете пока так начать
    Ответ написан
    2 комментария
  • Хайп вокруг ЯП Rust и C?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    не являются ли ошибки с памятью ошибками программиста, а не компилятора и языка программирования

    Вы попробуйте на Rust что нибудь написать. Там не то что ошибочный, там безошибочный код непросто скомпилировать))
    Ответ написан
    Комментировать
  • Как мне отключить масштабируемость окна?

    Vindicar
    @Vindicar
    RTFM!
    Не используй метод show(), он исключительно отладочный и не предназначен для показа изображений в ходе нормальной работы.
    Варинты есть такие:
    1. разобраться с Tkinter - он предоставляет куда больше контроля над окном. Насчет "нельзя менять размер" - точно может, но вот "нельзя передвигать" - это уже не факт. Tkinter идет в стандартной поставке, для простых GUI подойдёт.
    2. Пишешь игру? Можешь потыкаться в pygame, он вроде для такого предназначен.
    3. Если не нужна кроссплатформенность (только под Windows), то можно попробовать создавать окно без заголовка прямо через WinAPI, но это очень гемморойно. Я бы не стал связываться.
    Ответ написан
    Комментировать
  • Как определить наличие разрыва рисунка?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Алгоритм обхода в ширину или в глубину. Еще его называют алгоритм заливки. Гуглите. Если за одну заливку вы закрасили все черные пиксели, то фигура одна. Иначе, если компонент взязности несколько - разрыв есть.
    Ответ написан
    Комментировать
  • Что дает пробел после * в языке Си?

    Chronicler
    @Chronicler
    Программист
    По хорошему лучше писать чтобы *была перед именем, а не после типа. Т. к. как ее не ставь, она все равно будет относиться только к одной переменной после типа, но не к следующим.
    Ответ написан
    Комментировать
  • Какие модули/библиотеки должен знать каждый python-ист?

    @JktuJQ
    Когда я только начинал изучать python, начинал со следующих библиотек: обработка изображений (pillow)(узнаешь про транспонирования, матрицы и т.д), в качестве GUI для начала порекомендую tkinter, для чуть более продвинутого уровня PyQt (ткинтер легче по многим причинам, но не очень поворотлив), в качестве научных библиотек numpy, scipy, matplotlib (неплохое комбо, но это уже чуть более продвинутый уровень), для веба: requests, bs, для регулярных выражений re (в сочетание с вебом подходит). Впринципе всё, конечно можно ещё назвать xslxwriter, wawy, но они имеют довольно узкую специализацию. Для тебя могу посоветовать начать с встроенных библиотек (можешь порыться в Python\Scripts), а потом уже переходить на другие. Удачи тебе в изучении!
    P.S. Как писали выше, нет каких-то определенных библиотек, необходимых для каждого, мой ответ - лишь список того, с чего начинал я, изучать их или нет - выбор твой
    Ответ написан
    1 комментарий
  • Почему нельзя создать массив произвольной длины в С++?

    RabraBabr
    @RabraBabr
    Если коротко исторически так сложилось.

    В который раз встречаю человека который упорно не желает пользоваться STL. При том это какое то иррациональное нежелание.

    А теперь длинно.

    Хочешь плохому научу?
    Выделяй память malloc'ом, а когда надо изменить размер "массива", пользуйся realloc'ом. Можешь так же как в встроенном массиве пользоваться [] для обращения к элементам массива.

    Дальше напиши какую нибудь серьезную программу тыщ хотя бы на 20 строк. И в один прекрасный день узнай, что она крашится в самом неожиданном месте, хотя раньше все работало. Далее две бессонных недели, с красными глазами проведи с отладчиком в поисках неуловимого бага. После чего совершенно случайно найди место где вылазишь за пределы массива или обращаешься к неинициализированной памяти. Вот после этого станет понятно, что так жить нельзя. И вот все это безобразие размазанное по всему коду надо собрать в одном месте. И все проверки и инициализацию делать там. А где это в одном месте? Правильно написать собственный класс, там и конструктор есть для инициализации по умолчанию и [] перегрузить можно, что бы всякие проверки делать и деструктор, что бы за собой прибрать. А потом тебе захочется, что бы твой класс работал с разными типами данных и ты перепишешь его на шаблонах.

    А теперь загляни в стандартную библиотеку. Поздравляю все это уже давно сделали за вас гораздо лучше и со множеством приятных плюшек. Тысячи программистов прошли этот путь за более чем 40 лет. Так зачем, зачем проходить этот путь еще раз? У вас, что есть запасная жизнь? Берите и пользуйтесь готовым. C++ имеет тысячи подходящих инструментов. Пользуйтесь ими. Так нет каждый новый адепт хватает кирку и лопату и бежит строить днепрогэс. Не надо построили уже до вас. Вы в стандартной библиотеки поищите оно там есть.
    Ответ написан
    Комментировать
  • Как вы читаете незнакомый код?

    Martovitskiy
    @Martovitskiy
    Наткнулся недавно на статью.
    Почему программисты ненавидят работать с чужим кодом?

    Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на объект, а там кроме недостроенного здания: огромный вентилятор (размером со здание), большой воздушный шар и комната набитая швабрами. Почесав голову, ты разбираешь этот хлам и доделываешь лабораторию. Сдаешь объект ученным, но через 5 минут они выбегают с криком: "УТЕЧКА ЯДОВИТОГО ГАЗА!!!".
    — Как так–то, б..ть! Должно же работать! — в отчаянии кричишь ты и звонишь прошлому прорабу:
    — Вася, у нас ядовитый газ потёк! В чем проблема?
    — Не знаю, должно было все работать. Что–то в проекте менял?

    — Немного, швабры вынес...
    — Швабры потолок держали!
    — Что??? Что, б...ть, извините???
    — Говорю, швабры потолок держали. Над ними цистерны с газом были. Очень тяжелые, пришлось в комнату снизу швабры напихать.

    — Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?
    — Включай вентилятор. Он сдует газ с острова.
    — Я его, б...ть, демонтировал сразу же!
    — Зачем?
    — Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик бл...ских ПРОТИВОГАЗОВ?
    — Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.

    — Вася, я убрал твой вентилятор! Мы тут задыхаемся!
    — Херли вы тогда там делаете? Садитесь на воздушный шар и у..бывайте!
    Ответ написан
    1 комментарий
  • Соотношение многопоточности приложения c++ и многопоточности на уровне системы?

    gbg
    @gbg
    Любые ответы на любые вопросы
    У вас тотальный бардак в голове относительно терминов. Разберитесь с тем, что такое процесс, а что такое поток, что за "второй способ работы с многопоточностью при помощи мьютексов" и так далее. "Многопоточность в одной единице трансляции" - это просто шедевр. Как единицы трансляции связаны с потоками?

    Из вашего потока сознания я понял, что вам нужен QSingleApplication - Штука, которая не дает запустить программу более одного раза.
    Ответ написан
    3 комментария
  • Почему Python неправильно считает?

    adugin
    @adugin Куратор тега Python
    Это ошибка округления в операциях с плавающей точкой. Читайте тут.
    Ответ написан
    Комментировать
  • Почему в java результатом i += i++ будет 0?

    gbg
    @gbg
    Любые ответы на любые вопросы
    i++ - постфиксный инкремент. Так как тут нету прибамбасов с точкой следования из C++ и C, тут однозначно получится:
    i+=i++ можно без проблем переписать как
    result=i+i++
    считаем постфиксный инкремент i++, это значит берем из i 0, теперь увеличиваем i на 1
    result=0+0
    i=1
    считаем сложение 0 + 0 (то значение, которое было в i перед вычислением выражения, и то, что мы вытащили при префиксном инкременте)
    result=0
    i=1
    теперь записываем в i результат прибавления 0 к 0, перетирая ранее записанную туда 1.
    i=result //тут в i запишется 0
    Ответ написан
    Комментировать
  • Почему в Python элементы списков нумеруются начиная с 0?

    DevMan
    @DevMan
    не только в змее, но и во множестве других языков (в том числе и без указателей), нумерация начинается с нуля.
    такое себе правило, следование принципу наименьшей неожиданности.
    Ответ написан
    Комментировать
  • Почему при объявлении переменной, в любом языке программирования, резервируется весь размер памяти отведённый под тип данных?

    Stalker_RED
    @Stalker_RED
    Пример с SSD некорректный, все равно что требовать от камаза, например, выпустить грузовик с грузоподъемностью 20кг. Производителю нужен рынок сбыта.
    Тем не менее, небольшие чипы памяти существуют, только никто на них не пишет, что это "SSD".

    Выделение памяти - операция не бесплатная, и кто-то решил, что так будет выгоднее.
    https://randomascii.wordpress.com/2014/12/10/hidde...
    https://habr.com/ru/post/270009/

    Как-то всё топорски устроено
    Вы можете написать сви менеджеры памяти,компиляторы и другие сопутствующие штуки. Не исключено, что обретете мировую известность. Но не думайте, что до вас никто не пытался.
    Ответ написан
    2 комментария
  • Погрешность чисел в c++?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В такой записи у вас K == 0.
    И, если вы даже выведете этот ноль, то ни абсолютная, ни относительная погрешности не превысят 109.
    Абсолютная: |0 - 0.1(6)| = 0.1(6) < 1000000000
    Относительная: |0 - 0.1(6)|/0.1(6) = 1 < 1000000000
    Ответ написан
    2 комментария
  • Как удалить/обновить программу, которая была создана из исходников?

    KodyWiremane
    @KodyWiremane
    Пони, Debian, LEMP, LAN, любитель
    В пингвиньей тусовке частенько похваляются простотой мантры ./configure && make && make install, но звучит и здоровая критика этого метода, направленная на неудобство удаления (не все озабочиваются реализацией make uninstall) и путаницу с файлами при обновлении.

    Поэтому здоровая практика — это сборка из исходников в пакет родного для вашего дистрибутива формата, с последующей его установкой. Инструменты — или универсальные типа checkinstall, или что-то более специфичное вроде debuild.

    Исходники, боюсь, таки придётся скачать. make install превращает файлы из папки билда в обычные файлы, разбросанные по вашему диску. Частично, наверно, можно с этим бороться, указывая префикс пути для установки.
    Ответ написан
    Комментировать