SIGN: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
(не показаны 22 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''SIGN''' — стандартное слово [[Каллисто]]. | '''SIGN''' (знак) — стандартное слово [[Каллисто]]. | ||
SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно. | |||
Вводит [[Символ -|знак "минус"]] в выходной буфер [[PAD]], если n<0 | Вводит [[Символ -|знак "минус"]] в выходной буфер [[PAD]], если n<0 | ||
== Ввод слова SIGN == | |||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 1|{{Серая клавиша|1}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша 4|{{Серая клавиша|4}}]] | |||
== SIGN в стандарте ANS Forth == | == SIGN в стандарте ANS Forth == | ||
Строка 12: | Строка 14: | ||
числа. | числа. | ||
== История == | |||
Начиная с Форта-79, SIGN берёт свой аргумент с вершины стека. Это означает, что обращение к SIGN в [[Каллисто]] обычно выглядит так: [[Слово ↔|↔]] SIGN | |||
== SIGN в предыдущем стандарте Forth-83 (англ.) == | === SIGN в предыдущем стандарте Forth-83 (англ.) === | ||
SIGN n -- 83 | SIGN n -- 83 | ||
If n is negative, an ASCII "-" (minus sign) is appended to | If n is negative, an ASCII "-" (minus sign) is appended to | ||
Строка 19: | Строка 23: | ||
<# and #> . | <# and #> . | ||
=== SIGN в стандарте Forth-79 (англ.) === | |||
== SIGN в стандарте Forth-79 (англ.) == | |||
SIGN n -- C,140 | SIGN n -- C,140 | ||
Insert the ASCII "-" (minus sign) into the pictured numeric | Insert the ASCII "-" (minus sign) into the pictured numeric | ||
output string, if n is negative. | output string, if n is negative. | ||
=== SIGN в fig-FORTH Release 1 glossary, май 1979 (англ.) === | |||
== SIGN в fig-FORTH Release 1 glossary, май 1979 (англ.) == | |||
SIGN n d --- d L0 | SIGN n d --- d L0 | ||
Stores an ascii "-" sign just before a converted numeric output | Stores an ascii "-" sign just before a converted numeric output | ||
Строка 32: | Строка 34: | ||
but double number d is maintained. Must be used between <# and #>. | but double number d is maintained. Must be used between <# and #>. | ||
== Реализация == | |||
В соответствии со стандартом Форт−79 и последующими, слово SIGN берёт свой аргумент с вершины стека. Обычно SIGN используется непосредственно после [[U♯S|U#S]] | |||
<pre> | |||
3764 ;#SIGN | |||
3765 ; SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно. | |||
3766 ; Ввести знак "минус" в выходной буфер PAD, если x<0 | |||
3767 ; Обычно используется непосредственно после U#S | |||
3768 LSIGN: .DB 4 | |||
3769 .TEXT "SIGN" | |||
3770 .DW LEFDIGS | |||
3771 SIGN: .DW CALL, ZLESS, ZBRAN,SIG, LITB | |||
3772 .DB 45 | |||
3773 .DW HOLD | |||
3774 SIG: .DW EXIT | |||
</pre> | |||
Реализация из SP-Forth 4.20: | |||
<pre> | |||
: SIGN ( n -- ) \ 94 | |||
\ Если n отрицательно, добавить в строку форматного преобразования | |||
\ чисел минус. | |||
\ Исключительная ситуация возникает, если использовать SIGN | |||
\ вне <# и #>, ограничивающивающих преобразование чисел. | |||
0< IF [CHAR] - HOLD THEN | |||
; | |||
</pre> | |||
=== Советская реализация === | |||
Определение слова SIGN совпадает у Юрия Семёнова (стр. 100) и Баранова-Ноздрунова (стр. 37): | |||
: SIGN ( A ---> ) 0< IF '-' HOLD THEN ; | |||
Определение слова SIGN в ядре ФОРТ-ЕС: | |||
<PRE> | |||
SIGN N-> ДОБАВИТЬ В ФОРМАТНУЮ СТРОКУ ЗНАК 37 | |||
МИНУС, ЕСЛИ ЧИСЛО N ОТРИЦАТЕЛЬНО | |||
Экран номер 37 | |||
( 31.03.86 PAD HOLD ALPHA <# #> # #S SIGN ) | |||
: SIGN ( N->) 0< IF C" - HOLD THEN ; | |||
</PRE> | |||
Определение слова SIGN в FORTH ИТЭФ: | |||
<PRE> | |||
HEAD 204Q,'SIG',316Q,SIGN,$COL ; SIGN | |||
DW ROT,ZLESS,ZBRAN,SIG-$,LIT,55Q,HOLD | |||
SIG: DW SEMI | |||
</PRE> | |||
== Ссылки == | == Ссылки == | ||
* [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2210 | * {{Исходник|SIGN|SIGN}} | ||
* [http://www. | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2210 SIGN] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http://forth-standard.org/standard/core/SIGN SIGN] в черновике Forth 200x ''(англ.)'' | |||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\07.TISLO%20TIPOW%20TISEL ЧИСЛО ТИПОВ ЧИСЕЛ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | |||
* [http://www.forth.com/starting-forth/sf7/sf7.html A Number of Kinds of Numbers] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)'' | |||
Строка 48: | Строка 91: | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Слова высокого уровня]] | |||
[[Категория:Форматные преобразования Каллисто]] | [[Категория:Форматные преобразования Каллисто]] | ||
[[Категория:Стандартные слова]] | |||
[[Категория:1994 CORE]] | |||
[[Категория:2012 CORE]] |
Текущая версия от 18:09, 10 ноября 2017
SIGN (знак) — стандартное слово Каллисто.
SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно.
Вводит знак "минус" в выходной буфер PAD, если n<0
Ввод слова SIGN[править]
В режиме ЛАТ последовательно нажмите четыре клавиши 1 7 БП 4
SIGN в стандарте ANS Forth[править]
6.1.2210 SIGN CORE ( n -- ) Если n - отрицательное, добавляет знак "минус" в начало выходной строки отображаемого числа. Неопределенная ситуация существует, если SIGN выполняется вне <# #> ограничивающих преобразование числа.
История[править]
Начиная с Форта-79, SIGN берёт свой аргумент с вершины стека. Это означает, что обращение к SIGN в Каллисто обычно выглядит так: ↔ SIGN
SIGN в предыдущем стандарте Forth-83 (англ.)[править]
SIGN n -- 83 If n is negative, an ASCII "-" (minus sign) is appended to the pictured numeric output string. Typically used between <# and #> .
SIGN в стандарте Forth-79 (англ.)[править]
SIGN n -- C,140 Insert the ASCII "-" (minus sign) into the pictured numeric output string, if n is negative.
SIGN в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
SIGN n d --- d L0 Stores an ascii "-" sign just before a converted numeric output string in the text output buffer when n is negative. n is discarded but double number d is maintained. Must be used between <# and #>.
Реализация[править]
В соответствии со стандартом Форт−79 и последующими, слово SIGN берёт свой аргумент с вершины стека. Обычно SIGN используется непосредственно после U#S
3764 ;#SIGN 3765 ; SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно. 3766 ; Ввести знак "минус" в выходной буфер PAD, если x<0 3767 ; Обычно используется непосредственно после U#S 3768 LSIGN: .DB 4 3769 .TEXT "SIGN" 3770 .DW LEFDIGS 3771 SIGN: .DW CALL, ZLESS, ZBRAN,SIG, LITB 3772 .DB 45 3773 .DW HOLD 3774 SIG: .DW EXIT
Реализация из SP-Forth 4.20:
: SIGN ( n -- ) \ 94 \ Если n отрицательно, добавить в строку форматного преобразования \ чисел минус. \ Исключительная ситуация возникает, если использовать SIGN \ вне <# и #>, ограничивающивающих преобразование чисел. 0< IF [CHAR] - HOLD THEN ;
Советская реализация[править]
Определение слова SIGN совпадает у Юрия Семёнова (стр. 100) и Баранова-Ноздрунова (стр. 37):
: SIGN ( A ---> ) 0< IF '-' HOLD THEN ;
Определение слова SIGN в ядре ФОРТ-ЕС:
SIGN N-> ДОБАВИТЬ В ФОРМАТНУЮ СТРОКУ ЗНАК 37 МИНУС, ЕСЛИ ЧИСЛО N ОТРИЦАТЕЛЬНО Экран номер 37 ( 31.03.86 PAD HOLD ALPHA <# #> # #S SIGN ) : SIGN ( N->) 0< IF C" - HOLD THEN ;
Определение слова SIGN в FORTH ИТЭФ:
HEAD 204Q,'SIG',316Q,SIGN,$COL ; SIGN DW ROT,ZLESS,ZBRAN,SIG-$,LIT,55Q,HOLD SIG: DW SEMI
Ссылки[править]
- Исходный текст слова SIGN в Каллисто Классик 1.0
- Слово SIGN в стандарте ANS Forth (англ.)
- Слово SIGN в черновике Forth 200x (англ.)
- ЧИСЛО ТИПОВ ЧИСЕЛ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- A Number of Kinds of Numbers в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |