Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 25 QBasic.doc
Скачиваний:
10
Добавлен:
24.04.2019
Размер:
186.37 Кб
Скачать

Структура программы.

Программа состоит из последовательности строк. Строка может состоять из:

[N строки/метка] оператор [:оператор]...['комментарий]

Квадратные скобки означают, что позиция, заключенная в эти скобки, может отсутствовать в программе. Номер строки от 0 до 65535. Операторы для удобства чтения лучше располагать блоками, ступенчато. Начинающим программистам рекомендуется начинать нумерацию строк с десятого номера с шагом равным 10, что позволяет вставить дополнительные операторы между строками. Метка должна начинаться с буквы.

В некоторых примерах сохранена нумерация строк для удобства объяснения задач.

  1. Операторы.

Оператор указывает, что должно быть выполнено и как следует воспринимать данные (если они есть), следующие за этим оператором.

Операторы делятся на две группы:

- выполняемые операторы, которые определяют действия программы, указывая, какую операцию необходимо выполнить (PRINT, GOTO, READ);

- невыполняемые операторы, описывающие характер и упорядочение данных, позволяют вводить в программу пояснения (DATA, REM).

Оператор LET.

Оператор LET присваивает значение переменной (числовой или символьной).

Общий вид

[ N строки] [LET] переменная = выражение

Присвоение выполняется справа налево. Переменная и выражение должны быть одного типа (оба числовыми или оба символьными).

Пример:

LET a = 9.85

LET t$ = "TEXT"

LET b(I) = (a(0) + a(I)) / 2

Оператор LET можно помещать в любом месте многооператорной строки. Слово LET может быть опущено.

Оператор INPUT.

Оператор INPUT позволяет вводить и анализировать данные с клавиатуры в процессе выполнения программы.

Общий вид

[N строки] INPUT <список>

где <список> - последовательность переменных (числовых или символьных), разделенных запятыми.

Встретив оператор INPUT, Бейсик печатает знак ? и ждет ввода значений для каждой переменной, указанной в операторе. Значения разделяются запятыми. При нажатии ENTER производится ввод данных слева направо и анализ их на соответствие типа переменных вводимым значениям. Число вводимых данных должно соответствовать числу переменных в операторе. Лишние значения игнорируются. В TURBO BASIC в оператор ввода разрешается включать пояснительный текст.

Например:

INPUT "Ввести А, В,С"; А,В,С

В процессе выполнения программы на экране появится сообщение Ввести А,В,С ?

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

Ввести А,В,С ? 1,2.2,3Е-2 или INPUT "Ввести А,В,С",А,В,С

Ввести А,В,С 1,2.2,3Е-2

Следует обратить внимание на то, что при использовании точки с запятой (;) после пояснительного текста на экране выводится знак вопроса (?), а при использовании запятой (,) после пояснительного текста знак вопроса на экране отсутствует.

Операторы READ, DATA, RESTORE.

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

Общий вид

[N строки] READ <список>

где <список> - последовательность переменных (числовых или символьных), разделенных запятыми.

[N строки] DATA <список значений>

где <список значений> - последовательность констант (числовых или (и) символьных), разделенных запятыми.

Перед выполнением программы БЕЙСИК просматривает все операторы DATA в порядке их появления и создает блок данных. Каждый раз, когда в программе встречается оператор READ, из блока данных выбирается последовательно соответствующие значения для переменных этого оператора в том порядке, в котором они заданы в блоке данных.

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

Пример:

READ A,B $

DATA 3.5, режим

БЕЙСИК присваивает значения в следующем порядке:

А=3.5

В$ =режим

Оператор READ допускается помещать в любом месте многооператорной строки.

Оператор DATA должен быть единственным или последним оператором строки. Обычно он ставится в конце программы.

При выполнении оператора READ указатель считывания данных перемещается. БЕЙСИК осуществляет повторное считывание одних и тех же данных с помощью оператора RESTORE.

Пример:

10 READ a, b, c

20 RESTORE

30 READ D, e, F

40 DATA 2,4.5,6,8,10

50 END

Оператор READ в строке 10 читает первые три значения из оператора DATA в строке 40.

А=2

В=4.5

С=6

Затем оператор RESTORE (строка 20) перемещает указатель данных на начало блока данных так, что второй оператор READ в строке 30 читает те же первые значения.

D = 2

e = 4.5

c = 6

Оператор PRINT.

Оператор PRINT выводит данные на терминал в процессе выполнения программы.

Общий вид

[N строки] PRINT <список>

где <список> - последовательность констант, переменных или выражений, подлежащих выводу.

Если элементом списка является выражение, БЕЙСИК вычисляет его и печатает результат.

Пример:

LET A1 = 25: A2 = 35

PRINT "A1+A2="; A1 + A2

Результат, выводимый на терминал: А1+А2=60

Строка символов, выводимая на терминал, состоит из 5 зон по 14 позиций в каждой зоне.

Оформление списка редактора PRINT.

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

Если две запятые стоят рядом, то выполняется пропуск одной зоны.

Если за элементом списка стоит точка с запятой (;), то

следующее значение размещается после числа через один пробел, а после символьного значения - в следующей позиции.

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

Если за последним элементом списка стоит "," или ";", то первое значение, выводимое следующим оператором PRINT, размещается в следующей зоне или следующей позиции.

Оператор PRINT без списка элементов служит для перевода строки терминала.

Пример:

PRINT -4

PRINT 15; ; 30

Сообщение, выводимое на терминал:

-4

15 30

Для вывода символьных данных используется символ " (кавычки).

Пример:

Нужно вывести на печать слово СКОРОСТЬ

По оператору

PRINT"СКОРОСТЬ"

БЕЙСИК выведет на терминал:

СКОРОСТЬ

Для вывода данных в заданном формате используется оператор PRINT USING, имеющий структуру:

[N строки] PRINT USING <список форматов>;<список вывода>

где <список вывода> оформляется так же, как в операторе

PRINT;

<список форматов> - последовательность специальных символов, заключенных в кавычки.

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

# - вывод одной цифры;

. - вывод десятичной точки;

+ или (-) - вывод знака числа (+ или -);

(-) - вывод знака отрицательного числа (без скобок);

^^^^ - выделение поля для вывода экспоненты

и другие.

Примеры использования форматов:

Формат Выводимое число Результат

## 12 12

###.## 12 12.00

###.## 123 123.00

+### 123 +123

-### -123 -123

-### 123 123

##.##^^^^ 123 1.23Е+02

Например, оператор

PRINT USING "+##.#";A,B,C

выводит значения переменных А,В,С со знаками. Каждое значение имеет две цифры в целой части и одну в дробной.

Операторы END и STOP.

Операторы END и STOP используются для приостанова и завершения выполнения программы.

Формат оператора

END

Оператор END должен быть последним в программе.

Оператор STOP приостанавливает выполнение программы, но не закрывает файлы в отличие от оператора END, который завершает выполнение программы и закрывает файлы. Оператор STOP можно размещать в различных местах программы для проверки выполнения логики программы. Оператор STOP вызывает останов программы и выводит сообщение:

STOP AT LINE HC

READY,

где НС - номер строки, на которой произошел останов программы.

Оператор CLS - очистка экрана.