Описание языка Turbo Basic для студентов всех специальностей
АННОТАЦИЯ
Настоящее пособие содержит описание основных средств языка
Турбо-Бейсик, а также необходимые сведения по среде Турбо-Бейсика.
Пособие в основном ориентировано на использование при выпол-
нении практикума по курсу Основы прикладной информатики». Может
также использоваться в качестве справочника по языку Турбо-Бейсик.
С Московский государственный
институт стали и сплавов
1994 г.
— 3 —
С О Д Е Р Ж А Н И Е
1. Основные средства языка………………………… 4
1.1. Структура программы……………………….. 4
1.2. Типы данных………………………………. 4
1.3. Массивы………………………………….. 5
1.4. Выражения………………………………… 5
1.5. Стандартные функции……………………….. 6
1.6. Основные операторы………………………… 8
1.7. Операторы цикла…………………………… 10
1.8. Подпрограммы, функции и процедуры…………… 12
2. Цвет и графика………………………………… 16
3. Файлы. Работа с файлами данных последовательного и
прямого доступа……………………………….. 20
3.1. Файлы последовательного доступа…………….. 20
3.2. Файлы прямого доступа……………………… 23
4. Движущиеся изображения, звуковые эффекты и нестандар-
тный ввод с клавиатуры…………………………. 26
4.2. Оператор DRAW…………………………….. 26
4.3. Операторы GET и PUT……………………….. 27
4.4. Оператор BEEP…………………………….. 28
4.5. Оператор SOUND……………………………. 28
4.6. Оператор PLAY…………………………….. 28
4.7 Функция INKEY$……………………………. 30
5. Библиотека стандартных процедур в Турбо-Бейсике…… 31
6. Рекомендуемый порядок работы на ПЭВМ при создании и
выполнении программ на языке Турбо-Бейсик………… 32
— 4 —
1. ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА
1.1. Структура программы
Программа состоит из строк. Одна строка содержит один или
несколько операторов, разделенных двоеточием. Например,
a=1 b=1
Перенос оператора на другую строку допускается. В этом слу-
чае используется знак переноса _. Например,
a=1 b_
=1
Строки могут нумероваться (но это не обязательно). Ссылка в
нужное место программы может осуществляться также по метке.
_Метка . размещается в отдельной строке, начинается с буквы и
содержит любое количество букв и цифр. После метки ставится двое-
точие. Например,
aaa
x=x+1
…
GOTO aaa
Если первым символом в строке является апостроф (‘), то
строка воспринимается как комментарий.
_Имя . образуется из букв от A до Z (или от a до z), знака под-
черкивания _ и цифр от 0 до 9, начинается с буквы. Имя использу-
ется для обозначения переменных, меток, процедур и т.п.
1.2. Типы данных
Целый (значения от -32767 до 32767, занимает 2 байта); длин-
ный целый (от 2 5-31 0до 2 531 0, 4 байта); вещественный (4 байта); ве-
щественный двойной точности (8 байт); символьный ( последователь-
ность любых символов, каждый символ занимает 1 байт).
_Тип переменной .определяется типом данных, которые она предс-
тавляет. Указание типа переменной задается соответствующим знаком
после имени.
a$ — символьный
a% — целый
a& — длинный целый
— 5 —
a! — вещественный обычной точности
а# — вещественный двойной точности
Если знак после имени отсутствует, то эта переменная счита-
ется по умолчанию вещественной обычной точности. То есть
a!=1.1
и
а=1.1
одно и то же.
1.3. Массивы
_Описание массивов . осуществляется с помощью оператора DIM с
указанием размеров. Например, оператор
DIM a(10), b(10 20, 25 45)
описывает одномерный массив a, элементы которого имеют индексы от
0 до 10, и двухмерный массив b, элементы которого имеют индексы
первый от 10 до 20, второй от 25 до 45.
Если нижняя граница индексов в описании не указана, то она
считается равной 0.
Используя оператор _OPTION BASE n ., можно задать нижнюю грани-
цу индексов равной n. Например,
OPTION BASE 1
DIM a(10)
В этом случае индекс элементов массива a 2 0будет принимать значе-
ния, начиная с 1. Если описание массива отсутствует, то по умол-
чанию верхний индекс равен 10 ( нижний — 0). В описании массива
вместо константы может использоваться переменная. Например,
DIM a(n)
Значение n должно быть предварительно определено.
Используя _оператор ERASE ., можно освободить память, выделен-
ную под массив, и вернуть ее для дальнейшего использования. Нап-
ример, оператор
ERASE a
возвращает память, выделенную под массив a.
1.4. Выражения
_Символьные выражения . состоят из символьных констант (после-
довательность символов, заключенная в кавычки), символьных пере-
— 6 —
менных, символьных функций, соединенных знаком + (конкатенация,
или объединение). Например,
a$=»КАТЯ»
b$=»ЛЕНА»
f$=a$+» И «+b$
В результате f$ будет иметь значение «КАТЯ И ЛЕНА». При помощи
функций LEFT$, RIGHT$, MID$ можно выбрать часть символьной пере-
менной слева, справа или из середины. Например,
F1$=LEFT$(f$,4)
F2$=RIGHT(f$,4)
F3$=MID$(f$,6,1)
В результате будет F1$ = «КАТЯ», F2$ = «ЛЕНА» и F3$ = «И».
_Числовые выражения . включают в себя константы, переменные,
функции, соединенные знаками арифметических операций, при этом
могут использоваться величины разных типов.
_Приоритеты . арифметических операций
1. Возведение в степень (^)
2. Умножение, деление (*,/ )
3. Деление нацело () (например, 52 равно 2)
4. Вычисление остатка от деления (MOD) (например, 45 MOD 19
равно 7)
5. Сложение, вычитание (+,-)
1.5. Стандартные функции
Запись на Бейсике Математическая запись
ABS (x) │x│
SIN (x) sin x
COS (x) cos x
TAN (x) tg x
ATN (x) arctg x
EXP (x) e 5x
LOG (x) ln x
LOG2(x) log 42 0x
LOG10(x) lg x
INT (x) целая часть х
SGN (x) знак х (+1 при х > 0,
0 при х=0, -1 при x < 0)
SQR (x) квадратный корень из х
— 7 —
LEN (а$) количество символов а$
LEFT$(a$,n) выбирает из a$ n символов,
начиная с первого
MID$ (a$,m,n) выбирает из a$ n символов,
начиная с m-го
RIGHT$ (a$,n) выбирает n символов а$,
начиная с последнего
STR$ (x) преобразует число к
символьному виду
VAL (a$) определяет числовое значение а$
ASC (a$) определяет код первого
символа а$
TAB (n) указывает номер позиции для
вывода следующего элемента в
списке вывода оператора PRINT
SPC (n) вывод n пробелов, используется
в списке вывода оператора PRINT
RND [(x)] выдает случайное число из инте-
рвала (0,1)
Замечания. 1. [] обозначают необязательный параметр.
2. Если х=0, то повторяется последнее сгенерированное число; если
х < 0, то для каждого x 2 0генерируется новая последовательность
случайных чисел; если x > 0 или отсутствует, то генерируется оче-
редное случайное число, но при повторном запуске последователь-
ность повторяется. Можно использовать оператор RANDOMIZE (перед
первым использованием функции RND), чтобы при новом запуске прог-
раммы получать новую последовательность случайных чисел.
_Операции отношения . <, <=, >, >=, <>.
Левая и правая части отношения — это числовое или символьное
выражение (в последнем случае сравниваются числовые коды симво-
лов). Если отношение удовлетворяется (является истинным), то его
значение равно -1 , если не удовлетворяется (является ложным), то
его значение 0. Отношения могут быть использованы также в число-
вых выражениях. Например, при выполнении оператора
PRINT 5 > 6, 5 < 6, (5 < 6) * 15
будет напечатано 0, -1 и -15.
_Логические операции . AND (логическое и ), OR (логическое
или), XOR (исключающее или ), EQV (эквивалентность), IMP (импли-
кация).
— 8 —
Логические операции осуществляются над целыми числами -1
(TRUE) и 0 (FALSE).
-1, если A = -1, B = -1
A AND B 0, в остальных случаях
0, если A = 0, B = 0
A OR B -1, в остальных случаях
-1, если A и B не совпадают
A XOR B 0, если A и B совпадают
-1, если A и B совпадают
A EQV B 0, если A и B не совпадают
0, если A = -1, B = 0
A IMP B -1, в остальных случаях
1.6. Основные операторы
_Оператор присваивания . имеет вид
1переменная 0 = 1 выражение
_Оператор безусловного перехода . имеет вид
GOTO 1метка
_Условный оператор . имеет вид
IF 1условие 0 THEN 1операторы 0 [ELSE 1операторы 0]
Например,
IF a < b THEN t=15 V=16 ELSE t=17
В качестве условия может использоваться целое выражение, которое
интерпретируется как FALSE, если его значение равно 0, и TRUE,
если не равно 0.
Если после THEN или после ELSE располагается целая группа
операторов, то можно использовать _IF блок ., который имеет следую-
щую структуру
IF 1условие 0 THEN
1операторы
ELSE
1операторы
END IF
При этом ELSE и операторы за ним могут отсутствовать, т.е. воз-
— 9 —
можна конструкция
IF 1условие 0 THEN
1операторы
END IF
Если после ELSE необходима проверка условия, то используется опе-
ратор ELSEIF
IF 1условие 0 THEN
1операторы
ELSEIF 1условие 0 THEN
1операторы
ELSE
1операторы
END IF
_Оператор конца END . используется для окончания выполнения
программы. Может использоваться в программе несколько раз. Ис-
пользуется также с IF, SUB, DEF, SELEСT (см.ниже)
_Оператор очистки экрана CLS .обычно располагается в начале
программы для очистки экрана перед выводом результатов программы.
_Оператор ввода INPUT . имеет вид
INPUT [;] [ 1поясняющий текст 0], 1список переменных
Поясняющий текст заключается в кавычки. Переменные в списке отде-
ляются друг от друга запятыми. «;» после INPUT означает, что кур-
сор останется на той же строке, когда будет нажат «Ввод».
_Оператор вывода PRINT . имеет вид
PRINT [ 1список вывода 0]
Элементы списка разделяются»