[X]: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''[X]''' (усечение) — стандартное слово [[Каллисто]]. Усечение числа.
'''[X]''' (усечение) — традиционное слово [[Каллисто]]. Усечение числа.
  [X]            ( x -- x1 )
  [X]            ( x −− x1 )                         Усечение (целая часть) числа. x1 := Trunc [x]
 
x1 — усечение x (''англ.'' truncation). Значащие цифры, стоящие после десятичной запятой, отбрасываются. Знак числа не меняется.
x1 — усечение x (''англ.'' truncation). Значащие цифры, стоящие после десятичной запятой, отбрасываются. Знак числа не меняется.


== Ввод слова [X] ==
== Ввод слова [X] ==
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша БП|{{Чёрная клавиша|БП}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша P|{{Синяя клавиша|P}}]]   [[Клавиша ПП|{{Чёрная клавиша|ПП}}]]
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша БП|{{Чёрная клавиша|БП}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 0|{{Серая клавиша|0}}]]   [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша ПП|{{Чёрная клавиша|ПП}}]]
 
== Детали реализации ==
Слово является «обёрткой» вокруг команды ЭКВМ [[K INT|К[x]]].
 
Математическая операция взятия целой части даёт пол числа (''англ.'' floor), то есть производит округление числа к отрицательной бесконечности. Её наиболее точное обозначение $\lfloor x \rfloor$. Для отрицательных чисел действие слова [X] отличается от $\lfloor x \rfloor$, т.к. [X] округляет число x к нулю.


== FLOOR в стандарте ANS Forth ==
== FLOOR в стандарте ANS Forth ==
Строка 32: Строка 26:


В черновике стандарта Форт-2012 слово [X] называется FTRUNC
В черновике стандарта Форт-2012 слово [X] называется FTRUNC
В [[Каллисто]] имя [X] восходит к надписи на клавиатуре советского ПМК [[Электроника МК-61|«Электроника МК-61»]], выпущенного в 1984 году.
== Реализация ==
В [[Каллисто|Каллисто 1.0]] слово [X] является «обёрткой» вокруг команды ЭКВМ [[K INT|К[x]]]:
<pre>
1645 ;#FTRUNC
1646 ; [X]              ( x −− x1 )                          Усечение (целая часть) числа. x1 := Trunc [x]
1647 LINT:          .DB    3                      ; ( x −− [x] )
1648                .TEXT  "[X]"
1649                .DW    LSGN
1650 INT:            .DW    JINT
1651 JINT:          PKRM03 KINT PKM03  KGOTO9      ; Обёртка вокруг KINT.
</pre>
Математическая операция взятия целой части даёт пол числа (''англ.'' floor), то есть производит округление числа к отрицательной бесконечности. Её наиболее точное обозначение $\lfloor x \rfloor$. Для отрицательных чисел действие слова &#91;X&#93; отличается от $\lfloor x \rfloor$, т.к. &#91;X&#93; округляет число x к нулю.
Реализация из SP-Forth 4.20:
<pre>
CODE FINT
      FRNDINT
      RET
END-CODE
</pre>


== Ссылки ==
== Ссылки ==
* {{Исходник|FTRUNC|&#91;X&#93;}}
* См. слово [[⎨X⎬|&#123;X&#125;]]
* См. слово [[⎨X⎬|&#123;X&#125;]]
* [http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BB%D0%B0%D1%8F_%D1%87%D0%B0%D1%81%D1%82%D1%8C Целая часть на Википедии] — определение не совпадает со словом &#91;X&#93; для отрицательных чисел
* [http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BB%D0%B0%D1%8F_%D1%87%D0%B0%D1%81%D1%82%D1%8C Целая часть на Википедии] — определение не совпадает со словом &#91;X&#93; для отрицательных чисел
* [https://en.wikipedia.org/wiki/Truncation Truncation на английской Википедии] ''(англ.)''
* [https://en.wikipedia.org/wiki/Truncation Truncation на английской Википедии] ''(англ.)''
* [http://www.forth200x.org/documents/html3/floating/FTRUNC.html Слово FTRUNC (f-trunc) в черновике Forth 200x] ''(англ.)''
* Слово [http://forth-standard.org/standard/float/FTRUNC FTRUNC (f-trunc)] в черновике Forth 200x ''(англ.)''
* Слова [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1558 FLOOR] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1612 FROUND (f-round)] в стандарте ANS Forth ''(англ.)''
* Слова [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1558 FLOOR] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1612 FROUND (f-round)] в стандарте ANS Forth ''(англ.)''
* Слова [http://www.forth200x.org/documents/html3/floating/FLOOR.html FLOOR] и [http://www.forth200x.org/documents/html3/floating/FROUND.html FROUND (f-round)] в черновике Forth 200x ''(англ.)''
* Слова [http://forth-standard.org/standard/float/FLOOR FLOOR] и [http://forth-standard.org/standard/float/FROUND FROUND (f-round)] в черновике Forth 200x ''(англ.)''




Строка 45: Строка 63:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Математические функции Каллисто]]
[[Категория:Математические функции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Описание бета-версии Каллисто]]
[[Категория:Традиционные слова]]
[[Категория:Адаптированные слова]]

Текущая версия от 17:38, 10 ноября 2017

[X] (усечение) — традиционное слово Каллисто. Усечение числа.

[X]            ( x −− x1 )                          Усечение (целая часть) числа. x1 := Trunc [x]

x1 — усечение x (англ. truncation). Значащие цифры, стоящие после десятичной запятой, отбрасываются. Знак числа не меняется.

Ввод слова [X][править]

В режиме NUM последовательно нажмите клавиши  БП     Р-ГРД-Г   0     P   ПП 

FLOOR в стандарте ANS Forth[править]

12.6.1.1558   FLOOR                                                    FLOATING
           ( F: r1 -- r2 ) or ( r1 -- r2 )
           Округление r1 к целому значению, использующему правило "округления 
           к отрицательной бесконечности", возвращает r2.

FROUND в стандарте ANS Forth[править]

12.6.1.1612   FROUND                    "f-round"                      FLOATING
           ( F: r1 -- r2 ) or ( r1 -- r2 )
           Округляет r1 к целому значению, использующему правило "округления к 
           ближайшему", возвращает r2.
       См.: 12.3.2 Операции c плавающей точкой.

История[править]

Слово [X] повторяет особенности округления, характерные для советских калькуляторов «Электроника МК-61» и «Электроника МК-52».

В Форте FSP88 слово [X] известно под именем INT

В черновике стандарта Форт-2012 слово [X] называется FTRUNC

В Каллисто имя [X] восходит к надписи на клавиатуре советского ПМК «Электроника МК-61», выпущенного в 1984 году.

Реализация[править]

В Каллисто 1.0 слово [X] является «обёрткой» вокруг команды ЭКВМ К[x]:

1645 ;#FTRUNC
1646 ; [X]              ( x −− x1 )                          Усечение (целая часть) числа. x1 := Trunc [x]
1647 LINT:           .DB     3                       ; ( x −− [x] )
1648                 .TEXT   "[X]"
1649                 .DW     LSGN
1650 INT:            .DW     JINT
1651 JINT:           PKRM03 KINT PKM03  KGOTO9       ; Обёртка вокруг KINT.

Математическая операция взятия целой части даёт пол числа (англ. floor), то есть производит округление числа к отрицательной бесконечности. Её наиболее точное обозначение $\lfloor x \rfloor$. Для отрицательных чисел действие слова [X] отличается от $\lfloor x \rfloor$, т.к. [X] округляет число x к нулю.

Реализация из SP-Forth 4.20:

CODE FINT
       FRNDINT
       RET
END-CODE

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


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.