Forth http://fforum.winglion.ru/ |
|
Вывод последовательности чисел. http://fforum.winglion.ru/viewtopic.php?f=19&t=2759 |
Страница 2 из 2 |
Автор: | Ethereal [ Сб сен 17, 2011 19:04 ] |
Заголовок сообщения: | Re: Вывод последовательности чисел. |
Даже можно чуток соптимизировать : : SEQ ( u1 u2 -- ) |
Автор: | Ethereal [ Вс сен 18, 2011 02:22 ] |
Заголовок сообщения: | Re: Вывод последовательности чисел. |
Кстати, мой алго выдает тоже : 0 111 SEQ 0 1 10 11 100 101 110 111 Ok |
Автор: | chess [ Пн сен 19, 2011 09:25 ] |
Заголовок сообщения: | Re: Вывод последовательности чисел. |
Ethereal писал(а): Кстати, мой алго выдает тоже : 0 111 SEQ 0 1 10 11 100 101 110 111 Ok Это корректное решение. По сравнению с моим более сложное из наличия инструментального контекста(из-за манипуляций с параметрами на стеке). Не знаю как вы, а я написал его за один раз (не отлаживая) и сразу получил верный результат. Кстати можно решение модифицировать для числа не из одной цифры в каждой позиции исходных чисел, а из двух цифр в каждой позиции. И на тех же входных числах оно даст другой результат. Решение, например, ваше чуть изменится: Код: : SEQ ( u1 u2 -- ) 2DUP 1+ SWAP DO 2DUP I BEGIN DUP 100 MOD 2OVER 100 MOD SWAP 100 MOD SWAP 1+ WITHIN WHILE 100 / ROT 100 / ROT 100 / ROT DUP 0= UNTIL I . THEN DROP 2DROP LOOP 2DROP ; STARTLOG 0 111 SEQ лог. Код: 0 1 2 3 4 5 6 7 8 9 10 11 100 101 102 103 104 105 106 107 108 109 110 111
Ok |
Автор: | Ethereal [ Пн сен 19, 2011 23:59 ] |
Заголовок сообщения: | Re: Вывод последовательности чисел. |
Ты бы пояснил, что за версией Форта ты пользуешься, что он вот это chess писал(а): 0 a! 0 c! \ служебные переменные распознает как нечто осмысленное.
10 b] 10 e] 10 t] \ место в памяти для цифр нач. кон. и текущего чисел q>s( is a is c 10 0 DO c 10 /MOD is c c IF I a + C! ELSE I a + C! I LEAVE THEN LOOP ) |
Автор: | Ethereal [ Вт сен 20, 2011 00:07 ] |
Заголовок сообщения: | Re: Вывод последовательности чисел. |
А то так и просится вырваться ворчалка : chess писал(а): По сравнению с моим более сложное из наличия инструментального контекста(из-за манипуляций с параметрами на стеке). По сравнению с твоим оно на Форте.
|
Автор: | chess [ Вт сен 20, 2011 09:44 ] |
Заголовок сообщения: | Re: Вывод последовательности чисел. |
Ethereal писал(а): Ты бы пояснил, что за версией Форта ты пользуешься, что он вот это Исходники под расширение spf я давал(http://chess2007.nm.ru/~chess.zip) Ethereal писал(а): По сравнению с твоим оно на Форте. Точнее на исходном spf. У меня решение на расширенном spf. Основная цель моих расширений - ввести средства для исключения оперативного инструментального контекста из форта и тем самым поднять планку сложности решаемых задач. Да, еще замечание по вашему решению. Много лишней работы по перебору ненужных(невыводимых) значений чисел. Проще ввести понятие переноса и напрямую формировать из предыдущего числа последующее. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |