Forth http://www.fforum.winglion.ru/ |
|
преобразование строкового представления угла вида 12°12'12" http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2929 |
Страница 3 из 5 |
Автор: | gudleifr [ Вс май 05, 2013 23:14 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): нет Боюсь спрашивать почему. Опять скажете, что контекст потому и контекст, что должен быть контекстом, а не чем-то, что контекстом не является... mOleg писал(а): Вы бы все-таки описание почитали. Пытался. Но наша с Вами терминологическая путаница лежит глубже. Ваша лекция для меня: "- Вот какая фича! - А на фига?" Как будто кто-то заставил Вас писать какую-то вещь специально извращенным способом, и Вы смогли эту задачу победить.mOleg писал(а): сам сказал, что код будет проще Это не я сказал, а Ахо, Хопкрофт и Ульман. И привели все необходимые цифры. Там, где я делал что-то подобное, убеждался в том же.
|
Автор: | mOleg [ Вс май 05, 2013 23:41 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): Боюсь спрашивать почему. Я уже и код приводил. Смысл сделать проще, гибче, удобнее, а не заумнее. 1. из INTERPRET уходит распознавание чисел (INERPRET становится проще) 2. появляется возможность через словарь выразить что угодно - хоть картинки и звуки, хоть регулярные выражения, хоть файлы или отобразить на словарь ДЛЛ, вобщем, что душе угодно. 3. появляется управляемость процессом трансляции (захочу - только числа будут пониматься, захочу - вообще не будут пониматься). 4. появляется возможность работы с динамически изменяющимися данными и все это без дальнейших изменений ядра, т.е. - это как написания драйвера для ОС под собственные нужды. gudleifr писал(а): Это не я сказал, а Ахо, Хопкрофт и Ульман. И привели все необходимые цифры. Там, где я делал что-то подобное, убеждался в том же. отмазка не катит - код в студию! |
Автор: | gudleifr [ Пн май 06, 2013 00:03 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): Смысл сделать проще, гибче, удобнее, а не заумнее. Это я понял. Но в чем ошибка вышеприведенной схемы?mOleg писал(а): код в студию! Зачем изобретать велосипед? Вы не согласны с корифеями? Если уж на то пошло, выдерните из FOBOS распознавалку чисел и сравните со своей реализацией.
|
Автор: | Wlad [ Пн май 06, 2013 11:22 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): Зачем изобретать велосипед? Вы не согласны с корифеями? Если уж на то пошло, выдерните из FOBOS распознавалку чисел и сравните со своей реализацией. Да написали бы уж давно пару-десяток строчек и привели бы сопутствующие описания под каждый из подходов, раз вам всё досконально ясно по плюсам-минусам каждого из принципов и подходов!А мы б - полюбовались и урок извлекли... |
Автор: | gudleifr [ Пн май 06, 2013 11:34 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
Wlad писал(а): раз вам всё досконально ясно по плюсам-минусам каждого из принципов и подходов! Лучше Ахо и компании объяснить у меня все равно не получиться.Плюсы и минусы тоже давно ни для кого не тайна: примеры реализаций (если Вас не устраивают мои) можно посмотреть в Pattern Forth. Скорость и мощность "в принципе" можно оценить по программам lex или perl. Если я напишу, что умножать на бумажке в столбик быстрее, чем просто складывать, вы тоже будете требовать код? |
Автор: | dynamic-wind [ Пн май 06, 2013 13:51 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): Строчка: ([0-9]+°([0-9]+\')?([0-9]+\")?)|([0-9]+\'([0-9]+\")?)|[0-9]+\" читается все-таки проще. А так ещё проще: scanf("%u°%u'%u''", ... |
Автор: | gudleifr [ Пн май 06, 2013 13:57 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
dynamic-wind писал(а): А так ещё проще: scanf... А я открою большой секрет - кроме форматов и регулярных выражений как бы ничего пока и не придумано... Просто вторые немного мощнее и моя строчка может понимать не только %u°%u'%u'', но и %u°%u', и %u'', и "%u°%u''...
|
Автор: | Hishnik [ Пн май 06, 2013 15:10 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
dynamic-wind писал(а): Строчка: ([0-9]+°([0-9]+\')?([0-9]+\")?)|([0-9]+\'([0-9]+\")?)|[0-9]+\" читается все-таки проще. А где в этой строчке указано, что в градусе 60 угловых минут, а в минуте 60 угловых секунд? |
Автор: | gudleifr [ Пн май 06, 2013 15:16 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
Хищник писал(а): А где в этой строчке указано, что в градусе 60 угловых минут, а в минуте 60 угловых секунд? Дело вкуса. Зависит от реализации. Я, так как лентяй, тупо вбиваю код в узлы получившегося автомата. В "стандартных" реализациях, обычно ссылаются на отдельные лексемы, помечая их скобками. Пока автомат не сильно рекурсивен, проблем обычно не возникает.
|
Автор: | dynamic-wind [ Пн май 06, 2013 15:23 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
RE решит не задачу "преобразовать...", а подзадачу "выделить лексемы: три десятичных целых с такими-то разделителями". |
Автор: | Hishnik [ Пн май 06, 2013 15:31 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): Я, так как лентяй, тупо вбиваю код в узлы получившегося автомата. В итоге получается, что работа состоит из двух частей - реализация известного подхода плюс ее адаптация к особенностям решаемой задачи. Про особенности и разговор. |
Автор: | mOleg [ Пн май 06, 2013 19:02 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): Но в чем ошибка вышеприведенной схемы? если речь об этом: gudleifr писал(а): Я понимаю Ваш вариант так:(термины условные, стековые и управляющие операторы опускаю)ALSO КОНТЕКСТ-REFILLALSO КОНТЕКСТ-WORDALSO КОНТЕКСТ-NUMBERALSO КОНТЕКСТ-FINDСИСТЕМА то во всем. контекст - это список словарей в котором производится поиск лексемы, лексемой может быть что угодно, в том числе и числа. Реальный код я уже приводил и повторяться не буду. gudleifr писал(а): Зачем изобретать велосипед? чтобы показать, что ваш велосипед лучше, проще, красивее, а ваши утверждения не голословны. gudleifr писал(а): Вы не согласны с корифеями? Конечно! корифеев надо читать, думать над написанным, но делать собственные выводы и пользовать собственные решения согласно обстоятельствам. gudleifr писал(а): Если уж на то пошло, выдерните из FOBOS распознавалку чисел и сравните со своей реализацией. уж если на то пошло, приведите сами. |
Автор: | mOleg [ Пн май 06, 2013 19:05 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
dynamic-wind писал(а): RE решит не задачу "преобразовать...", а подзадачу "выделить лексемы: три десятичных целых с такими-то разделителями". кроме того, он не даст ввести вариации углов: 10' или 1°12" |
Автор: | gudleifr [ Пн май 06, 2013 19:40 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): показать, что ваш велосипед лучше По просьбам трудящихся:[url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\3.POLESNYE%20ALGORITMY\KONETNYE%20AWTOMATY[/url]. |
Автор: | mOleg [ Пн май 06, 2013 19:52 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): По просьбам трудящихся: во-первых, надо писать url=тут ссылка (все в скобках), за скобкой текст подписи, и затем закрывающий тег. во-вторых, где код? по ссылке стеб вижу, а кода не вижу. в третьих, конечные автоматы можно реализовывать по-разному, мой вариант по сути так же конечный автомат. Только вы обещали использовать в решении регулярные выражения, т.е. вы должны доказать, что ваш пример: gudleifr писал(а): Строчка:([0-9]+°([0-9]+\')?([0-9]+\")?)|([0-9]+\'([0-9]+\")?)|[0-9]+\"читается все-таки проще. не только проще читается, а еще и правильно работает. |
Страница 3 из 5 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |