Перейти к содержанию
АнимеФорум

C и C++


Рекомендуемые сообщения

Тема для обсуждения программ на языке C.

---------------------------------------------------

Для рисования окружностей в теме Heroes III нужна программа.
http://amvnews.ru/forum/viewtopic.php?t=3888
Эта программа рассчитывает границу 1/8 окружности заданного радиуса в целых числах. Вот эта программа.

[url=http://sa.uploads.ru/9hxWu.jpg][img]http://sa.uploads.ru/t/9hxWu.jpg[/img][/url]

Скачать:
https://yadi.sk/d/jzUo02Szcaw6g
В архиве:

текст программы;
сама программа (работающая!);
итоговый файл данных;
скриншот программы;
откорректированный выходной файл (с косметическими изменениями для удобства работы с ним).

Программа написана на языке C под DOS. Изменено пользователем MrStitch
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 91
  • Создана
  • Последний ответ

Топ авторов темы

Список используемой литературы:

[url=http://sa.uploads.ru/Hg2xN.jpg][img]http://sa.uploads.ru/t/Hg2xN.jpg[/img][/url] Изменено пользователем 初音ミクこんばんは
Ссылка на комментарий
Поделиться на другие сайты

[quote name='Танцующий на воде' timestamp='1415904395' post='2957401']
Открой для себя Qt
[/quote]
Сначала прочитаю 15 книг по программированию 15-летней выдержки.
Это QuickTime, что ли?
Слышал, слышал о нём в позапрошлом десятилетии. Это такой мудрёный формат для видео, который не воспроизводился обычным плейером Windows. Вот морока была с ним в эпоху CD. Изменено пользователем 初音ミクこんばんは
Ссылка на комментарий
Поделиться на другие сайты

Юра К, не придуривайся и научись гуглить. Qt - это кроссплатформенный фреймворк с богатым набором библиотек. Сейчас большинство тех, кто программирует на C++, им пользуется, и при поиске работы это учитывается. Писать прикладные программы на чистом С сейчас всё равно что вспахивать землю буром, когда рядом стоит бесплатный тракторный парк. Может, это и весело, но относится скорее к археологии, чем к современному программированию. Ах, да, можно ещё Кобол изучить. Говорят, к 3000 году снова понадобится. Изменено пользователем Allen_7
Ссылка на комментарий
Поделиться на другие сайты

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

Qt (_не_ QT) -- отличный фреймворк. Кто на голом ВинАПИ кодил более-менее нетрадиционный интерфейс с пожеланиями дизайнера, тот может только вздыхать "почему раньше такого не было". Изменено пользователем Jabberwocker
Ссылка на комментарий
Поделиться на другие сайты

[quote name='Jabberwocker' post='2957417']
Голый Си сейчас занимает нишу "переносимого ассемблера", поскольку в машинном коде сейчас уже никто в здравом уме ничего писать не будет, если есть хоть какой-то выбор.
[/quote]
Юзер GTK+ люто минусует.
Юзер Электронщик позвал коллег, скорость заминусовыания увеличивается экспоненциально.
Линус Товальдс о вас вытирает ноги, он бы и рад сделать просто замечание, но характер у него не нордический.

Догадайтесь за какую часть каждый из них минусует :)

[member="初音ミクこんばんは"], еще советую для себя открыть git c github-ом и bitbucket впридачу.
Ссылка на комментарий
Поделиться на другие сайты

1. против GTK+ ничего не имею -- хотя, на мой взгляд, Qt4 привлекательнее.
2. даже в embedded стараются писать на Си вместо ассемблера.
3. линукс и живет в первую очередь потому, что написан на переносимом Си

кстати, несколько лет назад проводили эксперимент -- оказалось, что современные оптимизирующие компиляторы выдают код, сравнимый с ручным ассемблером (а при заточке под конкретное поколение процессора -- иногда и более быстрый за счет учета особенностей кэша и конвейера).
Ссылка на комментарий
Поделиться на другие сайты

[quote name='Jabberwocker' post='2957461']
2. даже в embedded стараются писать на Си вместо ассемблера.
[/quote]
Да, но бывает случаи, что конкретный чип приходится задействовать по максимум и тут только ассемблер.

[quote name='Jabberwocker' post='2957461']
3. линукс и живет в первую очередь потому, что написан на переносимом Си
[/quote]
Вместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде. Это раз.
Два, в ядре написано достаточно много высокоабстрактных вещей.

[quote name='Jabberwocker' post='2957461']
кстати, несколько лет назад проводили эксперимент -- оказалось, что современные оптимизирующие компиляторы выдают код, сравнимый с ручным ассемблером (а при заточке под конкретное поколение процессора -- иногда и более быстрый за счет учета особенностей кэша и конвейера).
[/quote]
Слышал, но ссылок не видел.
Ссылка на комментарий
Поделиться на другие сайты

[quote name='Танцующий на воде' post='2957466']Да, но бывает случаи, что конкретный чип приходится задействовать по максимум и тут только ассемблер.[/quote]
Тогда нужные инструкции / обращения к портам оформляют как функции в отдельном ассемблерном исходнике (в крайнем случае -- макросы), а потом дергают эти функции из сишных исходников.
[quote name='Танцующий на воде' post='2957466']Вместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде.[/quote]
А я о чем? Си как портабельный ассемблер. Плюсы -- опционально, многие эмбедщики кривят нос от исключений и rtti.
Реальный ассемблер убран так, чтобы реально его трогать не приходилось. Даже драйвера давно не пишут на голом ассемблере.

Любой тимлид настучит по башке (возможно -- ногами) обормоту, который начнет писать логику на ассемблере вместо Си, за исключением случая "не влезаем в чип, а поменять в рамках ТЗ нельзя". Вот тогда начинается ходьба вприсядку и прочие извращения ради экономии байтиков.
Ссылка на комментарий
Поделиться на другие сайты

А кто-нибудь помнит C--?
Нашёл на одном из дисков, но разобраться руки не дошли. Зачем, если C работает, а размер программы 8 килобайт – не напряг вовсе.
Ссылка на комментарий
Поделиться на другие сайты

На обычном Си можно добиться того же -- если не лень подсунуть свой рантайм.
Во времена дос кто-то даже таким извратом занимался, чтобы сэкономить сколько-то килобайт.
Ссылка на комментарий
Поделиться на другие сайты

[quote name='Jabberwocker' post='2957467']
"не влезаем в чип, а поменять в рамках ТЗ нельзя"
[/quote]
Бывает так, что смена потянет ко ординальной переделки всего устройства, что не есть гуд. Вот о таких я и говорил, что формально возможность есть, по факту выпендриваться на Си здесь будет дороже.[quote name='Jabberwocker' post='2957467']
А я о чем? Си как портабельный ассемблер.
[/quote]
Что-то у вас больно широко понятие портабельного ассембера. На асме что-то типа OpenVZ не напишешь.
Ссылка на комментарий
Поделиться на другие сайты

[quote name='Танцующий на воде' post='2957475']Что-то у вас больно широко понятие портабельного ассембера.[/quote]
Я имею в виду, что сейчас Си занимает ту нишу, что раньше занимал ассемблер.
Но, в отличие от машинных кодов, исходники на Си портируются куда меньшими усилиями.
Иногда даже в прошивках используют С++ в качестве "Си с классами", отключив исключения и rtti + очень осторожно обращаясь с шаблонами, чтобы не нарваться на раздувание кода.
А просто ассемблеру осталась ниша мелких функций (вроде атомарных примитивов, синхронизации доступа к памяти, обращение к портам устройства и т.п.) либо (в редких случаях) -- упихивание в дешевый чип того, что не входит после компилятора с оптимизацией по размеру.
Я, конечно, помню Volkov Commander... эту бы энергию да в мирных целях.
Ссылка на комментарий
Поделиться на другие сайты

Ассемблер в какой-то степени ещё жив - даже не столько потому, что на нём кто-то пишет ... сколько просто потому, что всё равно нужно понимать, как на нём что устроено и работает. [url=http://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array]Ну такие вещи всякие например[/url]. Иногда, да, всё ещё полезно заточить конкретную критическую секцию под конкретную железку, под которую компиляторы ещё не осилили, но уже совсем редко.

[quote]А кто-нибудь помнит C--?
Нашёл на одном из дисков, но разобраться руки не дошли.[/quote]Этот язык делали не для того, чтобы писать на нём программы.
Ссылка на комментарий
Поделиться на другие сайты

ха, а пользе знания ассемблера никто и не спорит.
в конце концов, как без этого разбирать креш-дампы от юзеров?
Ссылка на комментарий
Поделиться на другие сайты

[quote]в конце концов, как без этого разбирать креш-дампы от юзеров? [/quote]
О, эт ты сейчас прям озвучил первую причину моей любви к open-source. Потому что там мне, как [i]юзеру[/i], не надо разбирать ассемблерные креш-дампы.
Ссылка на комментарий
Поделиться на другие сайты

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

кстати, опенсорс !-= бесплатному.
Та же Qt идет полностью в исходниках, и позволяет использовать ее бесплатно в коммерческих приложениях (LGPL).
Но если нужна статическая линковка -- то коммерческая лицензия в килобакс/год.
Ссылка на комментарий
Поделиться на другие сайты

Если что -- в пресловутой Qt, самой что ни на есть open-source, баг с "промахиванием" кликов в ГУИ, если подключен планшет Wacom -- не правился годами.
Кажется, лет 5 точно.
Ссылка на комментарий
Поделиться на другие сайты

Фу какой позор! Пошёл устанавливать венду и буду теперь всю жизнь на вижуал бейсике дотнет программировать, в вижуал студии експресс -_-
Ссылка на комментарий
Поделиться на другие сайты

[url=http://sa.uploads.ru/nBhU3.png][img]http://sa.uploads.ru/t/nBhU3.png[/img][/url]

http://uploads.ru/nBhU3.tiff
http://uploads.ru/ma0cg.tiff
http://uploads.ru/kzKVl.tiff

Здравствуйте, вопрос к знатокам языка C такого плана. Я – разработчик карт Heroes III.
https://www.animeforum.ru/index.php?app=forums&module=forums&section=findpost&pid=2956412
Сначала я установил Heroes III "Возрождение Эрафии". Затем я установил Heroes III "Дыхание смерти". Затем я запустил редактор карт "Дыхание смерти" и открыл в нём карту "Возрождение Эрафии".
И вот, когда я пытаюсь что-то там зарисовать, мне выскакивает ошибка с последующим вылетом из программы редактирования.
1) Если я обращусь к разработчикам, как посоветовала мне ОС, что будет?
2) Допустим, я согласился отладить программу. Что там отладить? Запускается программа Visual C++ 6, редактор hex-кода. Что дальше делать-то?

Кто виноват, ясно: программист. Что делать?
Ссылка на комментарий
Поделиться на другие сайты

1) Ничего не будет. Поддержка прекращена давным-давно.
2) Ничего не сделаешь. Чтобы чужую программу без исходников перебрать через выхлопную трубу -- сильно хорошо уметь надо.
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...