Язык программирования Форт



         

Глава 5. Ввод и вывод - часть 17


Обратите внимание, что перед SIGN необходимо слово ROT, потому что слово #S не удаляет число из стека, а заменяет его числом 0 двойной длины. Процедуры форматного вывода еще более неудобны для чисел- со знаком. Поэтому для большего удобства желательно определить еще два новых слова: : TYPE SPACE : Для полноты дадим еще определение слова . (точка) : ; . ( n -) S-D TYPE SPACE ;

Как оно работает, должно быть понятно. В большинстве версий Форта. (точка) определена как операция форматного вывода, т.е. очень близко к этому определению- Мы обещали еще научить вас выводить числа в формате с десятичной точкой и символами денежных единиц. Это делается с помощью слова HOLD, которое помещает символ ASCII, заданный его кодом, в символьную строку. Так, например, 12.34 TYPE выведет на экран $1234. Или 12.34 TYPE представит на экране 1234%. Снова обратим внимание на то, что строка формируется в обратном порядке, т.е. в конец помещается символ, встречающийся первым, и наоборот.

Мы также обещали, что вы сможете вводить разделители, например десятичную точку, в выводимое число. Чтобы сделать это, вам потребуется другое слово #. Слово # выталкивает разряды числа по одному справа налево и помещает их в выходную строку. После того как группа разрядов преобразована, можно использовать #S для завершения преобразования. Попробуйте ввести 1234. TYPE и на экране должно появиться $12.34. Цифры 4 и 3 были помещены в выходную строку двумя словами #, операция 46 HOLD поместила в строку десятичную точку, слово #S поместило в строку оставшиеся два разряда 12, а 36 HOLD на вершину строки помещает знак денежной единицы $. Снова обратите внимание, что процесс форматного преобразования происходит справа налево.

Теперь вы можете самостоятельно определить слово для представления чисел в долларах и центах, и так как мы показали, что оно должно отображать числа со знаком, то с помощью этого слова вы сможете записывать долги: : D$. ;

Можно определить другие слова для более сложного вывода.

Здесь приведены все средства форматного вывода.


Содержание  Назад  Вперед