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



         

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


Частное всегда округляется до нижней границы. А как определить остаток? Вы снова можете умножить частное на делитель и добавить остаток, чтобы получить исходное число. Частное равно -2, делитель 4, их произведение равно -8. Чтобы получить -6 после прибавления к этому произведению остатка, он должен быть равен 2. Сформулируем правила для деления с округлением по нижней границе. 1) если либо делитель, либо делимое, но не оба сразу отрицательные, то частное также отрицательное (точно так же, как для "интуитивного" деления); 2) частное независимо от его знака округляется в сторону ближайшего меньшего числа; 3) остаток от деления принимает знак делителя (в противоположность "интуитивному" делению).

В Форт-83 применяется деление с округлением по нижней границе, что является полной противоположностью Форт-79, в связи с чем нужно быть внимательным при переносе программ из одного стандарта в другой. Хотя большинство машинных языков программирования работают как Форт-79 (за исключением АПЛ), с математической точки зрения более корректно округление по нижней границе, т.е. независимо от знака в сторону нижней границы. Тем не менее многие считают, что это противоречит здравому смыслу. Если вас это смущает, может быть, вам помогут несколько примеров, приведенных ниже. Обычное деление на 0 приводит к бесконечному результату, т.е. к разрыву в нуле. Это может привести к сложностям в графике и других применениях, например для робототехники, где необходимо обеспечить плавный переход от положительных к отрицательным числам. Деление с округлением по нижней границе в связи с этим предпочтительнее, но нужно иметь в виду, что оно занимает времени немного больше.

Обычное деление Деление с округлением по нижней ("интуитивное") границе 4 2 / 2 ok 4 2 / . 2 Ok 3 2 / 1 ok 3 2 / . 1 ok 2 2 / 1 ok 2 2 / . 1 ok 1 2 / 0 ok 1 2 / . 0 ok 0 2 / 0 ok 0 2 / . 0 ok -1 2 / 0 ok -1 2 / .-1 ok -2 2 / -1 ok -2 2 / .-1 ok -3 2 / -1 ok -3 2 / .-2 ok -4 2 / -2 ok -4 2 / ,-2 ok




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