Перейти к содержимому

Фотография

C и C++


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 91

#1 初音ミクこんばんは

初音ミクこんばんは
  • Старожилы
  • PipPipPipPipPipPip
  • балдёж

  • Cообщений: 2 821
47
Няшка

Отправлено 09 Ноябрь 2014 - 12:53

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

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

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

Изображение

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

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

Программа написана на языке C под DOS.

Сообщение отредактировал MrStitch: 19 Март 2016 - 01:34

  • 0

#2 初音ミクこんばんは

初音ミクこんばんは
  • Старожилы
  • PipPipPipPipPipPip
  • балдёж

  • Cообщений: 2 821
47
Няшка

Отправлено 12 Ноябрь 2014 - 13:39

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

Изображение

Сообщение отредактировал 初音ミクこんばんは: 12 Ноябрь 2014 - 13:41

  • 0

#3 Танцующий на воде

Танцующий на воде
  • Старожилы
  • PipPipPip
  • Сталкеруем

  • Cообщений: 593
22
Хороший

Отправлено 13 Ноябрь 2014 - 21:46

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

#4 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 13 Ноябрь 2014 - 21:50

Кстати, да. Отличная штука, притом кроссплатформенная.
  • 0

#5 初音ミクこんばんは

初音ミクこんばんは
  • Старожилы
  • PipPipPipPipPipPip
  • балдёж

  • Cообщений: 2 821
47
Няшка

Отправлено 13 Ноябрь 2014 - 22:00

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

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

Сообщение отредактировал 初音ミクこんばんは: 13 Ноябрь 2014 - 22:02

  • 0

#6 Allen_8

Allen_8
  • Старожилы
  • PipPipPipPipPip
  • &

  • Cообщений: 1 621
1 202
Понивластелин

Отправлено 13 Ноябрь 2014 - 22:31

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

Сообщение отредактировал Allen_7: 13 Ноябрь 2014 - 22:34

  • 1

#7 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 13 Ноябрь 2014 - 23:07

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

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

Сообщение отредактировал Jabberwocker: 13 Ноябрь 2014 - 23:09

  • 0

#8 Танцующий на воде

Танцующий на воде
  • Старожилы
  • PipPipPip
  • Сталкеруем

  • Cообщений: 593
22
Хороший

Отправлено 14 Ноябрь 2014 - 11:15

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

Юзер GTK+ люто минусует.
Юзер Электронщик позвал коллег, скорость заминусовыания увеличивается экспоненциально.
Линус Товальдс о вас вытирает ноги, он бы и рад сделать просто замечание, но характер у него не нордический.

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

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

#9 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 14 Ноябрь 2014 - 11:33

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

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

#10 Танцующий на воде

Танцующий на воде
  • Старожилы
  • PipPipPip
  • Сталкеруем

  • Cообщений: 593
22
Хороший

Отправлено 14 Ноябрь 2014 - 11:58

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

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

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

Вместе с линуксом идет gcc\clang и glibc и там, и здесь и тут приходится использовать асм, хоть и далеко не везде. Это раз.
Два, в ядре написано достаточно много высокоабстрактных вещей.

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

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

#11 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 14 Ноябрь 2014 - 12:15

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

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

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

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

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

#12 初音ミクこんばんは

初音ミクこんばんは
  • Старожилы
  • PipPipPipPipPipPip
  • балдёж

  • Cообщений: 2 821
47
Няшка

Отправлено 14 Ноябрь 2014 - 12:32

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

#13 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 14 Ноябрь 2014 - 12:59

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

#14 Танцующий на воде

Танцующий на воде
  • Старожилы
  • PipPipPip
  • Сталкеруем

  • Cообщений: 593
22
Хороший

Отправлено 14 Ноябрь 2014 - 13:40

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

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

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

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

#15 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 14 Ноябрь 2014 - 13:59

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

Я имею в виду, что сейчас Си занимает ту нишу, что раньше занимал ассемблер.
Но, в отличие от машинных кодов, исходники на Си портируются куда меньшими усилиями.
Иногда даже в прошивках используют С++ в качестве "Си с классами", отключив исключения и rtti + очень осторожно обращаясь с шаблонами, чтобы не нарваться на раздувание кода.
А просто ассемблеру осталась ниша мелких функций (вроде атомарных примитивов, синхронизации доступа к памяти, обращение к портам устройства и т.п.) либо (в редких случаях) -- упихивание в дешевый чип того, что не входит после компилятора с оптимизацией по размеру.
Я, конечно, помню Volkov Commander... эту бы энергию да в мирных целях.
  • 0

#16 hao10

hao10
  • Старожилы
  • PipPipPipPip
  • Волшебный двурог

  • Cообщений: 779
228
Маленький пони

Отправлено 15 Ноябрь 2014 - 18:35

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

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

Этот язык делали не для того, чтобы писать на нём программы.
  • 0

#17 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 15 Ноябрь 2014 - 19:50

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

#18 hao10

hao10
  • Старожилы
  • PipPipPipPip
  • Волшебный двурог

  • Cообщений: 779
228
Маленький пони

Отправлено 16 Ноябрь 2014 - 09:00

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

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

#19 Jabberwocker

Jabberwocker
  • Старожилы
  • PipPipPipPipPipPip
  • Джентльмен удачи

  • Cообщений: 2 790
215
Маленький пони

Отправлено 16 Ноябрь 2014 - 09:32

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

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

#20 hao10

hao10
  • Старожилы
  • PipPipPipPip
  • Волшебный двурог

  • Cообщений: 779
228
Маленький пони

Отправлено 16 Ноябрь 2014 - 10:14

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




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных