Слово ÷: различия между версиями
AtH (обсуждение | вклад) (Новая страница: «'''÷''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова К…») |
AtH (обсуждение | вклад) |
||
(не показано 47 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''÷''' — | '''÷''' (делить, деление) — традиционное слово [[Каллисто]]. Деление [[Десятичное число|десятичных чисел]]. | ||
÷ ( y x -- x1 ) Разделить. x1 ← y ÷ x | |||
[[Файл:CallistoMag.png|thumb|right|264px|Пример работы слова ÷]] | |||
Слово ÷ делит y на x, возвращая частное x1. | |||
== Ввод слова ÷ == | |||
В [[Режим NUM|режиме 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|«Электроника Б3-34»]], выпущенным в 1980 году. В действующем стандарте Форта 1994 года слово ÷ имеет название F/ | |||
В 2007 году [[÷|команда ÷]] вошла в систему команд ЭКВМ, куда она попала от одноимённой команды советских ПМК. Сам знак «÷» ([[Символ с кодом 176|обелюс]]) взят из арифметики. Впервые знак «÷» для обозначения операции деления появился в 1659 году в книге «Teutsche Algebra» швейцарского математика [https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%BD,_%D0%98%D0%BE%D0%B3%D0%B0%D0%BD%D0%BD Иоганна Рана]. | |||
Порядок аргументов слова ÷ (делитель на вершине [[Стек данных|стека]], делимое сразу под ним) одинаков в [[Каллисто]], Форте-94 и [[Язык МК|языке МК]], а также совпадает с порядком аргументов [[Слово /|слова /]]. Он взят из [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C обратной польской записи], разработанной в 1954 году (''англ.'' [https://www.jstor.org/stable/2001990 Burks, A. W.; Warren, D. W.; Wright, J. B. (1954). "An Analysis of a Logical Machine Using Parenthesis-Free Notation"]) на основе польской (префиксной) записи, предложенной польским математиком [https://ru.wikipedia.org/wiki/%D0%9B%D1%83%D0%BA%D0%B0%D1%81%D0%B5%D0%B2%D0%B8%D1%87,_%D0%AF%D0%BD Яном Лукасевичем] в 1924 году. | |||
== Реализация == | |||
Слово ÷ является «обёрткой» вокруг команды ЭКВМ [[÷]], вызывающей переполнение при результате, по модулю больше либо равном 10<sup>100</sup>. | |||
Обработка этой ошибки производится [[Встроенная программа|встроенной программой]]. Например, последовательность слов {{Текст на индикаторе|1E50 1E-50 ÷}} вызывает [[аварийный останов]] [[Каллисто]] с сообщением «Переполнение» в [[Строка комментариев|строке комментариев]]. Можно ввести с клавиатуры произвольное число в качестве значения «10<sup>100</sup>» и вернуться в [[Каллисто]], нажав [[Клавиша С/П|{{Чёрная клавиша|С/П}}]]. Подробнее см. статью [[Авост Каллисто]]. | |||
Также [[Авост Каллисто|аварийный останов]] с сообщением «Деление на ноль» происходит при делении на нуль, например {{Текст на индикаторе|1 0 ÷}}. | |||
В случае [[Авост Каллисто|аварийного останова]] рекомендуется произвести [[COLD|«холодную перезагрузку»]] [[Каллисто]] с удалением всех введённых слов, нажав последовательно клавиши [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша С/П|{{Чёрная клавиша|С/П}}]]. | |||
Для целочисленного деления используйте [[слово /]]. | |||
<pre> | |||
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 | |||
</pre> | |||
Реализация из SP-Forth 4.20: | |||
<pre> | |||
CODE F/ \ DE F9 | |||
FDIVP ST(1), ST | |||
RET | |||
END-CODE | |||
</pre> | |||
== Ссылки == | |||
* {{Исходник|Div|÷}} | |||
* См. слова [[Слово 1/X|1/X]], [[Слово /|/]], [[2/]], [[Слово ×|×]], [[Слово −|−]], [[Слово +|+]] | |||
* См. также [[Символ с кодом 176|символ ÷]] | |||
* См. слово [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1430 F/ (f-slash)] в стандарте ANS Forth ''(англ.)'' | |||
* См. также слово [http://forth-standard.org/standard/float/FDiv F/ (f-slash)] в черновике Forth 200x ''(англ.)'' | |||
* См. статьи [http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0%29 «Деление»] и [https://ru.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D0%BA_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F «Знак деления»] на Википедии | |||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | |||
[[Категория:Арифметические операции Каллисто]] | |||
[[Категория:Слова, способные вызывать авост Каллисто]] | |||
[[Категория:Традиционные слова]] | |||
[[Категория:Адаптированные слова]] |
Текущая версия от 17:34, 10 ноября 2017
÷ (делить, деление) — традиционное слово Каллисто. Деление десятичных чисел.
÷ ( 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 (англ.)
- См. статьи «Деление» и «Знак деления» на Википедии