Forth http://www.fforum.winglion.ru/ |
|
преобразование строкового представления угла вида 12°12'12" http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2929 |
Страница 4 из 5 |
Автор: | gudleifr [ Пн май 06, 2013 19:59 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): во-первых, надо писать... Не помогает. Не жрет движок сложных ссылок.mOleg писал(а): кроме того, он не даст ввести вариации углов: 10' или 1°12" Это неправда.mOleg писал(а): во-вторых, где код? по ссылке стеб вижу, а кода не вижу. В смысле? Код RECEPTING не опубликован? Слово/формат RECEPTOR тоже? В чем проблема, добавить пару читающих слов (есть у меня в коде FOBOS или можете взять свои)? Да и интуитивно понять псевдокод немного проще, чем тот, что в начале.
|
Автор: | gudleifr [ Вт май 07, 2013 18:38 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
По продолжающимся просьбам добавил реализацию на Win32Forh. |
Автор: | mOleg [ Чт май 09, 2013 20:42 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): По продолжающимся просьбам добавил реализацию на Win32Forh. прошу таки в данную тему код продублировать, потому как нехорошо ссылки давать. |
Автор: | gudleifr [ Чт май 09, 2013 20:49 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): прошу таки в данную тему код продублировать Нет. Т.к. данный Форум, по сути, прекратил свою деятельность в области Forth, не считаю нужным искусственно насыщать его материалами, естественно расположенными там, где следует.(Уже обжегся со своими первыми Forth-статьями). Желаю и Вам как можно быстрее организовать свой fork-ресурс, иначе все наработки здесь просто пропадут. |
Автор: | Hishnik [ Чт май 09, 2013 20:51 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): данный Форум, по сути, прекратил свою деятельность в области Forth Не прекратил. gudleifr писал(а): иначе все наработки здесь просто пропадут Не пропадут. |
Автор: | mOleg [ Чт май 09, 2013 20:54 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
от дублирования хуже не станет. Если форума не станет, буду искать другой ресурс. |
Автор: | gudleifr [ Вт май 14, 2013 14:58 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): ... Извинения. В очередной раз попытался прочесть Ваши статьи (в целях преодоления терминологической пропасти), но не смог. Введя в самом начале крайне неудачные VFM и "транслятор" Вы загнали себя в рамки, из которых невозможно вылезти... Весь мат.аппарат идет лесом...
|
Автор: | mOleg [ Пт май 17, 2013 21:23 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): По продолжающимся просьбам добавил реализацию на Win32Forh. регулярные выражения не используются(хотя утверждалось, что как два пальца), видны только сомнительные ссылки, код привести в теме вас ломает. вобщем, я так понимаю, слив засчитан. |
Автор: | gudleifr [ Пт май 17, 2013 21:28 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): вобщем, я так понимаю, слив засчитан. Не понял смысла наезда. Вы что-то не поняли? Не нашли исходников? Просто, на что-то обиделись?
|
Автор: | mOleg [ Пт май 17, 2013 21:36 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
gudleifr писал(а): Не понял смысла наезда. не вижу желания с вашей стороны нормально общаться, увы. На просьбы предоставить нормальный код отделываетесь отговорками, по ссылке не видно использования регулярных выражений (за что я собственно и зацепился), на просьбу опубликовать ваш код на этом форуме видны только отговорки (оно и понятно, заявленных регулярных выражений в коде не наблюдается). |
Автор: | gudleifr [ Пт май 17, 2013 21:56 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): заявленных регулярных выражений в коде не наблюдается А он был заявлен? Было заявлено решение, основанное на конечном автомате. Написать код постройки конечного автомата на основе регулярного выражения? Я же не прошу Вас привести код, пишущий Ваши Case-ы...Вы действительно не понимаете, что нарисовать конечный автомат по регулярному выражению, это элементарное действие? Или, все-таки, вечер пятницы? |
Автор: | Alex [ Пн май 20, 2013 12:26 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
Если внимательно посмотреть на строковое представление угла 12°12'12" то можно заметить, что запись немного напоминает стековые манипуляторы. А в них символ 0..9 означает положить на стек значение соответствующей ячейки. По аналогии можно построить следующий алгоритм преобразования строкового представления угла в секунды. Есть заранее отведенные и заполненные 7 массивов из 10 ячеек двойной длины. массив единиц секунд заполнен значеничями 0,1,2,,9 следующий массив десятков секунд заполнен 0,10,20,,50(здесь используется только 6 элементов массива). Массив единиц минут заполнен значениями 0,60,120,,540 массив десятков минут надо заполнить 6 елементов 0,600,1200,,3000. массив единиц градусов - 0,3600,7200,,32400, массив десятков градусов - 0,36000,72000,,324000 ну и последний массив сотен градусов нужно заполнить 4 элемента 0,360000,720000,1080000 пусть массив единиц секунд будет массив номер 1, а массив сотен градусов - массив номер 7. сканировать строковое представление угла будем от последнего символа строки к первому. казалось бы мусорные символы ° ' " у нас будут выполнять полезную функцию - принудительную установку номера текущего массива. символ " устанавливает текущий массив в 1 (массив единиц секунд), символ ' устанавливает текущий массив в 3 (массив единиц градусов), символ ° устанавливает текущий массив в 5 (единицы градусов) символы 0..9 означают что надо выбрать из текущего массива элемент с индексом 0..9, просуммировать и увеличить номер текущего массива на еденицу. Всего надо сложить до 7 чисел. Вот такой получился манипуляторный преобразователь строкового представления угла. подключить его можно как и у Олега через словарь, или например запускать его предварительно проверив входную строку на корректность регулярным выражением. |
Автор: | VoidVolker [ Пн май 20, 2013 13:16 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
Эмм... А если просто посмотреть, то можно увидеть три числа, два из них надо умножить на константы и прибавить третье: Код: : gms>s \ ( a u - n )
2DUP OVER + SWAP DO I C@ 0x30 0x40 WITHIN 0= IF 0x20 I C! THEN LOOP EVALUATE ROT 3600 * ROT 60 * + + ; |
Автор: | mOleg [ Пн май 20, 2013 14:15 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
Alex писал(а): Если внимательно посмотреть на строковое представление угла 12°12'12"то можно заметить, что запись немного напоминает стековые манипуляторы. вообще, было бы интересно увидеть реализацию манипулятора Alex писал(а): подключить его можно как и у Олега через словарь, или например запускать егопредварительно проверив входную строку на корректность регулярным выражением это вторично вобщем-то. Мне нравится вариант, когда перед числом находится префикс: Hex 3AE9 Oct 654 или в нашем случае: Alp 12°12'12" VoidVolker писал(а): А если просто посмотреть, то можно увидеть три числа, два из них надо умножить на константы и прибавить третье: можно, но нужно учесть, что полная запись 12°12'12" часто не нужна, удобно, скажем 12°12" или 12'12" так же как и 12", 12' |
Автор: | VoidVolker [ Пн май 20, 2013 14:25 ] |
Заголовок сообщения: | Re: преобразование строкового представления угла вида 12°12' |
mOleg писал(а): можно, но нужно учесть, что полная запись 12°12'12" часто не нужна, удобно, скажем 12°12" или 12'12" так же как и 12", 12' Код: ms>s gm>s Не? А еще можно без всех этих кружочков, апострофов и кавычек просто написать три числа. Вообще, ничего против топика не имею, отвечал на сообщение Alex'а. Я вот к чему: зачем так все усложнять-то? mOleg писал(а): Мне нравится вариант, когда перед числом находится префикс: Hex 3AE9 Oct 654 ИМХО, 0x как-то привычнее, а hex - переключение системы счисления. |
Страница 4 из 5 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |