Язык программирования Форт



Приложение Д. Ответы к упражнениям - часть 25


Блок 119 [119 :0] ( Глава 10. Упражнения 8. 01 из 01 ) ( 1.) : NEXTFIELD ( -- ) ADDFILE FILEWORD DROP ; ( 2.) : NEXTREC ( -- ) 4 0 DO NEXTFIELD LOOP ; ( 3.) : FINDPHONE ( -- ) PAD SEARCH$ $! 0 POSITION ! SEARCH-NAME 3 0 DO NEXTFIELD LOOP ADDFILE FILEWORD COUNT TYPE ; ( 4. ) : DELREC ( -- ) POSITION @ ADDFILE + NEXTREC POSITION @ DUP >R ADDFILE + SWAP FINDEOF POSITION @ 4 + R> - CMOVE ;

Блок 120 [120 :0] ( Глава 11. Упражнения 1. 01 из 02 ) : 2VARIABLE ( -- ) CREATE 0 , 0 , ; : 2VARIABLE ( n -- ) CREATE , , @ @ ; ( Последнее описание не является стандартным ) ( 2.) : #CONSTANT ( -- ) CREATE 34 ЦORD DUP C@ 1+ ALLOT ; ( Строка переносится по адресу HERE с помощью WORD и резервируется память для поля параметров производного слова. ) ( 3. ) : RESERVE ( n --) CREATE DUP HERE SWAP ALLOT SWAP 0 FILL ; ( 4.) : BLOCKARRAY ( n -- ) CREATE , 1024 ALLOT ;

Блок 121 [121 :0] ( Глава 11. Упражнения 1. 02 из 02 ) ( 5.) : GETBLOCK ( адр - ) DUP @ BLOCK SWAP 2+ 1024 CMOVE ; ( 2+ необходимо, чтобы обойти откомпилированный номер блока.) : PUTBLOCK ( адр --) DUP @ BLOCK SWAP 2+ SWAP 1024 CMOVE UPDATE ; ( 6.) : B@ ( n1 адр -- n2 ) SWAP 2 * + @ ; : В! ( n1 n2 адр -- ) SWAP 2 * + ! ;

Блок 122 [122 :0] ( Глава 11. Упражнения 2. 01 из 04 ) ( 1. ) : 2CONSTANT CREATE , , DOES> DUP @ SWAP 2+ @ SWAP ; ( 2. ) : MAKEDATE ( месяц день год -- ) CREATE , , , DOES> >R R@ @ 0 TYPE ; ( 3. ) : COUNTER ( n -- ) CREATE , DOES> 1 SWAP +! ; ( Получение значения счетчика командами ' COUNTIT @ в орт-79 иля ' COUNTIT >BODY @ в Форт-83. ) ( 4. ) ( Введите производное слово оператора COUNTER в описание слова; счетчик будет инкрементироваться при каждом обращении. Сброс счетчика должен проводится при каждом запуске программы. )

Блок 123 (123 :t]: ( Глава 11. Упражнения 2. 02 из 04 ) ( 5.) : %COLOR ( n -- ) 100 255 */ 3 .R ." % " ; ( Это слово упрощает следующие три слова. ) : CYAN ( n - ) %COLOR ." Cyan " ; : YELLOW ( n - ) %COLOR ." Yellow " ; : MAGENTA ( n - ) %COLOR ." Magenta " ; : COLOR ( n1 n2 n3 -- ) CREATE ROT , SWAP , , DOES> >R R@ @ CYAN R@ 2+ @ YELLOW R> 4 + @ MAGENTA ; ( CYAN.


Содержание  Назад  Вперед