Перейти к содержимому
Открыть в приложении

Лучший способ просмотра. Узнать больше.

АнимеФорум

Полноэкранное приложение на домашнем экране с push-уведомлениями, значками и другими функциями.

Чтобы установить это приложение на iOS и iPados
  1. Нажмите на иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите Добавить на домашний экран.
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите на меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на домашний экран или Установить приложение.
  3. Подтвердите, нажав Установить.

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
  • Просмотры 29,2тыс
  • Создано
  • Последний ответ

Лучшие авторы в этой теме

Самые популярные посты

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

  • Shinsaku-To
    Shinsaku-To

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

  • Shinsaku-To
    Shinsaku-To

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

Рекомендуемые ответы

  • Автор

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

 

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

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

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

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

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

Гость
Ответить на эту тему...

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу.

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

Аккаунт

Навигация

Поиск

Настроить push-уведомления в браузере

Chrome (Android)
  1. Нажмите на значок замка рядом с адресной строкой.
  2. Выберите Разрешения → Уведомления.
  3. Настройте предпочтения.
Chrome (Desktop)
  1. Нажмите на значок замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите пункт Уведомления и настройте параметры по своему усмотрению.