Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Тогда что вас смутило ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 07:18 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
SashaMercuryТогда что вас смутило ? семантика. optimus - он уже наилучший Что касается данного обсуждения - важен критерий оптимальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 08:55 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Мудрое решение /другого и не ждал. Копия форума firebird/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 18:33 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Владимир2012Мудрое решение /другого и не ждал. Копия форума firebird/ loop ( 1 ) { say( "Извеняюсь, извеняюсь, извеняюсь" ); } PS: Не обратил внимания, что появился topic "Про улучшение DLL". Думал просто все выбросили ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 21:06 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Продолжил заниматься макроподстановками. Составил общий алгоритм, согласно которому производились бы замены в тексте программы. Как вы считаете, в первом приближении он верный ? Рекурсия подразумевается в пункте 2.3 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2014, 04:18 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Нашёл ошибку, если w_c=="#" || w_c=="#define", то нужно перейти на новую строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2014, 04:33 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Сейчас написал функцию, пробегающую по всем идентификаторам исходного кода(за исключением строк, начинающихся с #, т.к. там никаких замен быть не может). Мне она не очень нравится. Подскажите пожалуйста, видите ли вы какие-нибудь явные недостатки/минусы ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Вот так вызываю Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Хотя сразу вижу, можно вынести выделение памяти за функцию. Выделить память один раз, и не делать malloc кучу раз. Та проблема что встречалась ранее. Сейчас перепишу. (да, и верхних функциях, непонятно почему возвращаю -1, там ведь указатели. Ещё одна ошибка, слишком сконцентрировался на алгоритме) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. всё равно не нравятся ни код, ни алгоритм. сейчас ещё подумаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 03:57 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
нужно поменять местами проверку на # и на символы, ибо вероятность появления не # выше чем диапазона символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 04:08 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
SashaMercuryнужно поменять местами проверку на # и на символы, ибо вероятность появления не # выше чем диапазона символов. а вот тут, можно видеть противоречия с математикой, по части рассуждений, и построения алгоритма. При построение алгоритма, сначала обрабатываются частные случаи, а потом общий случай(чаще всего так). При описании алгоритма, на языке программирования, сначала лучше описать вилку для общего случая(если в каждой вилке предусмотрен переход в конец блока цикла, или выход из него), и в дальнейшем описывать ветки по уменьшению вероятности захода в неё. Это опять таки мои предположения, но скорее всего они верны. Если компилятор(например оптимизирующий) не проводит оценку самостоятельно (сам придумывает тесты, и делает оценку). Но это маловероятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 04:30 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПодскажите пожалуйста, видите ли вы какие-нибудь явные недостатки/минусы ? попытки преждевременной оптимизации. с принципиальными моментами бы сначала разобраться -макроопределение может быть многострочным -строки и комментарии не нуждаются в разборе - строка , начинающаяся с # тоже требует разбора (это элементарно stringification может быть) - новые идентификаторы могут появляться по ходу макроподстановки(конкатенация) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 11:03 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 12:10 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Нас с 1 курса универа учили делать "защиту" от дурака. На любой вводимый руками текст софт должен давать реакцию как минимум адекватную. Без BSOD-ов, segmentation fault, stackoverflow. На циклическую или авто-рекурсивную замену defines должна быть чёткая реакция с выводом сообщения об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 15:57 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
maytonНа циклическую или авто-рекурсивную замену defines должна быть чёткая реакция с выводом сообщения об ошибке это не ошибка, в случае рекурсии подстановка согласно спецификациям прекращается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 16:10 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
А Сашик кодит свои реплейсменты согласно спецификациям или так... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 16:15 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
maytonНас с 1 курса универа учили делать "защиту" от дурака. На любой вводимый руками текст софт должен давать реакцию как минимум адекватную. Без BSOD-ов, segmentation fault, stackoverflow. На циклическую или авто-рекурсивную замену defines должна быть чёткая реакция с выводом сообщения об ошибке. Доброго времени суток. Алан Мэтисон Тьюринг, Proposals for ACE(1945)До некоторого момента лучше допустить наличие ошибок в программе, чем потратить на её разработку столько времени, сколько потребуется на устранение всех ошибок(сколько десятилетий на это потребуется?). Хотя к данному конкретному случаю, скорее всего вы правы больше. Сегодня думал об этом, если хотите, то я пришёл к выводу что мне больше нравится принцип ASSUME. Не знаю есть ли такой в науке информационные технологии, но думаю вы поняли что я имею ввиду. (хотя нравится не нравится, спи моя красавица) Сегодня вечером я исправлял небольшую часть замечаний от научного руководителя, и это только книги :(. Не могу пока более плотно заняться этой задачей. Но я её решаю, и знаю что решу её точно, пусть и в первом приближении, пусть и с принципом ASSUME. Меня уже гонят, я тут в темноте ели как цитату эту нашёл :D Доброго времени суток, всем спасибо за советы, всё запомнил C: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 16:22 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Кто-ж тебя "гонит-то" всё время? Купи планшет штоль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 16:25 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Да у меня он есть, а я им не пользуюсь, где-то валяется. Когда покупал, думал буду каждый день с ним ходить везде :D попользовался месяц, и он мне надоел :) Здравствуйте. В первом приближении программу написал, но пока что показывать не буду, ибо мне она не нравится. Покажу её после рефакторинга. У меня возник вопрос. Подскажите пожалуйста, возможно ли написать функцию, которая будет принимать и файл и строку по одному параметру?Вот такой прототип fe Код: plaintext 1. 2. 3. 4. но чтобы её можно было вызывать следующим образом: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 07:10 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Как вариант: можно две написать, одну использовать как обертку второй Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 07:49 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Dima TКак вариант: можно две написать, одну использовать как обертку второй Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Спасибо. Можно, но тогда получится что мы дважды читаем символы, один раз из файла, а потом из строки. Хотелось бы этого избежать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 07:54 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
SashaMercuryполучится что мы дважды читаем символы, один раз из файла, а потом из строки. Хотелось бы этого избежать Не избежать этого, программа работает только с данными в памяти, т.е. строкой в твоем случае, при работе с файлом сначала все-равно чтение из файла в память произойдет. Как бы ты не написал свою функцию. Если уж очень хочется одну, то можно два параметра: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. вызывать так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 08:04 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
жаль что нельзя сделать по-другому. Хотя возможно это и правильно, что нельзя.(хотя у меня было такое чувство что должна быть изящная лазейка) Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 09:12 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
а можно передавать указатель на Тип, и в зависимости от типа, выполнять различные операции ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 09:12 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Dima T Код: plaintext 1. 2. В С нельзя таким образом перегружать функции. В С++ можно. SashaMercuryа можно передавать указатель на Тип, и в зависимости от типа, выполнять различные операции ? В С++ - поизвращаться типами можно. Но в целом идея дурацкая :) Данный класс проблем обычно (в любых языках) решается путем введения дополнительных абстракций. Например если одна и та же функция должна уметь читать и из памяти и из файла, то вводится абстракция Stream, у которой есть операции read_char()/read_line() etc. Функция работает с ней. А при вызове функции создается либо MemoryStream либо FileStream - разные реализации этой абстракции. В С это реализуется через структуры и указатели на функции. В С++ есть явный синтаксис абстракций - виртуальные функции и шаблоны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 09:45 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, это интересно. Значит можно создать структуру Stream, в ней описать такие вещи как: признак конца файла, указатель на функцию чтения потока, тип потока (0-строка,1-файл). Код: plaintext 1. 2. 3. 4. 5. 6. примерно так ? И через неё реализовывать функции чтения/записи из потока. По сути это так-же обёртка о которой писал Дмитрий, если я правильно понял. Только более глобальная. Я правильно вас понял ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 09:58 |
|
||
|
Анализ исходного кода. Разбор IOCCC 1985 august
|
|||
|---|---|---|---|
|
#18+
SashaMercuryа можно передавать указатель на Тип, и в зависимости от типа, выполнять различные операции ? можно передать отдельным параметром тип, т.е. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. вызывать так Код: plaintext 1. Вобщем тоже достаточно громоздко получается. Я бы тебе посоветовал не заниматься минимизацией количества функций, компилятор это прекрасно сделает за тебя. Почитай про inline функции и про правила их написания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 10:06 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38811430&tid=2019118]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 187ms |

| 0 / 0 |
