Опубликовано 9 ноября, 201410 г. comment_2956854 Тема для обсуждения программ на языке C. --------------------------------------------------- Для рисования окружностей в теме Heroes III нужна программа.http://amvnews.ru/forum/viewtopic.php?t=3888Эта программа рассчитывает границу 1/8 окружности заданного радиуса в целых числах. Вот эта программа. http://sa.uploads.ru/t/9hxWu.jpg Скачать:https://yadi.sk/d/jzUo02Szcaw6gВ архиве: текст программы;сама программа (работающая!);итоговый файл данных;скриншот программы;откорректированный выходной файл (с косметическими изменениями для удобства работы с ним). Программа написана на языке C под DOS. Изменено 18 марта, 20169 г. пользователем MrStitch (смотреть историю редактирования)
Опубликовано 12 ноября, 201410 г. Автор comment_2957226 Список используемой литературы: http://sa.uploads.ru/t/Hg2xN.jpg Изменено 12 ноября, 201410 г. пользователем 初音ミクこんばんは (смотреть историю редактирования)
Опубликовано 13 ноября, 201410 г. comment_2957402 Кстати, да. Отличная штука, притом кроссплатформенная.
Опубликовано 13 ноября, 201410 г. Автор comment_2957405 Открой для себя QtСначала прочитаю 15 книг по программированию 15-летней выдержки.Это QuickTime, что ли?Слышал, слышал о нём в позапрошлом десятилетии. Это такой мудрёный формат для видео, который не воспроизводился обычным плейером Windows. Вот морока была с ним в эпоху CD. Изменено 13 ноября, 201410 г. пользователем 初音ミクこんばんは (смотреть историю редактирования)
Опубликовано 13 ноября, 201410 г. comment_2957412 Юра К, не придуривайся и научись гуглить. Qt - это кроссплатформенный фреймворк с богатым набором библиотек. Сейчас большинство тех, кто программирует на C++, им пользуется, и при поиске работы это учитывается. Писать прикладные программы на чистом С сейчас всё равно что вспахивать землю буром, когда рядом стоит бесплатный тракторный парк. Может, это и весело, но относится скорее к археологии, чем к современному программированию. Ах, да, можно ещё Кобол изучить. Говорят, к 3000 году снова понадобится. Изменено 13 ноября, 201410 г. пользователем Allen_7 (смотреть историю редактирования)
Опубликовано 13 ноября, 201410 г. comment_2957417 Голый Си сейчас занимает нишу "переносимого ассемблера", поскольку в машинном коде сейчас уже никто в здравом уме ничего писать не будет, если есть хоть какой-то выбор. Qt (_не_ QT) -- отличный фреймворк. Кто на голом ВинАПИ кодил более-менее нетрадиционный интерфейс с пожеланиями дизайнера, тот может только вздыхать "почему раньше такого не было". Изменено 13 ноября, 201410 г. пользователем Jabberwocker (смотреть историю редактирования)
Опубликовано 14 ноября, 201410 г. comment_2957455 Голый Си сейчас занимает нишу "переносимого ассемблера", поскольку в машинном коде сейчас уже никто в здравом уме ничего писать не будет, если есть хоть какой-то выбор.Юзер GTK+ люто минусует.Юзер Электронщик позвал коллег, скорость заминусовыания увеличивается экспоненциально.Линус Товальдс о вас вытирает ноги, он бы и рад сделать просто замечание, но характер у него не нордический. Догадайтесь за какую часть каждый из них минусует :) @初音ミクこんばんは, еще советую для себя открыть git c github-ом и bitbucket впридачу.
Опубликовано 14 ноября, 201410 г. comment_2957461 1. против GTK+ ничего не имею -- хотя, на мой взгляд, Qt4 привлекательнее.2. даже в embedded стараются писать на Си вместо ассемблера.3. линукс и живет в первую очередь потому, что написан на переносимом Си кстати, несколько лет назад проводили эксперимент -- оказалось, что современные оптимизирующие компиляторы выдают код, сравнимый с ручным ассемблером (а при заточке под конкретное поколение процессора -- иногда и более быстрый за счет учета особенностей кэша и конвейера).
Опубликовано 14 ноября, 201410 г. comment_2957466 2. даже в embedded стараются писать на Си вместо ассемблера.Да, но бывает случаи, что конкретный чип приходится задействовать по максимум и тут только ассемблер. 3. линукс и живет в первую очередь потому, что написан на переносимом СиВместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде. Это раз.Два, в ядре написано достаточно много высокоабстрактных вещей. кстати, несколько лет назад проводили эксперимент -- оказалось, что современные оптимизирующие компиляторы выдают код, сравнимый с ручным ассемблером (а при заточке под конкретное поколение процессора -- иногда и более быстрый за счет учета особенностей кэша и конвейера). Слышал, но ссылок не видел.
Опубликовано 14 ноября, 201410 г. comment_2957467 Да, но бывает случаи, что конкретный чип приходится задействовать по максимум и тут только ассемблер.Тогда нужные инструкции / обращения к портам оформляют как функции в отдельном ассемблерном исходнике (в крайнем случае -- макросы), а потом дергают эти функции из сишных исходников.Вместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде.А я о чем? Си как портабельный ассемблер. Плюсы -- опционально, многие эмбедщики кривят нос от исключений и rtti.Реальный ассемблер убран так, чтобы реально его трогать не приходилось. Даже драйвера давно не пишут на голом ассемблере. Любой тимлид настучит по башке (возможно -- ногами) обормоту, который начнет писать логику на ассемблере вместо Си, за исключением случая "не влезаем в чип, а поменять в рамках ТЗ нельзя". Вот тогда начинается ходьба вприсядку и прочие извращения ради экономии байтиков.
Опубликовано 14 ноября, 201410 г. Автор comment_2957468 А кто-нибудь помнит C--?Нашёл на одном из дисков, но разобраться руки не дошли. Зачем, если C работает, а размер программы 8 килобайт – не напряг вовсе.
Опубликовано 14 ноября, 201410 г. comment_2957470 На обычном Си можно добиться того же -- если не лень подсунуть свой рантайм.Во времена дос кто-то даже таким извратом занимался, чтобы сэкономить сколько-то килобайт.
Опубликовано 14 ноября, 201410 г. comment_2957475 "не влезаем в чип, а поменять в рамках ТЗ нельзя"Бывает так, что смена потянет ко ординальной переделки всего устройства, что не есть гуд. Вот о таких я и говорил, что формально возможность есть, по факту выпендриваться на Си здесь будет дороже.А я о чем? Си как портабельный ассемблер.Что-то у вас больно широко понятие портабельного ассембера. На асме что-то типа OpenVZ не напишешь.
Опубликовано 14 ноября, 201410 г. comment_2957477 Что-то у вас больно широко понятие портабельного ассембера.Я имею в виду, что сейчас Си занимает ту нишу, что раньше занимал ассемблер.Но, в отличие от машинных кодов, исходники на Си портируются куда меньшими усилиями.Иногда даже в прошивках используют С++ в качестве "Си с классами", отключив исключения и rtti + очень осторожно обращаясь с шаблонами, чтобы не нарваться на раздувание кода.А просто ассемблеру осталась ниша мелких функций (вроде атомарных примитивов, синхронизации доступа к памяти, обращение к портам устройства и т.п.) либо (в редких случаях) -- упихивание в дешевый чип того, что не входит после компилятора с оптимизацией по размеру.Я, конечно, помню Volkov Commander... эту бы энергию да в мирных целях.
Опубликовано 15 ноября, 201410 г. comment_2957597 Ассемблер в какой-то степени ещё жив - даже не столько потому, что на нём кто-то пишет ... сколько просто потому, что всё равно нужно понимать, как на нём что устроено и работает. Ну такие вещи всякие например. Иногда, да, всё ещё полезно заточить конкретную критическую секцию под конкретную железку, под которую компиляторы ещё не осилили, но уже совсем редко. А кто-нибудь помнит C--?Нашёл на одном из дисков, но разобраться руки не дошли.Этот язык делали не для того, чтобы писать на нём программы.
Опубликовано 15 ноября, 201410 г. comment_2957617 ха, а пользе знания ассемблера никто и не спорит.в конце концов, как без этого разбирать креш-дампы от юзеров?
Опубликовано 16 ноября, 201410 г. comment_2957682 в конце концов, как без этого разбирать креш-дампы от юзеров? О, эт ты сейчас прям озвучил первую причину моей любви к open-source. Потому что там мне, как юзеру, не надо разбирать ассемблерные креш-дампы.
Опубликовано 16 ноября, 201410 г. comment_2957684 трижды ха-ха.в бесплатном софте если что-то тупо падает, и при этом софт не мега-популярный -- надежды для обычного юзера нет.в платном софте после нажатия "отправить отчет" будут сделаны хоть какие-то телодвижения -- и хотя несколько случаев, где приходилось возвращать деньги, я помню, обычно найти решение проблемы удается (и чаще всего проблемы вызваны конфликтом навесной защиты и антивиря/файрволла). кстати, опенсорс !-= бесплатному.Та же Qt идет полностью в исходниках, и позволяет использовать ее бесплатно в коммерческих приложениях (LGPL).Но если нужна статическая линковка -- то коммерческая лицензия в килобакс/год.
Опубликовано 16 ноября, 201410 г. comment_2957686 Ну вроде я так и сказал.Бесплатный софт - худшее изобретение человечества, а опенсорсный - лучшее.Ну да ладно.
Опубликовано 16 ноября, 201410 г. comment_2957737 Если что -- в пресловутой Qt, самой что ни на есть open-source, баг с "промахиванием" кликов в ГУИ, если подключен планшет Wacom -- не правился годами.Кажется, лет 5 точно.
Опубликовано 16 ноября, 201410 г. comment_2957739 Фу какой позор! Пошёл устанавливать венду и буду теперь всю жизнь на вижуал бейсике дотнет программировать, в вижуал студии експресс -_-
Опубликовано 19 ноября, 201410 г. Автор comment_2958165 http://sa.uploads.ru/t/nBhU3.png http://uploads.ru/nBhU3.tiffhttp://uploads.ru/ma0cg.tiffhttp://uploads.ru/kzKVl.tiff Здравствуйте, вопрос к знатокам языка C такого плана. Я – разработчик карт Heroes III.https://www.animeforum.ru/index.php?app=forums&module=forums§ion=findpost&pid=2956412Сначала я установил Heroes III "Возрождение Эрафии". Затем я установил Heroes III "Дыхание смерти". Затем я запустил редактор карт "Дыхание смерти" и открыл в нём карту "Возрождение Эрафии".И вот, когда я пытаюсь что-то там зарисовать, мне выскакивает ошибка с последующим вылетом из программы редактирования.1) Если я обращусь к разработчикам, как посоветовала мне ОС, что будет?2) Допустим, я согласился отладить программу. Что там отладить? Запускается программа Visual C++ 6, редактор hex-кода. Что дальше делать-то? Кто виноват, ясно: программист. Что делать?
Опубликовано 20 ноября, 201410 г. comment_2958399 1) Ничего не будет. Поддержка прекращена давным-давно.2) Ничего не сделаешь. Чтобы чужую программу без исходников перебрать через выхлопную трубу -- сильно хорошо уметь надо.
Опубликовано 21 ноября, 201410 г. comment_2958411 для начала -- запускать ее в режиме совместимости или в виртуальной машине под вин98
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.