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



         

Глава 4. Еще об арифметических операциях - часть 9


Определите слово OTHER-QUAD, которое переводит координаты точки (х.у) в прямоугольной системе координат п противоположный квадрант, сохраняя абсолютное значение х и у. Это значит, что нужно перевести точку из верхнего левого угла в правый нижний, из нижнего левого - в верхний правый и т.д. Например, -23 5 OTHER-QUAD должно в результате выдать 23 -5. 11. Определите слово NEWNEGATE с функцией NEGATE, используя только число и оператор *.

Определение математических функций

Одной из приятных возможностей языка Форт является то, что он позволяет определять математические функции, расширяя язык для математических приложений. В качестве очень простого примера вы уже встречались с определением слова для вычисления квадрата числа: : SQUARE DUP * ; Для-обозначения названий функций удобно, хотя это не общепринято, пользоваться алгебраической записью, заменяя пробелы точками. Например, определение слова для вычисления выражение а^2+b^2 может быть : А2.+.В2 DUP * SWAP DUP * + ; или для выражения а (а + b) : А(А.+.В) (b a - aa+ab) DUP ROT + * ; Для расчета значения сложных выражений лучше всего разбить их на максимально возможное число простых выражений. При этом будет проще следить за состоянием стека, давая определения отдельным словам, и вообще, определения слов должны быть как можно короче и быстрее. Предположим, например, что b лежит в стеке вторым, число а находится на вершине стека и вы хотите найти значение выражения a^2+ab. Можно определить слово: : А2.+.АВ DUP DUP * ROT * + ; которое сначала вычисляет значение а^2, потом ab и затем складывает оба произведения. С другой стороны, выражение может быть разложено на множители а(а + Ь), а это выражение, как мы только что видели, может быть вычислено с помощью : А(А.+.B) DUP ROT + * ; - Очевидно, что второй вариант проще, короче и более быстродействующий.

Упражнения

1. Объем пирамиды вычисляется по формуле Ah/2, где А - площадь основания пирамиды, h -высота пирамиды. Определите слово PYRVOL (объем пирамиды) для вычисления значения функции с округлением результата до ближайшего целого числа. 2.


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