Слово ÷
÷ (делить, деление) — традиционное слово Каллисто. Деление десятичных чисел.
÷ ( y x -- x1 ) Разделить. x1 ← y ÷ x
Слово ÷ делит y на x, возвращая частное x1.
Ввод слова ÷[править]
В режиме NUM нажмите белую клавишу ÷
F/ в стандарте ANS Forth[править]
12.6.1.1430 F/ "f-slash" FLOATING ( F: r1 r2 -- r3 ) or ( r1 r2 -- r3 ) Делит r1 на r2, возвращает частное r3. Неопределенная ситуация существует если r2 нулевое, или частное находится вне диапазона числа с плавающей точкой.
История[править]
Слово ÷ происходит из команды ÷, которая использовалась в советском ПМК «Электроника Б3-34», выпущенным в 1980 году. В действующем стандарте Форта 1994 года слово ÷ имеет название F/
В 2007 году команда ÷ вошла в систему команд ЭКВМ, куда она попала от одноимённой команды советских ПМК. Сам знак «÷» (обелюс) взят из арифметики. Впервые знак «÷» для обозначения операции деления появился в 1659 году в книге «Teutsche Algebra» швейцарского математика Иоганна Рана.
Порядок аргументов слова ÷ (делитель на вершине стека, делимое сразу под ним) одинаков в Каллисто, Форте-94 и языке МК, а также совпадает с порядком аргументов слова /. Он взят из обратной польской записи, разработанной в 1954 году (англ. Burks, A. W.; Warren, D. W.; Wright, J. B. (1954). "An Analysis of a Logical Machine Using Parenthesis-Free Notation") на основе польской (префиксной) записи, предложенной польским математиком Яном Лукасевичем в 1924 году.
Реализация[править]
Слово ÷ является «обёрткой» вокруг команды ЭКВМ ÷, вызывающей переполнение при результате, по модулю больше либо равном 10100.
Обработка этой ошибки производится встроенной программой. Например, последовательность слов 1E50 1E-50 ÷ вызывает аварийный останов Каллисто с сообщением «Переполнение» в строке комментариев. Можно ввести с клавиатуры произвольное число в качестве значения «10100» и вернуться в Каллисто, нажав С/П . Подробнее см. статью Авост Каллисто.
Также аварийный останов с сообщением «Деление на ноль» происходит при делении на нуль, например 1 0 ÷ .
В случае аварийного останова рекомендуется произвести «холодную перезагрузку» Каллисто с удалением всех введённых слов, нажав последовательно клавиши В/О С/П .
Для целочисленного деления используйте слово /.
1358 ;#Div 1359 ; ÷ ( y x −− x1 ) Разделить. x1 := y÷x 1360 ; Деление с десятичной плавающей запятой. 1361 LFDIV: .DB 1,176 ; Символ деления на МК−161. 1362 .DW LSTAR ; ( делимое делитель −− частное ) 1363 FDIV: .DW JFDIV ; ( a b −− a/b ) 1364 JFDIV: RM3 MB 1 + MA M3 1365 KRMA KRMB / KMA ; Обёртка вокруг / 1366 KGOTO9
Реализация из SP-Forth 4.20:
CODE F/ \ DE F9 FDIVP ST(1), ST RET END-CODE
Ссылки[править]
- Исходный текст слова ÷ в Каллисто Классик 1.0
- См. слова 1/X, /, 2/, ×, −, +
- См. также символ ÷
- См. слово F/ (f-slash) в стандарте ANS Forth (англ.)
- См. также слово F/ (f-slash) в черновике Forth 200x (англ.)
- См. статьи «Деление» и «Знак деления» на Википедии