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


Глава 11. Создание слов-определителей - часть 11


Возможно, что прежде, чем определить само слово COLOR, вы захотите определить три слова, которые будут выводить процентное содержание цвета. 6. Определите слово QUADRATIC, которое работает подобно LINEAR, но определяет порождаемые им слова, выдающие в стек решение уравнения у = ах2 + bх + с, если вначале в стеке находится х. 7. Уравнение Михаэлиса-Ментена широко применяется в биологии и биохимии для определения скорости энзиматических реакций. Его общий вид такой: Q = QмаксS / (KM + S), где Q - скорость реакции, S - концентрация субстрата, Qмакс - максимальная скорость реакции и KM - константа полунасыщения, т.е. концентрация субстрата, при которой скорость реакции составляет половину от максимального значения. Напишите определяющие слова для решения этого уравнения, причем в фазе компиляции в стеке находятся значения Quarr и КМ, а значение S задается в стеке во время исполнения. 8. Многочлен n-й степени является очень полезной функцией ввиду того, что он может "имитировать" почти любую другую функцию. Многочлен имеет вид у = а1 + а2x +а3x^2 +... + аnx^(n-1) Напишите порождающее слово POLYNOM, для которого в стеке заданы некоторое количество коэффициентов (т.е. значений аi), и производные от него слова-дети будут рассчитывать значение полинома (у), используя эти коэффициенты. Вам потребуется использовать в определяющем слове циклы DO-LOOP после CREATE и после DOES>. Понятно ли вы вам, как POLYNOM может заменить слова QUADRATIC и LINEAR ? 9. Определите слово , которое должно использоваться в форме мин макс n A-CONSTANT где A-CONSTANT будет иметь начальное значение п, но возвращать число мин, если его содержимое меньше, чем мин. или число макс, если его содержимое больше, чем макс. (Содержимое A-CONSTANT должно быть изменено при помощи ' или ' >BODY и !.)

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

В гл.6 мы ознакомились с созданием одномерных массивов с помощью слов CREATE и ALLOT, однако, чтобы извлекать или записывать данные, нам приходилось вычислять величину смещения адреса.


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