Описание языка Turbo Basic для студентов всех специальностей
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 . имеет вид
PRINT USING 1формат 0; 1список вывода
Формат задается в виде символьной строки (заключенной в ка-
вычки), задающей форму вывода каждого элемента списка по следую-
щим правилам для чисел : # - для каждой цифры, ^^^^ - для вывода
в показательной форме. Остальные символы обозначают сами себя.
- 10 -
Например 1,
##.## - будет выведено 2 цифры в качестве целой части и две
- дробной. Если целая часть содержит более двух цифр, то перед
числом будет напечатан знак % .
#.## ^^^^ - вывод будет осуществляться в показательной фор-
ме.
Для символьных строк :
" 1 0 " - (два пробела) - будет выведено четыре символа
"\" 1 0- (без пробела) - будет выведено два символа
Вообще количество выведенных символов будет равно числу пробелов
между двумя наклонными линиями + 2.
"!" 1 0- будет выведен один символ
"&" 1 0- будут выведены все 1 0символы
Например,
A$= "КОТ" : GA= 6.5
B$= "СОБАКА" : GB= 15.3
PRINT USING "& ВЕСИТ #.#, ВЕСИТ ##.# КГ";A$,GA,B$,GB
При выполнении этого оператора на экране появится
КОТ ВЕСИТ 6.5, СОБАКА ВЕСИТ 15.3 КГ
_Оператор определения положения курсора
LOCATE i,j
устанавливает координаты (номер строки i и номер столбца j), в ко-
торые начнется вывод данных оператором PRINT.
1.7. Операторы цикла
1. FOR i=i 4нач 0 to i 4кон 0 [STEP ih]
1операторы
NEXT i
i, i 4нач 0, i 4кон 0, ih - соответственно, управляющая переменная
цикла, ее начальное, конечное значения и шаг изменения. Если
ih=1, то шаг можно опустить. Например,
FOR i=1 to 10
....
NEXT i
FOR i=1 to 10
FOR j=1 to 20
....
NEXT j: NEXT i
- 11 -
или
FOR i=1 to 10
FOR j=1 to 20
....
NEXT j,i
2. DO WHILE 1условие
1операторы
LOOP
или
WHILE 1условие
1операторы
WEND
(операторы выполняются 1, 0 пока выполняется условие)
3. DO UNTIL 1условие
1операторы
LOOP
(операторы выполняются до тех пор, пока не будет выполнено усло-
вие. Как только условие будет выполнено, осуществляется выход из
цикла).
4. DO
1операторы
LOOP
Выход из цикла в этом случае осуществляется оператором EXIT.
_Оператор EXIT . 1( 0выход) используется с SELECT, DEF, FOR, IF,
LOOP, SUB, WHILE. Например,
EXIT FOR осуществляет выход из цикла, организованного опера-
торами FOR/NEXT до его завершения
EXIT IF - выход из любого места IF блока
EXIT LOOP - выход из цикла, заканчивающегося оператором LOOP
или WEND.
Остальные случаи использования EXIT будут рассмотрены вместе с
соответствующими операторами.
_Операторы выбора . ON/GOTO и ON/GOSUB
ON n GOTO 1метка 0 [, 1метка 0...]
n может принимать значения от 0 до 255. Переход осуществляется на
метку, определяемую значением n. Например, при n = 2 переход осу-
ществляется на вторую метку в списке. Если n = 0 или n больше ко-
личества меток в списке, то выполняется следующий по порядку опе-
- 12 -
ратор.
ON n GOSUB 1метка 0 [, 1 метка 0...]
n принимает значения от 0 до 255. Переход осуществляется к одной
из возможных подпрограмм (см.ниже), определяемых метками в спис-
ке, в зависимости от значения n.
После выполнения подпрограммы возврат осуществляется к опе-
ратору, следующему за ON/GOSUB.
1.8. Подпрограммы, функции и процедуры
_Подпрограмма . - помеченная последовательность операторов, за-
канчивающаяся оператором RETURN. Выполняется, когда достигнут
GOSUB.
....
GOSUB aa
....
END
aa:
1операторы
RETURN
Оператор RETURN осуществляет возврат к оператору, непосредственно
следующему за GOSUB.
_Функция . может быть определена одной строкой (оператор-функ-
ция) или несколькими строками (подпрограмма-функция).
DEF FN 1имя 0 [( 1список параметров 0)] = 1выражение
(это определение оператора-функции) 1.
Здесь список параметров может включать 1 0не более 16 параметров.
DEF FN 1имя 0 [( 1список параметров 0)]
1описание переменных
1операторы
[EXIT DEF]
....
[FN 1имя 0 = 1выражение 0]
END DEF
(это определение подпрограммы-функции) 1.
Обращение к функции записывается там, где нужно получить ее зна-
чение. При этом параметры заменяются их фактическими значениями.
Например 1,
DEF FNF (x,y) = x * x + y * y
- 13 -
a = 3 : b = 4
P = FNF (a,b)
или
P = FNF (3,4)
Функция возвращает одно значение, тип которого определяется име-
нем функции. Определение функции может располагаться в любом месте
программы (обычно в начале или в конце). Например,
F = FNa (1.5)
PRINT F
DEF FNa (x)
FNa = x*x
END DEF
END
или
F = FNa (1.5)
PRINT F
END
DEF FNa (x)
FNa = x*x
END DEF
В результате будет напечатано 2.25.
Список параметров оператора-функции может включать только
имена переменных.
_Процедура . - это последовательность строк программы, располо-
женная между операторами SUB и END SUB и выполняемая при обраще-
нии к ней при помощи оператора CALL.
SUB 1имя 0 [( 1список параметров 0)]
1описание переменных
1операторы
[EXIT SUB]
END SUB
Имя может содержать до 31 символа. Список параметров (не более
16) может включать имена переменных и массивов. Для массивов в
скобках указывается размерность. Например, 1 - для одномерного
массива, 2 - для двухмерного и т.д.
В обращении к процедуре за именем фактического массива сле-
дуют пустые скобки. Например,
SUB SUM (x (1), n, S)
S = 0
- 14 -
FOR I=1 to n
S = S + x (I)
NEXT I
END SUB
DIM A (3)
A (1) = 1 : A (2) = 2 : A (3) = 4
CALL SUM ( A (), 3, S)
S = S/3
PRINT S
END
Эта программа вычисляет среднее значение элементов массива A,
процедура SUM суммирует элементы массива.
Основные отличия