АННОТАЦИЯ
Настоящее пособие содержит описание основных средств языка
Турбо-Бейсик, а также необходимые сведения по среде Турбо-Бейсика.
Пособие в основном ориентировано на использование при выпол-
нении практикума по курсу "Основы прикладной информатики". Может
также использоваться в качестве справочника по языку Турбо-Бейсик.
С Московский государственный
институт стали и сплавов
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. Деление нацело (\) (например, 5\2 равно 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]
Элементы списка разделяются "," или ";" или пробелом. В первом
случае вывод следующего элемента начинается в новую зону (строка
экрана условно разделена на 5 зон по 14 позиций каждая), во вто-
ром - через пробел (для чисел) или непосредственно вслед (для
символьных строк) за предыдущим элементом.
Элементом списка может быть имя переменной, константа (сим-
вольная заключается в кавычки) или выражение (перед выводом вы-
числяется).
_Оператор вывода PRINT USING . имеет вид