Аниме-Форум: C и C++ - Аниме-Форум

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

  • 5 Страниц +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

C и C++ программы на C&C++ и практика программирования

#1 Пользователь офлайн   初音ミクこんばんは 

  • программирующий на чём попало
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 163
Кавайная няка

Отправлено 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
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 163
Кавайная няка

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

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

Изображение

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

0

#3 Пользователь офлайн   Танцующий на воде 

  • Сталкеруем
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 43
Няшка

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

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

#4 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

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

#5 Пользователь офлайн   初音ミクこんばんは 

  • программирующий на чём попало
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 163
Кавайная няка

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

Просмотр сообщенияТанцующий на воде (13 Ноябрь 2014 - 21:46) писал:

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

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

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

0

#6 Пользователь офлайн   Allen_7 

  • Winds have changed
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 869
Двойной поняша

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

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

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

1

#7 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

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

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

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

0

#8 Пользователь офлайн   Танцующий на воде 

  • Сталкеруем
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 43
Няшка

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

Просмотр сообщенияJabberwocker сказал:

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

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

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

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

#9 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

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

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

#10 Пользователь офлайн   Танцующий на воде 

  • Сталкеруем
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 43
Няшка

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

Просмотр сообщенияJabberwocker сказал:

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

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

Просмотр сообщенияJabberwocker сказал:

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

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

Просмотр сообщенияJabberwocker сказал:

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

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

#11 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

Просмотр сообщенияТанцующий на воде сказал:

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

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

Просмотр сообщенияТанцующий на воде сказал:

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

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

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

#12 Пользователь офлайн   初音ミクこんばんは 

  • программирующий на чём попало
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 163
Кавайная няка

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

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

#13 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

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

#14 Пользователь офлайн   Танцующий на воде 

  • Сталкеруем
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 43
Няшка

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

Просмотр сообщенияJabberwocker сказал:

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

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

Просмотр сообщенияJabberwocker сказал:

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

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

#15 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

Просмотр сообщенияТанцующий на воде сказал:

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

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

#16 Пользователь офлайн   hao10 

  • Волшебный двурог
  • PipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 232
Маленький пони

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

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

Цитата

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

#17 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

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

#18 Пользователь офлайн   hao10 

  • Волшебный двурог
  • PipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 232
Маленький пони

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

Цитата

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

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

#19 Пользователь офлайн   Jabberwocker 

  • Джентльмен удачи
  • PipPipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 227
Маленький пони

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

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

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

#20 Пользователь офлайн   hao10 

  • Волшебный двурог
  • PipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Репутация: 232
Маленький пони

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

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

Поделиться темой:


  • 5 Страниц +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей