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


БЕЗ ВЗВЕШИВАНИЯ - часть 5


Наш результат пока еще будет в десять раз меньше, чем на самом деле (26711 вместо 267110 при максимальных значениях аргументов).

Нам остается лишь умножить полученное значение на величину плотности материала, максимальное значение которой равно 131 фунт на кубический фут. Во избежание переполнения уменьшаем плотность в 100 раз, применяя выражение ПЛОТНОСТЬ @ 100 */

Проверив выполнение программы в этой точке с данными о куче цемента высотой 50 футов, получим число 34991, что превышает 15 разрядов. Теперь пора принять во внимание значение 2000. Вместо ПЛОТНОСТЬ @ 100 */

мы можем написать: ПЛОТНОСТЬ @ 200 */

и наш ответ будет приведен к целому числу тонн.

Этот вариант программы вы найдете на распечатке блока 246, которая приводится ниже. Как уже упоминалось ранее, в блоке 248 находится вариант той же программы с использованием арифметических операций над данными двойной длины. Здесь вы вводите высоту в виде числа двойной точности с одним знаком после точки, представляющим десятые доли фута, например 50.0 футов, а далее следует слово ФУТЫ.

Выполняя целочисленные арифметические операции над числами двойной длины, мы в состоянии округлять полученный вес кучи до ближайшего целого фунта. В нашем случае применение целочисленной арифметики двойной длины открывает не меньшие

возможности, чем те, которые предоставляет более мощная арифметика с плавающей точкой. Ниже для сравнения приводятся результаты, полученные с помощью калькулятора, имеющего диапазон представления чисел в 10 десятичных цифр, средств Форта одинарной длины и средств Форта двойной длины. Результаты представлены для кучи цемента высотой 50 футов с использованием табличных значений: В ФУНТАХ В ТОННАХ --------------------------------------------- калькулятор 34.995.634 17,497.817 16-разрядный форт - 17.495 32-разрядный форт 34.995.634 17.497.817 ---------------------------------------------

Результаты же работы нашей программы таковы:246 LOAD ok ( компиляция варианта с одинарной длиной) ЦЕМЕНТ ok 10 ФУТОВ КУЧА = 138 тонн цемента ok 10 ФУТОВ 3 ДЮЙМОВ КУЧA = 1S1 тонн цемента ok СУХОЙ-ПЕСОК 10 ФУТОВ КУЧА = 81 тонн песка ok 248 LOAD ok ( компиляция варианта с двойной длиной) ЦЕМЕНТ ok 10.0 ФУТОВ = 279939 фунтов цемента или 139.969 тонн ok




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



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