Главная » Basic » СНОВА ОБ ОПЕРАТОРЕ PRINT

0

Начальные сведения об операторе PRINT приводились  в подразд. 1.2.3. Оператор PRINT может изображать как текст, так и числа  на устройстве вывода, которым обычно служит ВТУ. Текст может появляться в операторе PRINT либо в виде строковой константы, например:

10  PRINT "РЕЗУЛЬТАТ РАВЕН", А

либо в виде строковой переменной, например:

10   A$ = "ИТОГОВАЯ СУММА"

20 PRINT А$; В

Элементы списка данных, выдаваемых оператором PRINT, могут отделяться друг от друга запятой или точкой с запятой.

Если разделителем служит точка с запятой, то значения элементов данных печатаются вплотную. Чтобы соседние числа не сливались в одно число, после каждого числового значения дополнительно выводится пробел, а перед числом может быть выведен знак минус  или пробел. Например,  если А = 1, В = 2, С = -3, то оператор

10  PRINT "НАЧАЛО"; А; В; С; "КОНЕЦ" изобразит строку следующего вида:

НАЧАЛО 1 2 -3 КОНЕЦ

Учтите, что в Бейсике ВВС числовые значения не окаймляются пробелами, поэтому при работе с ним указанный оператор изобразит строку НАЧАЛО12-3КОНЕЦ

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

10  PRINT "НАЧАЛО"; "КОНЕЦ" изобразит строку НАЧАЛОКОНЕЦ

Если же в качестве разделителя используется запятая, то данные распределяются по зонам экрана ВТУ. Обычно экран разбивается на вертикальные зоны шириной от 14 или 15 символов и  запятая вызывает печатание как строкового, так и  числового значения от начала следующей зоны. Если последняя зона строки уже была заполнена, то происходит переход на следующую строку. Таким образом, оператор

10  PRINT А,В,С изобразит строку

1                           2                           -3

Учтите, что Бейсик ВВС отличается от других версий тем, что выравнивает строковые значения по левому краю зоны, а  числовые значения —  по  правому. Поэтому при работе с  ним указанный оператор изобразит строку

1                              2                          -3

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

Можно  использовать любую  комбинацию разделителей;      все  нижеперечисленные  операторы допустимы:

100 PRINT A;B;C

100 PRINT A,B;C

100  PRINT A;B,C

Указание оператора PRINT самого по себе, без списка переменных, вызывает переход на  новую строку.

Напротив, если в операторе PRINT список переменных завершается запятой или точкой с запятой, то следующий оператор продолжит выдачу на той же самой строке. Например, операторы

10    PRINT А;"ПЛЮС";

11    20   PRINT В; "РАВНО";

12    30   PRINT A+B

изобразят строку

1 ПЛЮС 2 РАВНО 3

Следующая программа использует описанные выше возможности для изображения гистограммы по точкам графика функции y =х2 + 3:

5   RЕМ ПРОГРАММА ДЛЯ ИЗОБРАЖЕНИЯ ГИСТОГРАММЫ

10   PRINT "——————–ОСЬ Y——————–"

20   FOR Х=0 ТО 7 STEP .5

30   Y=X**2+3

30   PRINT "!";

40   FOR H=l TO INT(Y)

44     PRINT "*";

46   NEXT H

48   PRINT

50   NEXT X

60   END

Выдача каждой строки начинается оператором PRINT в строке 38, изображающим вертикальную черту. Затем с помощью цикла в строках 40 — 46 на той же строке изображается заданное число звездочек (равное целой части значения Y).

Оператор PRINT  в  строке 48  требуется для перехода к новой  строке, отвечающей  следующему значению X. В приведенном примере предполагается,

что  после  заполнения всех  строк  экрана  выдача  новой  строки вызывает  перемещение всего изображения вверх на одну строку, и  выдаваемая строка изображается в самом низу экрана (режим построчного движения изображения)  . В некоторых системах для выбора такого режима требуется предварительно   нажать   на    определенную   клавишу   (управляющую   переходом   к    режиму постраничной выдачи и обратно) или дать специальную команду системе с Бейсиком. (См. в табл. 3.5 описание команды SCROLL системы с Бейсиком для микроЭВМ ZX81 фирмы Sinclair; при работе с ней эту команду надо добавить строкой 35 к приведенной выше программе.) Разделители элементов списка выводимых данных Общая форма записи: , или ;

(,) Запятая вызывает переход к следующей зоне для печатания значения элемента (т. е.  вывод выравнивается по левому краю зоны, однако в Бейсике ВВС это не так).

(;)  Точка  с  запятой  вызывает  печатание  значения  элемента  вплотную  к   предшествующему значению. Если список выводимых данных завершается запятой или точкой с запятой, то перехода к новой строке не происходит и следующий оператор PRINT продолжит изображение на той же строке.

Оператор PRINT с пустым списком выводимых данных (т. е. в нем не указано ни одного элемента)

вызывает переход к новой строке.

Зоны обычно фиксированы и, как правило, имеют ширину в 15 символов.

Замечания

(а)  В Бейсике Sinclair экран разбивается на строки по 32 позиции (пронумерованные от 0 до 31), а зоны начинаются в столбцах 0 и 16.

(б)       Версии  Бейсика  Microsoft  и  ВВС  позволяют  переустановить  длину  строки  с  помощью оператора WIDTH N, где N константа или выражение, задающее число позиций в строке.

(в)   В Бейсике ВВС строковые данные выравниваются по левому краю зоны, а числовые —  по

правому.

В Бейсике ВВС имеются дополнительные возможности:

(‘) Разделитель в виде апострофа вызывает переход на новую строку.

Целый     спектр     возможностей     предоставляется     посредством     присваивания      значений четырехбайтовой целой переменной @%. Значение самого младшего байта (от 0 до  255) задает ширину зоны. Остальные три байта (справа налево) управляют числом печатаемых цифр (от 0 до 9), форматом печати числовых значений (0,1 или 2), а также результатом  обращения к функции STR$

Значение  каждого  байта  задается  двузначным  шестнадцатеричным  числом.  Таким   образом, диапазон  значений  00…  FF.  Приведем  три  примера,  задав  значение  байта  зоны   и   положив остальные три байта нулевыми:

@%=&0000 0009 устанавливает ширину зоны равной 9, @%=&00 00 00 0С устанавливает ширину зоны равной 12,

@%=&000000 14 устанавливает ширину зоны равной 2ф. (Символ & указывает на запись числа  в шестнадцатеричной форме.)

Во многих системах с помощью оператора PRINT можно получить такие возможности  управления размещением изображения на экране, как адресация курсора и псевдографика (см. разд. 6.6) .

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

По теме:

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