Начальный курс программирования на языке Форт


МАССИВЫ - часть 2


так как ПРЕДЕЛЫ доставляет адрес первой ячейки нашего массива. Установим предельное значение температуры для горелки

1 равным 340° и запомним его, добавив два байта к адресу исходной ячейки:

Мы можем запомнить предельные значения для горелок 2, 3 и 4, добавляя к исходному адресу «смещения» 4, 6 и 8. Так как смещение всегда равно удвоенному номеру горелки, определим полезное слово: : ПРЕДЕЛ ( номер-горелки -- адрес-предельного-значения) 2* ПРЕДЕЛЫ + ;

чтобы по номеру соответствующей горелки, находящемуся в стеке, вычислять адрес, который отстоит от начала на величину соответствующего смещения1.

После всех преобразований полезность слова ПРЕДЕЛ возросла в такой степени, что мы можем переопределить слово ?ЖАРКО: : ?ЖАРКО ( температура номер-горелки — ) ПРЕДЕЛ @ > IF , " Опасно — Уменьшите нагрев! " THEN ;

1 1 Для начинающих. В этом случае номер горелки называется индексом массива. Индекс — это относительный указатель элемента памяти Умножая индекс на 2, мы получаем смещение относительно начала массива Смещение равно фактическому числу байтов между началом массива и искомым элементом.

2. Мы нумеруем горелки с 0 до 4, вместо того чтобы нумеровать их с I до 5. по той причине, что хотим использовать сами номера горелок в качестве индексов 1о, что большинство людей называют «первым» в какой-то последовательности, программисты называют «нулевым» При желании вы можете пронумеровать горелки с 1 по 5, но тогда вам придется добавлять в определении слов самого высокого уровня корректирующий фрагмент (простое выражение «1-»), как это всегда делается.

Примеры выполнения нового варианта этого слова приведены ниже:210 0 ?ЖАРКО ok

230 0 ?ЖАРКО Опасно — Уменьшите нагрев! ok

З00 1 ?ЖАРКО ok З50 1 ?ЖАРКО Опасно — Уменьшите нагрев! ok

и т.д.CREATE xxx ( -- ) Создание заголовка в словаре с именем xxx. xxx: ( -- a) Слово xxx при выполнении заносит в стек свой адрес

ALLOT ( n -- ) Резервирование в поле параметров слова, определенного последним, n дополнительных байт.




Начало  Назад  Вперед



Книжный магазин