Jump to content
View in the app

A better way to browse. Learn more.

АнимеФорум

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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.

Edited by MrStitch (see edit history)

for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
  • Replies 91
  • Views 29.3k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Юра К, не придуривайся и научись гуглить. Qt - это кроссплатформенный фреймворк с богатым набором библиотек. Сейчас большинство тех, кто программирует на C++, им пользуется, и при поиске работы это уч

  • Shinsaku-To
    Shinsaku-To

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

  • Shinsaku-To
    Shinsaku-To

    Серьёзная проблема программистов в том, что многие из них считают себя достаточно умными, чтобы программировать. Они ошибаются. Нет для этого достаточно умных. Именно поэтому разрабатывают новые техно

Featured Replies

  • Author

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

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

Это QuickTime, что ли?

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

Edited by 初音ミクこんばんは (see edit history)

for (j = 0; j < 100; j++) a [j] = d [j] = g [j] = 0;
Юра К, не придуривайся и научись гуглить. Qt - это кроссплатформенный фреймворк с богатым набором библиотек. Сейчас большинство тех, кто программирует на C++, им пользуется, и при поиске работы это учитывается. Писать прикладные программы на чистом С сейчас всё равно что вспахивать землю буром, когда рядом стоит бесплатный тракторный парк. Может, это и весело, но относится скорее к археологии, чем к современному программированию. Ах, да, можно ещё Кобол изучить. Говорят, к 3000 году снова понадобится.

Edited by Allen_7 (see edit history)

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

 

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

Edited by Jabberwocker (see edit history)

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

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

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

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

 

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

 

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

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

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

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

 

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

  • Author

А кто-нибудь помнит 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!~
  • Author

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) Ничего не сделаешь. Чтобы чужую программу без исходников перебрать через выхлопную трубу -- сильно хорошо уметь надо.

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

И да, к C/C++ этот вопрос не имеет отношения. Не очевидно даже что программа написана на ком-то из них :unsure:
Uuchu no Chikara, Laburadoraito!~

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Important Information

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.