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



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


I 2 * NSTRING + @ #! LOOP TIB 80 BLANK ; ( >IN увеличивается оператором WORD по мере разбора ) ( входного потока . ) : (( 41 WORD DROP ; IMMEDIATE (( Это действительно работает? Если да, то все это будет проигнорирована и не будет дано сообщения об ошибке ) : TEST (( Nor will this. ) ;

Блок 94 [94 :0] ( Глава 9. Упражнения 3. 01 иэ 03 ) ( 1. ) : NEWLEFT$ ( $адр1 n -- $адр2 ) 1 SWAP MID$ ; : NEWRIGHT$ ( $адр1 n - $адр2) ( 2.) OVER C@ OVER - 1+ SWAP MID$ ; : $CHAR ( с -- $адр ) 1 PAD С! PAD 1+ С! PAD ; ( 3.) : 1STCHAR ( $адр -- с) 1+ C@ ; ( 4.) : $SWAP ( $адр1 $адр2 --) DUP DUP С@ 1+ PAD SWAP CMOVE OVER SWAP OVER С@ 1+ CMOVE PAD SWAP OVER C@ 1+ CMOVE ; : $SWAP1 ( $aдр1 $адр2 --) DUP PAD $! OVER SWAP $! PAD SWAP $! ; ( Преимущество MMSFORTH-пакета операторов для работы со строками очевядио. ) ( 5. ) ( LEFT$ RIGHT$ CHR$ ASC $XCHG )

Блок 95 [95 :0] ( Глава 9. Упражнения 3 02 из 03 ) ( 6. ) : BUILD$ ( $адр -- ) >R BEGIN INKEY$ DUP DUP $. $" #" $COMPARE WHILE R@ SWAP $+ R@ $! REPEAT R> DROP ; ( 7.) : BUILD$1 ( $адр -- ) IN$ SWAP $! ; ( 8. ) ( Но здесь не используется # ) ( Опишите 30 CONSTANT SIZE и используйте SIZE всюду, где используется 10 в STOREPHONE , GETPBONE к т.д. Преимущество заключается в легокости изменения размера словаря) ( 9. ) : SHOWPHONES ( -- ) CR 10 ( или SIZE ) 0 DO 1 0 PHONES $. 2 SPACES I 1 PHONES $. I AVAILABLE + C@ 0= IF LEAVE ELSE CR THEN LOOP ;

Блок 96 [96 :0] ( Глава 9. Упражнения 3. 03 из 03 ) ( 10. ) : ERASEALL ( --) ." Are you sure you want to do this? (Y/N)?" KEY 89 IF 0 0 PHONES 600 0 FILL AVAILABLE 10 0 FILL ELSE ." Not done." THEN ;

Блок 97 [97 :0] ( Глава 9. Упражнения 4. 01 из 03 ) ( 1. ) : $IN PAD 1+ 255 OVER OVER BLANK ." ?" OVER OVER EXPECT -TRAILING PAD C! 1- ; ( используется ниже ) : D#IN1 ( -- d ) 0 0 $IN CONVERT DROP ; : D#IN2 ( -- d ) BEGIN $IN DUP 0 0 ROT CONVERT 4 ( 3 в Форт-83 ) ROLL 1+ = WHILE ." REDO " DROP DROP REPEAT ; : D#IN3 BEGIN $IN DUP 1+ C@ 45 = DUP >R IF 2+ THEN DUP 0 0 ROT CONVERT ROT ROT R>




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