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



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


Блок 64 [64 :0] ( Глава 7. Упражнения 1. 03 из 03 ) ( 6.) : D= D- 0= SWAP 0= AND ; ( 7.) : COMP DUP 0< NEGATE SWAP 0> + ; \ Блок 65 [65 :0] ( Глава 7. Упражнения 2. 01 из 02 ) ( 1.) : NEWABS ( -n -- n ) или n -- n ) ?DUP 0< IF NEGATE THEN ; ( 2.) : /0? ( n --) ?DUP IF / ELSE DROP ( 3. ) ." Divide by 0 error" THEN ; : TYPE IF TYPE ELSE DROP DROP THEN ; (v4.) : 1TASK ." A " ; : 2TASK ." T " ; : 3TASK ." X" ; : ?WHICH-TASK ( -- ) KEY DUP 65 = IF 1TASK ELSE DUP 84 = IF 2TASK ELSE DUP 88 = IF 3TASK THEN THEN THEN DROP ;

Блок 66 [66 :0] ( Глава 7. Упражнения 2. 02 из 02 ] ( 5.) : UPPER-KEY ( -- с) KEY DUP 96 > OVER 123 < AND IF 223 AND THEN ; ( 6.) : NO-CONT-KEY ( -- с ) UPPER-KEY DUP 32 < IF 64 + THEN ; ( 7.) : ALPHA-KEY ( -- с ) NO-CONT-KEY DUP 47 > OVER 58 < AND IF DROP THEN ; ( 8. ) : D->S ( d -- n или d -- d ) ?DUP IF THEN : ( : D->S DUP 0= IF DROP THEN ; ( также работает, но медленнее.)

Блок 67 [67 :0] ( Глава 7. Упражнение 3. 01 и 03 ) ( 1. ) : ?END ." Do you want to quit? (Y/N) " КEY 89 = IF CR ." Do you want to save the stack? (Y/N) " KEY 118 = IF ." OK" CR QUIT ELSE ." OK" CR ABORT THEN THEN ; ( 2. Нет. ) ( 3. ) ( Первое остановит программу, вторые два обеспечат только выход из слова ?223 .) ( 4. Нет. ) ( 5. ) : 0? ( n1 -- n2) ?DUP 0= IF ." Number is zero " ( 6. ) ABORT THEN ; : =IF-ABORT = IF ABORT THEN ;

Блок 68 [68 :0] ( Глава 7. Упражнения 3. 02 из 03 ] ( 7. ) : +RANGE-ABORT ( n1 n2 -- n1 n2 ) OVER ОVER 0 ROT 0 D+ 0= 0= IF ." Add overflow error ? " ABORT THEN ; ( 8.) : +*RANGE-ABORT +RANCE-ABORT ОVER ОVER 0 ROT 0 D+ 0= 0= IF ." Multiply overflow error ? " ABORT THEN ; ( 9.) : STACK-TOO-BIG ( -- ) DEPTH 15 > IF ." Stack too big ?" ABORT THEN ;

Блок 69 [69 :0] ( Глава 7. Упражнения 3. 03 из 03 ) ( 10a. ) : DOTHAT ." That " ; : DOOTHER ." Other " ; : 1TASK ( n -- ) 0= IF DOTHAT THEN ; ( 10b. ) : 2TASK ( n -- ) IF DOTHAT THEN ; ( 10c. ) : 3TASK ( n -- ) 0= IF DOTHAT ELSE DOOTHER THEN ; ( 10d. ) : 4TASK ( n -- ) IF DOTHAT DOOTHER THEN ;




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