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



         

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


Оно выполняет то же, что и , (запятая), но резервирует место и запоминает число в диапазоне 0- 255 только в одном байте. (Некоторые процессоры имеют адресацию памяти, не допускающую использование слова С,.)

Упражнения

1. Создайте две переменные, FEET (футы) и INCHES (дюймы). Теперь определите слово F->Т для преобразования числа из FEET в число, выраженное в дюймах, результат должен помещаться в переменную INCHES. 2. Проделайте упражнение 1 для чисел двойной длины. 3. Дайте определение слова 2!, назвав его NEW2! , которое действовало бы как ! , но с числами двойной длины. 4. Дайте новое определение слова +! с именем NEW+!. (В Форте для ускорения оно определено в машинных кодах.) 5. Используя С@, дайте другое (но более медленно работающее) определение слова @, назвав его NEW@. 6. По аналогии определите слово NEW!, используя С! . 7. Определите слово VARSWAP (переставить переменные), которое должно переставлять содержимое двух переменных, адреса которых находятся в стеке. Тогда INCHES FEET VARSWAP занесет содержимое переменной INCHES по адресу переменной FEET и наоборот. (Указание: используйте PAD.) 8. Определите два массива, из 7 элементов каждый, 1WEEK (первая неделя) и 2WEEK (вторая неделя), пользуясь словом , (запятая) для инициализации всех элементов нулями. 9. Определите семь слов !SUN(!BCKp), !МОN(!пнд), !TUE(!втр) и т.д. так, что, если им предшествует число (например, сумма дневной выручки) и имя недели, они записывали бы это число в соответствующий элемент. Таким образом, 5 1WEEK !TUE запомнит число 5 во втором элементе (вторник) массива 1WEEK (первая неделя). 10. Напишите слова, соответствующие словам упражнения 9, которые способны извлекать содержимое переменных и класть их в стек. 11. Определите слово ESWAP (переставить элементы), которое должно переставлять два элемента именованного массива. Например, 1 3 1WEEK ESWAP должно переставить значения для понедельника (MONday) и среды (WEdnesday) массива 1WEEK (первая_неделя). Используйте слово VARSWAP. 12.


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