Операторы PRINT, LPRINT, PRINT USING, функции SPC и TAB
ОператорPRINT выводит данные на экран
ОператорLPRINTпечатает данные на принтере LPT1.
Синтаксис:
PRINT [выражения] [{; | ,}]
LPRINT [выражения] [{; | ,}]
■ выражения - одно или несколько выражений для печати. Разделяются “;” или “,” .
■ символы “;” и “,” определяют, где начинается следующий вывод:
“;”- печать сразу после последнего значения ( PRINT А; В),
“,” - печать в новой зоне (PRINT А, В)
Выводная строка разбита на зоны по 14 позиций каждая. Ширина зоны печати - 14 символов.
Если в операторе выражение, то оно сначала вычисляется, а затем выводиться на печать вычисленное значение.
Если очередное значение не умещается в оставшуюся часть строки, то оно размещается с начала следующей строки.
Числовые значения выводятся с предшествующей знаковой позицией и последующим пробелом. Для положительных значений в знаковой позиции ставится пробел, для отрицательных - “-”.
Оператор PRINTвыводит пустую строку.
Пример:
PRINT “A”;”A”,”A”;-1;1,1
PRINT 2;
PRINT “A”
Эта программа выведет на дисплей следующий результат:
AA A-1 1 1
A (15) (29)
Функции SPC и TAB
Используются для вывода на экран (на печать) данных в удобной форме.
SPC(X) – число Х пробелов (1≤X≤80)
Пример:
PRINT “Иванов”; SPC(5); “студент”
На экран с первой позиции будет выведено:
Иванов студент.
ТАВ: PRINT TAB (выражение1); выражение2
(Выражение1) определяет положение значения (выражения2) при печати, относительно начала строки. Если значение (Выражение1) имеет дробную часть, то дробная часть отбрасывается. Значение (Выражение1) должно быть в диапазоне 0 – 79, определяющем номера позиций строки экрана.
Пример:
PRINT “ФАМИЛИЯ”; TAB (20); “ИМЯ”
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
ФАМИЛИЯ ИМЯ
Функцию TAB(), например, можно использовать для вывода результатов вычислений в виде графиков относительно начала строки. Так, если табулируется у и определяются его мах и мin, то, по значениям А = 75*(у – мin)/(мах – мin) + 1, можно оператором PRINT TAB(А); “*” построить вертикально расположенный график зависимости функции у от аргумента.
Оператор форматированного вывода
Синтаксис:
PRINT USING формат; список выражений [{;|,}]
“Формат” – текстовое выражение, содержащее один или более спецификаторов формата.
Спецификаторы формата для числовых данных:
#- позиция цифры,
.- позиция десятичной точки,
+- позиция знака числа,
,- разделение каждых трех разрядов с помощью запятой,
$- знак доллара перед числом.
Пример:
A=1234.567
PRINT USING “####”; A 1234
PRINT USING “####.#”; A 1234.5
PRINT USING “####.##”; A 1234.56
PRINT USING “###.###”; A %1234.567
В последней строке символ % свидетельствует о несоответствии заданного формата фактическому значению переменной.
Спецификаторы формата для символьных данных:
&- вывод всего текстового значения,
!- вывод первого символа текстового значения,
\\- число выводимых символов.
Пример:
A=”Студент”
PRINT USING “&”; A Студент
PRINT USING “!”; A С
PRINT USING “\\\”; A Сту
В одном операторе PRINT USING применение и символьных, и числовых переменных не допускается.
Оператор позиционирования курсора LOCATE
Синтаксис:
LOCATE [<строка>],[<колонка>],[<курсор>]
<строка> -значение из диапазона 1..24
<колонка> -значение из диапазона 1..80
<курсор> - 1(курсор виден) или0(курсор невиден)
<строка>,<колонка>могут быть числовыми выражениями.
Оператор позиционирования курсора удобен для наглядности вывода информации на экран. С его помощью информация выводится в необходимое место на экране, что является очень удобным для пояснения, например, при выводе графиков функций. Оператор удобно использовать в цикле, например, для рисования таблиц элементами псевдографики.
Лекция 7
Управление ходом выполнения программы
Организация цикла
Часто при выполнении программы возникает необходимость многократного выполнения блока операторов при различных начальных условиях. Простейший способ повторить действия блока программы – вернуться в начало блока и выполнить его еще раз. QBASIC содержит несколько операторов, позволяющих сделать это.
Оператор цикла FOR … NEXT
FOR <счетчик> = <начало> TO <конец> [STEP <приращение>]
[блок операторов]
NEXT [счетчик]
[счетчик]- числовая переменная (переменная цикла),
<начало> , <конец>- начальное и конечное значение счетчика,
<приращение>- приращение счетчика при каждом шаге цикла.
Если приращение равно 1, то выражение в квадратных скобках может быть опущено. То есть по умолчанию шаг изменения переменной цикла равен единице.
Пример:
FOR I = 1 TO 15 FOR I = 7 to -6 STEP -3
PRINT I PRINT I
NEXT I NEXT I
Оператор цикла DO … LOOP
Оператор цикла DO … LOOP- оператор цикла с предусловием, без счетчика (с неопределенным числом циклов). Блок операторов повторяется, пока условие верно, или до тех пор, пока условие не станет верным. Синтаксис:
DO DO {WHILE | UNTIL} <условие>
<блок операторов> <блок операторов>
LOOP {WHILE | UNTIL} условие LOOP
Где <условие> - числовое выражение, которое BASIC оценивает как «истина» (1)или«ложь» (0).
Проверка в конце цикла – операторы будут выполнены хотя бы один раз. В этом основное различие двух форм записи. При этом WHILE– цикл продолжается пока условие – «истина»; UNTIL – цикл продолжается, пока условие «ложь».
Пример:
DO
INPUT “ВВЕДИТЕ ЗНАЧЕНИЕ Х<10”
INPUT X
LOOP UNTIL X<10
(Выполнять до тех пор, пока не выполнится условие)
INPUT X
DO
PRINT X
X=X-1
LOOP WHILE X >10
(Выполнять до тех пор, пока истинно условие)
I = 0
PRINT "Значение I в начале цикла равно "; I
DO WHILE I < 10
I = I + 1
LOOP
PRINT "Значение I в конце цикла равно "; I
(Выполнять до тех пор, пока истинно условие)
I = 0
PRINT "Значение I в начале цикла равно "; I
DO LOOP WHILE I < 10
I = I + 1
LOOP
PRINT "Значение I в конце цикла равно "; I
(Выполнять до тех пор, пока не выполнится условие)
Оператор цикла без счетчика WHILE …WEND
Синтаксис:
WHILE условие
[блок операторов]
WEND
Пример:
INPUT X
WHILE X>10
SOUND 1000 X*99,10
Х=Х-1
WEND
SOUND X,Y – оператор выдающий звуковой сигнал, где
X– частота (в ГЦ),
Y – длительность в тактах (16.2 Т= 1 сек).
Цикл с предусловием DO...LOOP предоставляет больше возможностей для организации цикла.