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



         

Глава 6. Хранение чисел в памяти - часть 14


Определите константу (1->2), которая переводила бы содержимое переменной из 1LENGTH в единицы длины переменной 2LENGTH, т.е. если в 1LENGTH даны значения в дюймах, а в 2LENGTH в футах, то значение, которое выдаст слово 1->2, должно быть равно 12. Напишите слово для преобразования содержимого 1LENGTH и запоминания его в переменной 2LENGTH. Как изменить программу, чтобы вместо дюймов и футов слово для преобразования единиц длины работало бы с сантиметрами и метрами? Это покажет вам, насколько полезны константы и почему им нужно присваивать значения при исходном определении. 5. Напишите слово с именем X->Y, которое находило бы значение Y, если в стек кладется значение Х в соответствии с уравнением Y = AX + В , считая, что А и В предварительно определены как переменные. Понятно ли вам, как можно изменить действие слова X->Y, не меняя его определения? Понятно ли вам также, почему использование переменных делает программу более гибкой и удобочитаемой ? 6. Если слово INCHES (дюймы)- это переменная, в чем различие исполнения операций INCHES и ' INCHES в стандарте Форт-79? 7. Предположим, что слово TO-INCHES (в_дюймы) представляет константу, в которой хранится коэффициент преобразования единиц, т.е. в нем должно содержаться число 12. если требуется преобразование числа футов в число дюймов, и число 36,- если преобразование числа ярдов в число дюймов. В предположении, что вы пользуетесь стандартом Форт-83, дайте определение двух слов SET-FEET (установить_футы) и SET-YARDS (установить_ярды) для записи соответственно чисел 12 36 в константу TO-INCHES. Можно ли использовать слова ' и >BODY?

О векторном исполнении операторов

Очень важным применением массивов (векторов) является управление программой для избирательного исполнения одного из нескольких возможных слов. Каждое слово имеет свой адрес, связанный с ним, который можно использовать для исполнения слова, фактически не вызывая его по имени. Чтобы понять, как это делается, определим сначала слово : MESSAGE ." Message" ; и затем введем FIND MESSAGE




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