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



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


Деление на 0 является ошибкой ) Блок 21 [21 :0] ( Глава 4. Упражнение 1. 02 из 02 ) (2.) : LINE ( N -- строка ) 50 / ; (3.) : POS ( -- pos ) 50 MOD ; ( 4.) : POSLINE ( N длина -- роs строка ) /MOD ; ( 5.) : NEW/ ( n1 n2 -- n3) /MOD SWAP IF DUP 0 < IF 1+ THEN THEN ; : NEWMOD ( n1 n2 -- n3 ) 2DUP N/ * - ; ( 6.) ( 2000 100 30 */ . дает 6666 2000 30 /MOD 100 * SWAP 100 * 30 / + . . также дает 6666 2000 100 30 */MOD . . дает 6666 20 2000 30 /MOD 100 * SWAP 100 * 30 /MOD RОТ + . . дает 6666 20 Преимущество */ очевидно, тах как оно не дает переполнения)

Блок 22 [22 :0] ( Глава 4. Упражнения 2. 02 из 02 ) : .LARGEST-3 ( n1 n2 n3 -- ) MAX MAX . ; ( 2.) : 79.SMALLEST-3 ( n1 n2 n3 -- n1 n2 n3 ) 3 PICK 3 PICK 3 PICK MIN MIN ; ( FORTH-79 ) : 83.SMALLEST-3 ( n1 n2 n3 -- nl n2 n3 ) 2 PICK 2 PICK 2 PICK MIN MIN ; ( FORTH-83 ) ( 3. ) : TREE>5? ( n1 n2 n3 -- f ) 5 > MAX MAX 5 > ; ( 4. ) : ALL>5? ( n1 n2 n3 -- f ) 5 > MIN MIN 5 > ; ( 5.) : >LOWER2? ( n1 n2 n3 -- f ) ROT ROT MAX > ; ( 6.) : TEMPDIFF ( n1 n2 n3 ) - ABS ;

Блок 23 [23 :0] ( Глава 4. Упражнения 2. 02 из 02 ) ( 7. ) : LARCER-MAG ( n1 n2 -- n3 ) ABS SWAP ABS MAX ; ( 8. ) : NEAREST-0 ( n1 n2 -- n3 ) ABS SWP ABS MIN ; ( 9 ) : -ABS ( n -- -n или -n -- -n ) ABS NEGATE ; ( 10. ) : OTHER-QUAD ( x y -- -x -y и т.д.) NEGATE SWAP NEGATE SWAP ; ( 11. ) ; NEWNEGATE -1 * ;

Блок 24 [24:0] (Глава 4. Упражнения 3. 01 из 02 ( 1. ) : PYRVOL ( область h -- v) * 2 /MOD + ; ( 2. ) : F->C ( f -> c ) 32 - 5 9 */MOD SWAP 10 9 */ 5 + 10 / + ; ( SWAP 10 9 */ 5 t 10 / по существу округляет в большую сторону, добавляя к числу 0.5 . ) : 10F->10C (10f -- 10с ) 320 - 9 5 */MOD SWAP 100 90 */ 50 + 100 / + ; ( Вводите значение температуры, умноженое на 10, в результате получается та же, но округленная величина. Это способ работает с десятыми долями целого числа. )

Блок 25 [25 :0] ( Глава 4. Упражнения 3. 02 из 02 ) ( 3.) ( а. факторизируем [а + в]/c ) : (a.+.b)./.c ( a b c -- n) ROT ROT + SWAP / ; ( б. факторизируем [a + b/c]/c ) : (a.+.b./.c.)./.c ( а b с -- n) SWAP ОVER / ROT + SWAP / ; ( в.


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