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



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


Блок [81 :0] ( Глава 1. Упражнение 3. 01 из 02 ) ( 1. ) : .4PICK ( n1 n2 n3 n4 -- n2 nЗ n4) >R >R >R . R> R> R> ; ( Do-loop нельзя применять, так как там испольэуется стек возвратов ) ( 2.) : DUP1 ( n -- n n ) >R R@ R> ; ( 3. ) : J1 R> R> R> R@ SWAP >R SWAP >R SWAP >R ; ( 4. ) : К R> R> R> R> R> R@ SWAP >R SWAP >R SWAP >R SWAP >R SWAP >R ; ( 5. ) : J' R> R> R> R> R@ SWAP >R SWAP >R SWAP >R SWAP >R ;

Блок 82 [82 :0] ( Глава 8. Упражнения 3. 02 из 02 ) ( 6. ) : NEWLEAVE R> R> DROP R@ >R >R ; ( 7.) ( Выполним R> R> DROP, чтобы записать новое число, а затеи исполним >R >R . ) ( 8.) ( I 10 = IF R> DROP 15 >R THEN ) ( 9. ) : +INDEX ( n -- ) R> SWAP R> + >R >R ; ( 10. ) ( Возникает бесконечный цикл, так как индекс всегда увеличивается до того, как он будет уменшен оператором LOOP. Такям образом индекс никогда не достигнет предела.)

Блок 83 [83 :0] ( Глава 8. Упражнение 4. 01 из 02 ) ( 1.) VARIABLE N 1000 N ! : POPSIZE CR 501 0 DO N @ 200 / N +! I 1+ 50 MOD 0= IF I 1+ ." Day " U. N @ ." Size " U. CR THEN LOOP 1000 N ! ; ' ( Население не может увеличиватся менее чем на 200 ) ( 2. ) 1000 N ! : POPDOUBLE CR N @ 2 * 10000 0 DO N @ 200 / N +! DUP N @ R BEGIN DEPTH ROLL DUP . R> 1- >R R@ 0= UNTIL R> DROP ; ( 2. ) : ST-SUM ( -- ) DEPTH 0= IF 0 EXIT THEN 0 BEGIN + DEPTH 1 = UNTIL ; : ST-SUM1 ( -- ) DEPTH 0= IF 0 EXIT THEN DEPTH 1 = IF EXIT THEN DEPTH 1- 0 DO + LOOP ; ( 3. ) VARIABLE TOTAL 500 TOTAL ! : ?YEAR1 ( -- ) CR BEGIN DUP 4 .R TOTAL @ 10 / DUP 6 .R TOTAL +! 1+ TOTAL @ DUP 6 .R CR 1000 >

UNTIL 500 TOTAL ! ;

Блок 86 [86 :0] ( Глава 8. Упраиенмя 5. 02 из 03) ( 4.) VARIABLE #MICE 1000 #MICE ! : MICE ( -- ) #MICE @ 2 * 0 BEGIN #MICE @ 200 / #MICE +! 1+ OVER #MICE @ 0= IF DROP DROP EXIT ELSE KEY DUP 13 <> TNEN WHILE DUP 8 = ( если backspace ... ) IF NEISPAN @ 0 = ( если NEWSPAN равен 0, игнорируем) IF DROP ELSE -1 NEWSPAN +! EMIT THEN ELSE DUP EMIT OVER NEWSPAN @ + C! 1 NEWSPAN +! THEN REPEAT DROP DROP DROP ; ( Из цикла do-loop не просто осуществить условный переход туда, куда надо и выйти, так как мы это здесь сделали.)




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