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


           

с фиксированной точкой. Для того


Итак, вы познакомились с масштабированием, методами округления и аппроксимации вещественных чисел и операциями над числами с фиксированной точкой. Для того чтобы вы чувствовали себя увереннее при решении сложных математических задач, где необходимо следить за правильностью выбора масштаба в процессе решения посмотрите второй пример в гл. 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-результат) Помещение на стек остатка и частного. Для промежуточного результата используется слово двойной длины.

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