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



         

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


Форт предоставляет превосходный выбор для отображения чисел в специальных форматах. Можно получить таблицу чисел с помощью печати, выровненной по правому краю. $294.32 можно напечатать, используя форматный вывод (иногда называемый выводом по шаблону). Печать в форме таблицы делается просто, вывод со знаком денежной единицы - более сложно.

Слово R. позволяет печатать число в формате выравнивания вправо. Это означает, что число печатается так, как будто бы его все время сдвигают вправо в поле некоторой определенной длины. Длина поля должна быть положена на вершину стека. Так, если вы введете CR 256 6 .R то увидите 256 (123456) (цифры в скобках не будут напечатаны, они приводятся, чтобы показать позицию печатаемого числа 256 в поле, отведенном для его вывода). Число 256 сдвигается на три позиции вправо и выводится своим последним разрядом в последней позиции б-местного поля. Если вы напечатали CR 256 8 ,R то увидите 256 (12345678) Это значит, что число будет выровнено вправо в поле длиной 8 мест. Пусть теперь вы вводите CR 211 10 .R -5 10 .R 23 10 .R CR 2 10 .R -231 10 .R 256 10 .R CR

Во всех случаях поле будет иметь ширину 10 позиций, выводимые числа будут выровнены вправо в этом поле, и вы увидите 211 -5 23 2 -231 256

Каждое слово CR начинает вывод с новой строки, и каждое число представлено сдвинутым до предела вправо в поле из 10 мест. В результате получается очень аккуратная таблица. Обратите внимание, что знаки "-" отрицательных чисел были учтены. Имейте в виду, что в отличие от. (точки) слово.R не выводит пробел после напечатанного числа. Поэтому CR 256 6.R 9 выдаст на экран: 2569 (1234567)

Слово.R не оговорено стандартами Форта, но нам не известна ни одна версия языка, в которой оно, равно как и слово D.R, отсутствовало бы. Во многих версиях Форта есть еще набор слов, как, например U.R, которое печатает числа одинарной длины без знака с выравниванием вправо. Предполагается, что всем этим словам должна предшествовать на вершине стека длина поля в виде числа одинарной длины, а ей должно предшествовать число, которое нужно напечатать как в случае чисел одинарной, так и двойной длины.


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