I.R

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

I.R (читается «ай-точка-ар») — адаптированное слово Каллисто. Напечатать целое число n на индикаторе в поле длиной c справа.

I.R            ( n c −− )                           Вывести целое n на индикатор в поле длиной c справа.

Печатает целое число n так, что младшая цифра занимает самое правое положение в выделенном поле, заданном числом c.

Ввод слова I.R

В режиме ЛАТ последовательно нажмите три клавиши  7     P   /−/   × 

.R в стандарте ANS Forth

 6.2.0210   .R                           "dot-r"                        CORE EXT
            ( n1 n2 -- )
            Отображает n1 выровненное вправо в поле шириной n2 символов. Если 
            число символов требуемых для отображения n1 больше чем n2, все 
            цифры отображаются без ведущих пробелов в поле необходимой ширины.

 A.6.2.0210   .R
 В .R, "R" сокращение для RIGHT (''англ.'' право).

История

В Форте каллистянское слово I.R называется .R

.R в предыдущем стандарте Forth-83 (англ.)

     .R           n +n --                       M,83           "dot-r"
          n is converted using BASE and then displayed right aligned
          in a field +n characters wide.  A leading minus sign is
          displayed if n is negative.  If the number of characters
          required to display n is greater than +n, an error condition
          exists.  See:  "number conversion"

.R в стандарте Forth-79 (англ.)

.R             n1 n2 --                                     "dot-r"
    Print n1 right aligned in a field of n2 characters,  according
    to  BASE.   If  n2  is less than  1,  no  leading  blanks  are
    supplied.

.R в fig-FORTH Release 1 glossary, май 1979 (англ.)

.R            n1  n2  ---
       Print the number n1 right aligned in a field whose width is n2. No
       following blank is printed.

Реализация

3842 ;#IdR
3843 ; I.R              ( n c −− )                           Вывести целое n на индикатор в поле длиной c справа.
3844 ; Напечатать целое число n так, что младшая цифра занимает самое правое положение в выделенном поле, заданном числом c.
3845 LDOTR:          .DB     3
3846                 .TEXT   "I.R"                   ; ( целое поле −− )
3847                 .DW     LFDOT
3848 DOTR:           .DW CALL, TOR,XDOT,FROMR, OVER,SUB,SPACS, TYPE, EXIT

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

: .R ( n1 n2 -- ) \ 94 CORE EXT
\ Вывести на экран n1 выравненным вправо в поле шириной n2 символов.
\ Если число символов, необходимое для изображения n1, больше чем n2,
\ изображаются все цифры числа без ведущих пробелов в поле необходимой
\ ширины.
  >R DUP >R ABS
  S>D <# #S R> SIGN #>
  R> OVER - 0 MAX SPACES TYPE
;

: U.R ( u n -- ) \ 94 CORE EXT
\ Вывести на экран u выравненным вправо в поле шириной n символов.
\ Если число символов, необходимое для изображения u, больше чем n,
\ изображаются все цифры числа без ведущих пробелов в поле необходимой
\ ширины.
  >R  U>D <# #S #>
  R> OVER - 0 MAX SPACES TYPE
;
…
: H.R           ( n1 n2 -- )    \ display n1 as a hex number right
                                \ justified in a field of n2 characters
                BASE @ >R HEX >R
                0 <# #S #> R> OVER - 0 MAX SPACES TYPE
                R> BASE ! ;

: H.N           ( n1 n2 -- )    \ display n1 as a HEX number of n2 digits
                BASE @ >R HEX >R
                0 <# R> 0 ?DO # LOOP #> TYPE
                R> BASE ! ;

Советская реализация

Определение слова I.R приводится у Баранова-Ноздрунова (стр. 37):

 : I.R   ( B:число,F:размер поля ---> )
    OVER |X|                  ( B,F,BABS )
    <#  U#S  ROT  SIGN  U#>   ( F,A,N )
    ROT  OVER  -              ( A,N,F-N )
    SPACES  TYPE  ;

В FORTH ИТЭФ и ядре ФОРТ-ЕС слово I.R называлось .R и определялось через слово D.R

Вот описания и определения этих слов в ФОРТ-ЕС:

  .R        + N1, +N2->                       НАПЕЧАТАТЬ N1 НА ТЕРМИНАЛЕ
                                                 В ПОЛЕ ДЛИНЫ +N2 СПРАВА

                     Экран номер 38
( 31.03.86    D.R  D.  .R . H.  U.  U.R  ?  )

: D.R  (D,+N-> )  ?+  >R  DUP >R  DABS
  <# #S R>  SIGN #> R> OVER  - SPACES TYPE ;
: .R ( N1,+N2->) >R S>D R> D.R ;

Вот определения этих слов в FORTH ИТЭФ:

             HEAD    203Q,'D.',322Q,DDOTR,$COL            ; D.R
             DW  TOR,SWAP,OVER,DABS,BDIGS,DIGS,SIGN,EDIGS
             DW  FROMR,OVER,SUB,SPACS,$TYPE,SEMI

             HEAD    202Q,'.',322Q,DOTR,$COL              ; .R
             DW  TOR,STOD,FROMR,DDOTR,SEMI

Ссылки


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


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