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



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


Блок 114 [114 :0] ( Глава 10. Упражнения 6. 02 из 02 ) ( 4. ) : TOBLOCK ( n1 n2 n3 -- ) >R OVER SWAP BLOCK POSITION @ + >R 1+ OVER C@ R> OVER OVER + >R SWAP CMOVE C@ 1+ POSITION +! R> 1+ R> SWAP 1- С! UPDATE ; ( изменение POSITION полезно, т.к. оно позволяет размещать слова в блоке последовательно с минимальными издержками контроля. )

Блок 115 [115 :0] ( Глава 10. Упражнения 7. 01 из 02 ) ( 1. ) , : DATA-AVE ( первый последний т - средн. ) ROT ROT 1+ SWAP >R >R >R 0 0 R> R> R> OVER OVER - >R DO DUP I METFILE DATALOC @ SWAP >R 0 D+ R>

LOOP .S DROP R> 0 D/ DROP ; ( 2. ) : TEMP-AVE ( первый последний -- средн. ) 1+ SWAP >R >R 0 0 R> R> OVER OVER - >R DO I TEMP @ 0 D+ LOOP R> 0 D/ DROP ; ( 3. ) : CORRECT-TEMP ( начало последний -- ) 1+ SWAP DO I TEMP @ SWAP +! LOOP ;

Блок 116 [116 :0] ( Глава 10. Упражнения 7. 02 из 02 ) ( 4. ) : PUTFILE ( адр-файла адр-данных -- ) DUP @ 1+ 1 DO OVER OVER SWAP I 1- 1024 * + SWAP I 2 * @ BLOCK 1024 CMOVE UPDATE LOOP ; ( 5. ) : SAVEREC ( n1 n2 n3 n4 rec# -- ) DEPTH 5 < IF ." Wrong number of argument" ABORT ELSE METFILE RECLOC >R R@ 6 + ! R@ 4 + ! R@ 2+ ! R> ! THEN ;

Блок 117 [117 :0] ( Глава 10. Упражнения 8. 01 из 02 ) ( 1. ) VARIABLE DELIMITER 32 DELIMITER ! : GETWORD ( адр n -- PAD ) TIB PAD 100 + 80 CMOVE BLK ( Сохранение содержимого буфера) @ >R >IN @ >R TIB 80 0 FILL ( восстановление позднее) + TIB 64 CMOVE 0 BLK ! 0 >IN ! DELIMITER @ WORD DUP С@ 1+ PAD SWAP CMOVE PAD PAD 100 + TIB 80 CMOVE R> >IN ! R> BLK ! ; ( 2.) VARIABLE POSITION 0 POSITION ! : FILEWORD ( адр -- PAD ) TIB PAD 100 + 80 CMOVE BLK @ >R >IN @ >R TIB 80 0 FILL POSITION @ + TIB 64 CMOVE 0 BLK ! 0 >IN ! DELIMITER @ WORD DUP C@ 1+ PAD SWAP CMOVE PAD DUP С@ 1+ POSITION +! PAD 100 + TIB 80 CMOVE R> >IN ! R> BLK ! ;

Блок 118 [118 :0] ( Глава 10. Упражнения 8. 02 из 02 ) ( 3.) : FILENUMBER ( адр - n ) FILEWORD NUMBER DROP ; ( 4.) : TOFILE ( адр1 адр2 -- ) DUP >R POSITION @ + SWAP DUP C@ DUP POSITION +! SWAP 1+ ROT ROT CMOVE DELIMITER @ POSITION @ R> + C! 1 POSITION +! ;




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