Слово ÷: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
(Новая страница: «'''÷''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова К…»)
 
 
(не показано 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 ; &divide;                ( y x −− x1 )                        Разделить. x1 := y&divide;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

Ссылки[править]