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


ОПЕРАЦИИ НАД ДРОБНЫМИ ЧИСЛАМИ - часть 2


Для сложения двух дробей мы применяем хорошо знакомый вам знак + Конечно, пока это не совсем удобно, так как вы еще не умеете получать ответы в прежней форме. Для того чтобы представить результат снова в десятичной системе, необходимо ввести 10000 *. . 4381 ok

Ответ составит 4381/10000, или в более привычном виде 0.4381.

С помощью дробной арифметики, используя быстрые операции над целыми числами, вы можете складывать, вычитать, умножать

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

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

Нам все-таки хотелось бы вводить и выводить дроби с помощью привычных обозначений. Вы были бы не против, если бы Форт-система выводила результат с десятичной точкой в соответствующем месте? А для этого нужно всего лишь одно слово, лред-ставляющее число в традиционном формате. Воспользуемся средствами, описанными в гл. 71:: #.#### DUP ABS 0 <# # # # # 46 HOLD # ROT SIGH #> TYPE SPACE ; : .F ( дробь -- ) 10000 *. #.#### ;

Теперь наше выражение будет иметь вид 7 34 /. 23 99 /. + .F 0.4381 ok

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

Допустим, вы хотите, чтобы вводимые аргументы выглядели как вещественные числа, например: .1250 + .3750 = ?

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


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