Перейти к содержанию
Обновление форума ×
АнимеФорум

C и C++


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

Тема для обсуждения программ на языке 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.

Изменено пользователем MrStitch (смотреть историю редактирования)
for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

 

http://sa.uploads.ru/t/Hg2xN.jpg

Изменено пользователем 初音ミクこんばんは (смотреть историю редактирования)
for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
Ссылка на комментарий
Поделиться на другие сайты

Открой для себя Qt

Сначала прочитаю 15 книг по программированию 15-летней выдержки.

Это QuickTime, что ли?

Слышал, слышал о нём в позапрошлом десятилетии. Это такой мудрёный формат для видео, который не воспроизводился обычным плейером Windows. Вот морока была с ним в эпоху CD.

Изменено пользователем 初音ミクこんばんは (смотреть историю редактирования)
for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
Ссылка на комментарий
Поделиться на другие сайты

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

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

 

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

Изменено пользователем Jabberwocker (смотреть историю редактирования)
Ссылка на комментарий
Поделиться на другие сайты

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

Юзер GTK+ люто минусует.

Юзер Электронщик позвал коллег, скорость заминусовыания увеличивается экспоненциально.

Линус Товальдс о вас вытирает ноги, он бы и рад сделать просто замечание, но характер у него не нордический.

 

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

 

@初音ミクこんばんは, еще советую для себя открыть git c github-ом и bitbucket впридачу.

Ссылка на комментарий
Поделиться на другие сайты

1. против GTK+ ничего не имею -- хотя, на мой взгляд, Qt4 привлекательнее.

2. даже в embedded стараются писать на Си вместо ассемблера.

3. линукс и живет в первую очередь потому, что написан на переносимом Си

 

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

Ссылка на комментарий
Поделиться на другие сайты

2. даже в embedded стараются писать на Си вместо ассемблера.

Да, но бывает случаи, что конкретный чип приходится задействовать по максимум и тут только ассемблер.

 

3. линукс и живет в первую очередь потому, что написан на переносимом Си

Вместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде. Это раз.

Два, в ядре написано достаточно много высокоабстрактных вещей.

 

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

Слышал, но ссылок не видел.

Ссылка на комментарий
Поделиться на другие сайты

Да, но бывает случаи, что конкретный чип приходится задействовать по максимум и тут только ассемблер.

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

Вместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде.

А я о чем? Си как портабельный ассемблер. Плюсы -- опционально, многие эмбедщики кривят нос от исключений и rtti.

Реальный ассемблер убран так, чтобы реально его трогать не приходилось. Даже драйвера давно не пишут на голом ассемблере.

 

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

Ссылка на комментарий
Поделиться на другие сайты

А кто-нибудь помнит C--?

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

for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

"не влезаем в чип, а поменять в рамках ТЗ нельзя"

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

А я о чем? Си как портабельный ассемблер.

Что-то у вас больно широко понятие портабельного ассембера. На асме что-то типа OpenVZ не напишешь.

Ссылка на комментарий
Поделиться на другие сайты

Что-то у вас больно широко понятие портабельного ассембера.

Я имею в виду, что сейчас Си занимает ту нишу, что раньше занимал ассемблер.

Но, в отличие от машинных кодов, исходники на Си портируются куда меньшими усилиями.

Иногда даже в прошивках используют С++ в качестве "Си с классами", отключив исключения и rtti + очень осторожно обращаясь с шаблонами, чтобы не нарваться на раздувание кода.

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

Я, конечно, помню Volkov Commander... эту бы энергию да в мирных целях.

Ссылка на комментарий
Поделиться на другие сайты

Ассемблер в какой-то степени ещё жив - даже не столько потому, что на нём кто-то пишет ... сколько просто потому, что всё равно нужно понимать, как на нём что устроено и работает. Ну такие вещи всякие например. Иногда, да, всё ещё полезно заточить конкретную критическую секцию под конкретную железку, под которую компиляторы ещё не осилили, но уже совсем редко.

 

А кто-нибудь помнит C--?

Нашёл на одном из дисков, но разобраться руки не дошли.

Этот язык делали не для того, чтобы писать на нём программы.
Uuchu no Chikara, Laburadoraito!~
Ссылка на комментарий
Поделиться на другие сайты

ха, а пользе знания ассемблера никто и не спорит.

в конце концов, как без этого разбирать креш-дампы от юзеров?

Ссылка на комментарий
Поделиться на другие сайты

в конце концов, как без этого разбирать креш-дампы от юзеров?

О, эт ты сейчас прям озвучил первую причину моей любви к open-source. Потому что там мне, как юзеру, не надо разбирать ассемблерные креш-дампы.

Uuchu no Chikara, Laburadoraito!~
Ссылка на комментарий
Поделиться на другие сайты

трижды ха-ха.

в бесплатном софте если что-то тупо падает, и при этом софт не мега-популярный -- надежды для обычного юзера нет.

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

 

кстати, опенсорс !-= бесплатному.

Та же Qt идет полностью в исходниках, и позволяет использовать ее бесплатно в коммерческих приложениях (LGPL).

Но если нужна статическая линковка -- то коммерческая лицензия в килобакс/год.

Ссылка на комментарий
Поделиться на другие сайты

Ну вроде я так и сказал.

Бесплатный софт - худшее изобретение человечества, а опенсорсный - лучшее.

Ну да ладно.

Uuchu no Chikara, Laburadoraito!~
Ссылка на комментарий
Поделиться на другие сайты

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

Кажется, лет 5 точно.

Ссылка на комментарий
Поделиться на другие сайты

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

http://sa.uploads.ru/t/nBhU3.png

 

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-кода. Что дальше делать-то?

 

Кто виноват, ясно: программист. Что делать?

for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
Ссылка на комментарий
Поделиться на другие сайты

1) Ничего не будет. Поддержка прекращена давным-давно.

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

Если долго всматриваться в бездну, можно неплохо провести время.

Ссылка на комментарий
Поделиться на другие сайты

для начала -- запускать ее в режиме совместимости или в виртуальной машине под вин98
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

Загрузка...

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

Важная информация