Главная » Basic » ФОРМАТЫ

0

Каждый  оператор  PRINT  USING  содержит либо формат,  представляющий  собой  образ  формы представления  выводимых  значений, чисел или  строк  символов,  либо ссылку  на  такой  формат. Основной составной частью такого формата является символ  решетки (#), указывающий, что надо напечатать  цифру  или    символ. Действие формата  показано  в    приведенном ниже  примере, иллюстрирующем также различия между двумя операторами PRINT:

10 REM ДЕМОНСТРАЦИЯ ДЕЙСТВИЯ ОПЕРАТОРА PRINT USING

2 В FOR I=1 ТО 6

30   READ A

40   PRINT A

50 NEXT I

60 PRINT

70 RESTORE

80 FOR I=1 TO 6

90   READ A

100   PRINT USING "-####.## ;A 110 NEXT I

120 DATA 2.2,1000,47.345,-6.25,.037,1 130 END RUN 2.2 1000 47.345 -6.25 3.7E-2 1

1000.60

-6.25

1 .00

END AT LINE 130

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

Образ формата представляет собой строку символов,  следующую за  служебным словом  USING (используя). Каждый формат задается в виде строки.

Позиции   выводимых цифр  строго  определены  расположениями знаков  #.   Десятичная  точка печатается, так ‘как она указана спустя четыре символа  от начала формата, и  выводимые  числа выравниваются  по десятичной точке. В образе формата десятичная точка может быть указана в любом месте или вовсе отсутствовать.

В табл. 6.5 собраны общеупотребительные символы,  служащие для описания  формата. Пожалуй, реализации числовых форматов  в достаточной мере согласованы, но для описания форматов вывода строк символов существует  несколько различных систем. Вначале рассмотрим  вывод чисел. В табл.

6.6 приведено несколько примеров действия различных  форматов;  при указании в операторе PRINT USING такие форматы заключаются в кавычки.

Таблица 6.5.  Широко  используемые  символы  описания  формата.  Через  А  и  В  обозначены  две различные системы описания формата вывода строк символов

Описание

формата

Действие для чисел

Действие для строк

символов

#

,

$ ИЛИ £

$$ или ££

+

-

↑↑↑↑,

или

*

Вывод одной цифры,  или

нуля, или пробела

Вывод десятичной точки Вывод запятой через каждые три позиции слева от десятичной точки

Вывод $ или £ в указанной позиции Плавающий вывод $ или

£.Только один символ выводится непосредственно перед числом Может быть указан до или после #. В этой позиции будет напечатан знак числа (+ или -)

То же, что и + выше, но печатается только знак — Означает поле для вывода экспоненты

Вывод *во всех неиспользуемых  позициях слева от десятичной точки

В системе А — вывод

одного символа (см.

ниже комментарий)

Таблица 6.5 (окончание)

Описание

формата

Действие для чисел

Действие для строк

символов

\           \

!

&

Две обратные косые

черты с N пробелами между ними означают вывод N + 2 первых символов строки (Система вывода строк символов В)

Вывод первого символа строки (Система вывода строк символов В) Вывод всей строки (Система вывода строк символов В)

Таблица 6.6. Примеры числовых форматов

Описание формата

Выводимое число

Результат

# #

###

$$##.##

+ ####

+ ####

##.##↑↑↑↑

##.##↑↑↑↑

-123

-123

.012

0.12 12. 1,234.

$1.20

$1.20

*123.00

***1.00

* * $1.00

+ 123

-123

-123

1.23Е+02

1.20Е-02

Обычно  ведущие нули  подавляются, а  незначащие нули   после  десятичной точки печатаются.

Исключение представляют собой числа, меньшие 1, при изображении которых печатается 0, стоящий непосредственно перед десятичной точкой.

Для исключения возможности впечатать  лишние цифры в чеки  и векселя можно печатать вплотную к первой цифре числа знак доллара ($) или  фунта стерлингов (£), для чего эти знаки указываются в формате удвоенными, и заполнять звездочками все оставшиеся пустыми места, указывая в форма-

те **. Комбинации *S или *£ обеспечивают сочетание плавающего положения знака денежной единицы  и заполнения пустого места звездочками. Если положение знака денежной единицы является плавающим, то печатать знаки + и — во многих системах запрещается. Если требуется

печатать отрицательные значения, то знак должен помещаться после числового поля (справа от него).

При использовании экспоненциальной формы представления чисел в научно-инженерных программах для печатания полной спецификации Е+nn надо включать в формат все четыре знака карата (стрелка вверх). При этом первая  из позиций, предназначенных для ведущих цифр, резервируется для изображения знака числа, так что "# #.# ↑↑↑↑" дает тот же эффект, что и "-

#.#↑↑↑↑".

Запятая (если присутствует) может указываться в любом месте числового формата. Она используется для разделения изображения числа на группы по три цифры перед десятичной точкой.

Строковые форматы просты, но существует несколько систем описания строковых  форматов,  две из которых представлены в табл. 6.5. Система, обозначенная в этой таблице через "А", описывает выводимое поле как "<###", если надо напечатать до трех символов, выравнивая их по левому краю поля, и как ">###", если требуется выравнивание по правому краю поля. Примеры действия строковых форматов этой системы приведены в табл. 6.7.

В другой системе описания строковых форматов "В" строковое поле задается с помощью пары знаков обратной косой черты (\). Указанные слитно два этих знака задают печать двух символов строки. Указанные через один пробел — трех символов,  и т. д. Знак & в строковом формате означает строковое поле с переменной длиной и обеспечивает вывод всей строки. Применение этого знака может нарушить регулярное расположение  вывода по столбцам, являющегося основным достоинством оператора PRINT USING. Эту систему иллюстрирует табл. 6.8.

В некоторых системах для выравнивания влево до четырех символов строки поле задается как LLLL,

а для выравнивания вправо до трех символов строки — как RRR.

Та блица 6.7. Форматы строк символов в системе "А"

Описание

формата

Выводимая

строка

Результат

АВ

ABC ABCD АВ ABC ABCD

АВ

ABC

ABC АВ ABC ABC

Таблица 6.8. Форматы строк символов в системе "В"

Описание

Выводимая

Результат

формата        строка

!                     ABCD               А

\\                    ABCD               АВ

\  \                 ABCD               ABCD

\  \                 АВ                     АВ

&                   ABCDE             ABCDE

&                   А                       А

Многие большие вычислительные системы руководствуются  системой "А", в то время как системы с Бейсиком для микроЭВМ, например Microsoft, -системой "В".

Если число не помещается в числовом   поле, то часто оно печатается целиком, но при этом в  знак ошибки перед ним впечатывается  символ %. Если строки не помещаются в поле, то лишние символы отбрасываются.

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии