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



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


IF DNEGATE THEN 4 ( 3 в Форт-83 ) ROLL 1+ 4 ( 3 в Форт-83 ) ROLL = WHILE ." REDO " DROP DROP REPEAT ;

Блок 98 [98 :0] ( Глава 9, Упражнения 4. 02 из 03 ) (2. ) : #IN. ( -- n ) BEGIN $IN DUP 1+ C@ 45 = DUP >R IF 1+ THEN DUP 0 0 ROT CONVERT ROT ROT R>

IF DNEGATE THEN 4 ( 3 для Форт-83 ) ROLL 1+ 4 ( 3 ) ROLL DUP C@ 46 = 0= >R = WHILE R> DBOP ."REDO " DROP DBOP REPEAT R> IF DROP THEN ;

Блок 99 [99 :0] ( Глава 9. Упражнения 4. 03 из 03 ) ( 3.) : $IN3 ( -- n ) $IN NUMBER DROP ; ( 4. ) : INFIX ( -- n ) 32 WORD NUMBER DROP ; ( Это слово упрощает последующие описания. ) : PLUS ( n1 -- n2 ) INFIX + ; ( 5.) : TIMES ( n1 -- n2 ) INFIX * ; : DIVIDEDBY ( n1 -- n2 ) INFIX / ; : MINUS ( n1 -- n2 ) INFIX - ; : EQUALS ( n --) . ;

Блок 100 [100 :0] ( Глава 10, Упражнения 1. 01 из 01 ) ( 1.) ( Приведенное здесь описание продолжает работу после загрузки следущего блока. Предшествующее описание этого не делает и остаток блока будет проигнорирован. ( 2.) : N--> 0 >IN ! BLK @ ." Block " . ." loaded" CR 1 BLK +! ; ( 3. ) : LISTS ( n1 n2 -- ) OVER + SWAP DO CR CR ." Block " I DUP . LIST CR CR CR CR LOOP ; ( 4.) : ^ ( -- ) CR ." Block " BLK @ . >IN @ 64 /MOD ." Line " . ." Character " 2 - . CR ; IMMEDIATE ( 5. ) ( FORGET TASK 20 LOAD )

Блок 101 [101 :0] ( Глава 10. Упражнения 2. 01 из 02 ) ( 1. ) : SLOAD ( n -- ) DUP 2 MOD IF ." Can't load odd blocks" ABORT THEN LOAD ; ( или ) ( : SLOAD1 ) ( n -- ) ( DUP 2 MOD ABORT" Can't load odd blocks" LOAD ; ) ( 2. ) : SLIST ( n -- ) DUP 2 MOD + LIST ; ( 3. ) : SVIEW ( n -- ) DUP 2 MOD 0= - ( + в Форт-83 ) LIST ; ( 4. ) : SLISTS ( n1 n2 -- ) 2 * SWAP DUP 2 MOD + SWAP OVER + SWAP DO CR CR ." Block " I DUP . LIST CR CR CR CR 2 +LOOP ;

Блок 102 [102 :0] ( Глава 10. Упражнения 2. 02 из 02 ) ( 5. ) : SVIEWS ( n1 n2 ) 2 * SWAP DUP 2 MOD 0= - ( + в Форт-83 ) SWAP OVER + SWAP DO CR CR ." Block " I DUP . LIST CR CR CR CR 2 +LOOP : ( 6.) : S--> 0 >IN ! BLK +! ; IMMEDIATE




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