Учебное пособие по языку ФОРТ

ИТФ «Технофорт»
100
10
(1 голос)
0 0

Аннотация: Язык программирования Форт (от английского FORTH) был изобретен Чарльзом Муром в 70-x годах для создания программного обеспечения управляющих устройств. В настоящее время Форт широко используется при решении следующих задач:

Книга добавлена:
23-10-2022, 00:43
0
320
21
Учебное пособие по языку ФОРТ

Читать книгу "Учебное пособие по языку ФОРТ"



14. Форматный вывод чисел

В языке Форт можно просто менять систему счисления, используемую при вводе и выводе информации. Переменная "BASE" хранит основание текущей системы счисления. Для установки текущей системы имеются слова:

"HEX" - шестнадцатеричная,

"DECIMAL" - десятичная.

Иногда к ним добавляют:

"BINARY" - двоичная,

"OCTAL" - восьмеричная.

Например, слово "HEX" определено так

: HEX 16 BASE ! ;

Установленная система счисления остается текущей до следующего изменения. При загрузке Форт-системы устанавливается десятичная система.

Описываемые ниже слова работают с буфером вывода, в котором формируется внешнее представление числа в виде строки символов. Основным преобразователем разрядов числа в символы является слово "#". Оно делит двойное число с вершины стека на основание текущей системы счисления, заменяет его на стеке получившимся частным (тоже двойной длины), а остаток переводит в литеру и записывает в буфер при помощи слова "HOLD". При этом указатель буфера продвигается на одну позицию. Форматное преобразование должно начинаться словом "<#", которое устанавливает указатель на конец буфера, так как формирование строки идет от конца. Слово "HOLD" можно использовать и для вставки во внешнее представление числа желаемых дополнительных символов. Слово "#>" завершает преобразование и помещает в стек адрес сформированной в буфере строки литер и ее длину.

Полный перевод числа сразу выполняет слово "#S", которое оставляет на стеке двойной нуль — результат последнего деления.

Для примера можно разобрать определение слова "D." :

: #S ( d --> 0 0 )

BEGIN # 2DUP 0 0 D= UNTIL ;

: SIGN ( n --> ) ( вывод знака минус )

0< IF C" - HOLD THEN ;

: D. ( d --> )

2DUP DABS

<# #S ROT SIGN #>

TYPE SPACE DROP ;

Слово "TYPE" выводит символы, которые составляют число. Для того, чтобы вставить пробел между числом и приглашением ok, добавлено слово "SPACE".

Для примера создадим два слова форматного вывода.

Первое печатает номер телефона в стандартном виде:

: .PHONE ( d --> )

<# # # C" - HOLD

# # C" - HOLD #S #> TYPE ;

То есть при вводе

2333410. .PHONE

получим 233-34-10

При помощи второго слова ".TABLEAU" можно выводить результаты марафонского забега, замеренного с точностью до сотых долей секунды; например, при вводе

946293. .TABLEAU

получим 2ч37м42.93с

Введем два вспомогательных слова. Слово "SIXI" устанавливает шестеричную систему счисления. Слово "#MS" выдает минуты или секунды

: SIXI ( --> )

6 BASE ! ;

: #MS ( d --> d/60 )

# SIXI # DECIMAL ;

Слово ".TABLEAU" собственно и выводит результаты забега

: .TABLEAU ( d --> )

<# C" с HOLD # #

C" . HOLD #MS

C" м HOLD #MS

C" ч HOLD #S #> TYPE ;


Скачать книгу "Учебное пособие по языку ФОРТ" - ИТФ «Технофорт» бесплатно


100
10
Оцени книгу:
0 0
Комментарии
Минимальная длина комментария - 7 знаков.
Книжка.орг » Современные российские издания » Учебное пособие по языку ФОРТ
Внимание