Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:07

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Вывод последовательности чисел.
СообщениеДобавлено: Сб сен 17, 2011 19:04 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Даже можно чуток соптимизировать :

: SEQ ( u1 u2 -- )
2DUP 1+ SWAP
DO
2DUP I
BEGIN
DUP 10 MOD 2OVER 10 MOD SWAP 10 MOD SWAP 1+ WITHIN
WHILE
10 / ROT 10 / ROT 10 / ROT
DUP 0=
UNTIL
I .
THEN
DROP 2DROP
LOOP
2DROP
;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вывод последовательности чисел.
СообщениеДобавлено: Вс сен 18, 2011 02:22 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Кстати, мой алго выдает тоже :

0 111 SEQ
0 1 10 11 100 101 110 111 Ok


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вывод последовательности чисел.
СообщениеДобавлено: Пн сен 19, 2011 09:25 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
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

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вывод последовательности чисел.
СообщениеДобавлено: Пн сен 19, 2011 23:59 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Ты бы пояснил, что за версией Форта ты пользуешься, что он вот это
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 )
распознает как нечто осмысленное.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вывод последовательности чисел.
СообщениеДобавлено: Вт сен 20, 2011 00:07 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
А то так и просится вырваться ворчалка :
chess писал(а):
По сравнению с моим более сложное из наличия инструментального контекста(из-за манипуляций с параметрами на стеке).
По сравнению с твоим оно на Форте.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вывод последовательности чисел.
СообщениеДобавлено: Вт сен 20, 2011 09:44 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Ethereal писал(а):
Ты бы пояснил, что за версией Форта ты пользуешься, что он вот это

Исходники под расширение spf я давал(http://chess2007.nm.ru/~chess.zip)
Ethereal писал(а):
По сравнению с твоим оно на Форте.

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

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB