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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 16, 2008 22:09 
Не в сети

Зарегистрирован: Сб янв 26, 2008 18:23
Сообщения: 71
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код:
VARIABLE Позиция

: ВХодное_Число  S" 012345000" ;

CREATE Счётчик_Цифр 10  ALLOT
CREATE ВЫходное_Число ВХодное_Число  2* ALLOT DROP

: Цифру_в_Позицию   ( CH -- ) 
  48 + ВЫходное_Число  Позиция @ + C!  Позиция @ 1+ Позиция ! 
;

: Подсчёт_Цифр ( --)
  ВХодное_Число  OVER + SWAP
        DO I C@ 48 -  Счётчик_Цифр + DUP C@ 1+ SWAP C!
       LOOP
;

: Создание_Числа_по_Правилу ( --)   
   ВХодное_Число  OVER + SWAP
        DO  I C@ 48 - DUP  DUP Счётчик_Цифр + C@ 1 =   
                      IF DUP Цифру_в_Позицию Цифру_в_Позицию
                      ELSE Цифру_в_Позицию
                      THEN
        LOOP
;

: Вывод_Результата  ( --) 
  ВХодное_Число TYPE CR
  ВЫходное_Число Позиция @ TYPE
;

: BOSS  ( --) 
  Подсчёт_Цифр 
  Создание_Числа_по_Правилу
  Вывод_Результата
;

CR  BOSS CR  KEY DROP BYE


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 16, 2008 22:12 
Не в сети

Зарегистрирован: Сб янв 26, 2008 18:23
Сообщения: 71
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
тоже самое что и выше :))


Код:
VARIABLE A

: NUM  S" 012345000" ;

CREATE CNT 10  ALLOT
CREATE BUFF NUM  2* ALLOT DROP

: S+   ( CH -- )  48 + BUFF  A @ + C!  A @ 1+ A !  ;
: COUNTED ( --) NUM OVER + SWAP DO I C@ 48 -  CNT + DUP C@ 1+ SWAP C! LOOP ;
: MAKE ( --) NUM OVER + SWAP DO I C@ 48 - DUP  DUP CNT + C@ 1 = IF DUP S+ S+ ELSE S+ THEN LOOP ;
: SHOW  ( --)  NUM TYPE CR BUFF A @ TYPE ;
: BOSS  ( --)  COUNTED MAKE SHOW ;

CR  BOSS CR  KEY DROP


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

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


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

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


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

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