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


ЗАКЛЮЧЕНИЕ


Итак, вы познакомились с масштабированием, методами округления и аппроксимации вещественных чисел и операциями над числами с фиксированной точкой. Для того чтобы вы чувствовали себя увереннее при решении сложных математических задач, где необходимо следить за правильностью выбора масштаба в процессе решения посмотрите второй пример в гл. 12.

Как уже упоминалось, вам ничто не мешает дополнительно ввести в Форт операции над числами с плавающей точкой Но такие средства не очень подходят Форту, поскольку его достоинства - это компактность, высокая скорость выполнения программ, простота и элегантность. Он как бы «отторгает» от себя все то, что не является насущной необходимостью. Разумно используя масштабирование и числа двойной длины, вы избавитесь от дорогостоящих операций над числами с плавающей точкой.

Операции над числами с плавающей точкой имеет смысл применять в следующих случаях:

  • если вы хотите использовать ваш компьютер как калькулятор для одноразовых вычислений;
  • когда время программирования представляется более существенным фактором, нежели время выполнения вычислений в вашей программе;
  • для обработки данных в большом динамическом диапазоне (превышающем диапазон от -2 биллионов до +2 биллионов).

Все перечисленные доводы являются серьезными. Однако существует целый ряд систем, где вы не должны платить за возможность выполнения операций над числами с плавающей точкой.

Ниже приводится список слов Форта, используемых в данной главе: 1+ ( n -- n+1 ) Добавление единицы.

1- ( n -- n-1 ) Вычитание единицы.

2+ ( n -- n+2 ) Добавление двойки.

2- ( n -- n-2 ) Вычитание двойки.

2* ( n -- n*2 ) Умножение на два (арифметический сдвиг влево).

2/ ( n -- n/2 ) Деление на два (арифметический сдвиг вправо).

ABS ( n -- |n| ) Помещение в стек абсолютной величины заданного числа.

NEGATE ( n -- -n ) Изменение знака на противоположный.

MIN ( n1 n2 -- min) Помещение в стек минимального из двух заданных чисел.

МАХ ( n1 n2 -- max) Помещение в стек максимального из двух

>R ( n -- ) Выборка значения из стека данных и занесение его в стек возвратов.

R> ( -- n ) Выборка значения из стека возвратов и занесение его в стек данных.

R@ ( -- n ) Копирование содержимого вершины стека возвратов без изменения его значения.

*/ ( nl n2 nЗ -- Умножение, затем деление (n1*n2/nЗ). результат ) Промежуточный результат 32-разрядный.

*/MOD ( n1 n2 nЗ -- Умножение, затем деление (n1*n2/nЗ). n-остаток n-результат) Помещение на стек остатка и частного. Для промежуточного результата используется слово двойной длины.




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



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