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



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


Упражнения 4. 05 из 06) ( 7a. ) CREATE DVORAK 32 С, 123 С, 95 С, 37 С, 35 С, 33 С, 41 С, 45 С, 36 С, 94 С, 64 С, 43 С, 87 С, 56 С, 86 C, 90 С, 54 С, 91 С, 55 С, 53 С, 51 С, 49 С, 57 С, 48 С, 50 С, 52 С, 83 С, 115 С, 119 С, 61 С, 118 С, 122 С, 38 С, 65 С, 88 С, 74 С, 69 С, 62 С, 85 С, 73 С, 68 С, 67 С, 72 С, 84 С, 78 С, 77 С, 66 С, 82 С, 76 С, 34 С, 80 С, 79 С, 89 С, 71 С, 75 С, 60 С, 81 С, 70 С, 58 С, 47 С, 92 С, 93 С, 40 С, 42 С, 96 С, 97 С, 120 С, 106 С, 101 С, 46 С, 117 С, 105 С, 100 С, 99 С, 104 С, 116 С, 110 С, 109 С, 98 С, 114 С, 108 С, 63 С, 112 С, 111 С, 121 С, 103 С, 107 С, 44 С, 113 С, 102 С, 59 С, 63 С, 124 С, 125 С, 126 С, ( Это таблица преобразования клавиатуры QWERTY в Dvorak. Она начинается с пробела [ASCII 32], который имеет идентичиое значение для обоих типов клавиатуры. )

Блок 58 [58 :0] ( Глава 6. Упражнения 4. 06 из 06 ) ( 7и. ) : DKEY KEY DUP 31 > OVER 127 < AND IF 32 - DVORAK + С@ THEN ; ( DKEY используется также, где обычно ) ( 8. ) ( применяется KEY ) CREATE KEYBD FIND DKEY , FIND KEY , VARIABLE ?KBD ( В Форт-83 используйте ' вместо FIND. CONSTANT было бы быстрее, но скорость здесь не важна.) : CHOICE CR ." Type 1 for Dvorak" CR ." Type 2 for QWERTY" KEY DUP 49 - 0 MAX 1 MIN 2* KEYBD + @ ?KBD ! ; : NEWKEY ?KBD @ EXECUTE ; : TEST BEGIN NEWKEY EMIT 0 UNTIL ; ( Используется для теста клавиатуры. )

Блок 59 [59 :0] ( Глава 6. Упражнения 5. 01 из 03 ) ( 1.) 9 ARRAY NUMBERS : CLASS ( вес -- ) 10 / 0 МАХ 9 MIN ; : COUNTS ( n -- ) CLASS 1 SWAP NUMBERS +! ; ( 2.) 9 ARRAY WTSUM : !W ( вес счет -- ) DUP CLASS WTSUM +! ; ( 3. ) : .TOT-#S CR 10 0 DO I NUBMERS @ 6 .R LOOP ; : .TOT-WT CR 10 0 DO I WTSUM @ 6 .R LOOP ; : .AVE-WT CR 10 0 DO I WTSUM @ ( 4. ) I NUMBERS @ / 6 .R LOOP ; : !WT ( w -) DUP COUNTS !W .TOT-WT .TOT-#S .AVE-WT ; : INIT 10 0 DO DO 0 I WTSUM ! 0 I NUMBERS ! LOOP ; ( Используйте INIT для начального обнуления массива)

Блок 60 [60 :0] ( Глава 6. Упражнения 5. 02 из 03 ) 1 8 ARRAY NUMWTS : CLASS ( вес --) 10 / 0 МАХ 9 MIN ; ( Аналог.


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