Реферат: Описание языка Turbo Basic для студентов всех специальностей
....
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 суммирует элементы массива.
Основные отличия процедуры от подпрограммы-функции :
1 - процедура не обязана возвращать значение, она не имеет типа;
2 - вызывается оператором CALL, а не из выражения.
Отдельные переменные, используемые в процедуре (или подпрог-
рамме-функции), могут быть объявлены локальными, т.е. действующи-
ми только в данной подпрограмме (оператор LOCAL), общими, т.е.
действующими как в подпрограмме, так и в основной программе (опе-
ратор SHARED) и статическими, т.е. действующими в данной подпрог-
рамме как LOCAL, но сохраняющими полученные значения до следующе-
го обращения (оператор STATIC). По умолчанию в подпрограмме-функ-
ции переменная является SHARED, а в процедуре STATIC.
DEF FNF1
LOCAL i, S
FOR i =1 to 10
S = S + i
NEXT i
FNF1 = S
END DEF
После выхода из подпрограммы-функции переменные i и S теряют свои
значения (при входе в подпрограмму всегда S = 0). Эти же имена
могут использоваться в программе для обозначения других величин.
DEF FNF2
LOCAL i
SHARED S
FOR i = 1 to 10
S = S + i
NEXT i
- 15 -
FNF2 = S
END DEF
В этом случае S сохраняет значение после выхода из подпрограммы и
имеет один и тот же смысл во всех частях программы.
DEF FNF3
LOCAL i
STATIC S
FOR i = 1 to 10
S = S + i
NEXT i
FNF3 = S
END DEF
В этом случае S сохраняет значение после выхода из подпрограммы
до следующего обращения к ней, т.е. после первого обращения зна-
чение функции FNF3 будет 55, после второго - 110 и т.д. (S нельзя
изменять в основной программе).
- 16 -
2. ЦВЕТ И ГРАФИКА
В графическом режиме экран рассматривается как решетка, точ-
ки в узлах которой могут быть включены (белым или другим возмож-
ным цветом) или выключены. Точка идентифицируется координатами x,
y; x - номер позиции по горизонтали (от 0 до 319 или до 639 в за-
висимости от режима), y - номер позиции по вертикали (от 0 до 199
или до 349 в зависимости от режима). Точка с координатами 0,0 на-
ходится в верхнем левом углу экрана.
Графический режим устанавливается (или отменяется) _операто-
_ром SCREEN ..
SCREEN i[,j]
i = 0, j = 0 черно-белый текстовый режим
i = 0, j = 1 цветной текстовый режим
i = 1, j = 0 цветная графика при средней разрешающей способнос-
ти (320 позиций по горизонтали, 200 по вертикали)
i = 1, j = 1 черно-белая графика при средней разрешающей спосо-
бности
i = 2 черно-белая графика при высокой разрешающей спосо-
бности (640 позиций по горизонтали, 350 по верти-
кали)
После выполнения оператора SCREEN точка устанавливается в
середину экрана.
_Оператор COLOR . 2 0устанавливает цвет фона экрана и палитру (из
трех цветов) для окрашивания точек (для текстового режима - еще и
цвет рамки).
Существует две палитры цветов: 0 и 1, следующего состава:
_Палитра 0 . _Палитра 1
1 - зеленый 1 - голубой
2 - красный 2 - сиреневый
3 - желтый 3 - белый
Для фона можно выбрать один из 16 цветов (0 - черный, 1 - синий,
2 - зеленый, 3 - бирюзовый, 4 - красный, 5 - лиловый, 6 - корич-
невый, 7 - белый, 8 - серый, 9 - голубой, 10 - ярко-зеленый, 11 -
ярко-бирюзовый, 12 - ярко-красный, 13 - ярко-лиловый, 14 - жел-
тый, 15 - ярко-белый)
Оператор COLOR 2 0имеет вид
COLOR 2 0i, 2 0j[,k]
- 17 -
где i - цвет фона, j - номер палитры, k - цвет рамки.
Например, операторы
SCREEN 1,0
COLOR 9,0
устанавливают цветной графический режим при средней разрешающей
способности; цвет фона - голубой; последующие операторы должны
использовать цвета из 0-й палитры.
В графическом режиме (для получения на экране неподвижных
изображений) могут использоваться следующие операторы:
PSET 2 0(PRESET) - включает (или выключает) точку; LINE 2 0- чер-
тит линию; CIRCLE 2 0- чертит окружность или ее часть; PAINT 2 0- зак-
рашивает указанную часть экрана.
Более сложные операторы для получения движущихся изображений
(DRAW, GET, PUT) рассматриваются в п.4.
Оператор
PSET (x, y)
включает точку с координатами x,y.
Оператор
PSET STEP (x, y)
включает точку, отстоящую на x позиций по горизонтали и на y по-
зиций по вертикали от текущей точки. Например, если в предыдущем
положении точка имеет координаты (60, 75), то оператор
PSET (10, 20) определяет точку с координатами (10, 20), а
оператор
PSET STEP (10, 20) определяет точку с координатами (70, 95).
Операторы
PSET (x, y), 0
или
PRESET 2 0(x, y)
стирают точку (x, y) с экрана.
Оператор LINE 2 0позволяет начертить отрезок прямой, указав его
начало (x1, y1), конец (x2, y2) и цвет k
LINE 2 0[(x1, y1)] 2 0- 2 0(x2, y2), 2 0k
Если начальная точка отсутствует, то линия будет прочерчена, на-
чиная с точки, в которой остановился предыдущий оператор.
С помощью оператора LINE 2 0можно также чертить и закрашивать
прямоугольники
LINE (x1, y1) - (x2, y2), 2 0[k], 2 0B[F]
Точки (x1, y1) и (x2, y2) трактуются при этом как левая нижняя и
- 18 -
правая верхняя вершины прямоугольника. Если цвет k отсутствует,
то прямоугольник будет начерчен 3-м цветом палитры. При наличии
параметра F площадь внутри прямоугольника будет закрашена. Напри-
мер, оператор
LINE (80, 175) - (100, 25), 2, BF закрашивает красным цветом
прямоугольник, расположенный между 80-ой и 100-ой позициями по
горизонтали и 175-ой и 25-ой позициями по вертикали.
_Оператор CIRCLE . 2 0позволяет строить окружности, дуги, секторы
и эллипсы.
Оператор CIRCLE 2 0(x, 2 0y), 2 0r, k
чертит окружность радиуса r с центром в точке (x, y) цветом k.
После вычерчивания окружности последней использованной точкой
считается ее центр.
Оператор CIRCLE (x, y), r, k, ALPHA1,ALPHA2
вычерчивает дугу, имеющую начало под углом ALPHA1 и конец - под
углом ALPHA2.
Например, оператор (при PI = 3.1416)
CIRCLE (160, 100), 80, 2, PI/2, PI строит дугу от PI/2 до PI ок-
ружности радиуса 80 с центром в точке (160, 100) вторым цветом
палитры.
Если использовать знак " - " перед начальной и конечной точ-
ками дуги, то будет нарисован сектор, т.е. конечные точки дуги
будут соединены с центром. Например,
CIRCLE (160, 100), 80, 2, - PI/2, - PI
Можно изобразить сплюснутую (или наоборот вытянутую) окруж-
ность, добавив в оператор CIRCLE еще один параметр. Если значение
этого параметра меньше 1, то окружность будет сплюснута по верти-
кали, если больше 1, то - по горизонтали. Например,
CIRCLE (160, 100), 80, 2, , , 3/4
Все параметры оператора CIRCLE задаются в определенном порядке и
разделяются запятыми. Обязательными являются только параметры,
указывающие положение центра и радиус окружности. Остальные пара-
метры необязательны, однако, запятые должны быть оставлены, если
пропущены параметры в середине списка.
_Оператор PAINT . 2 0позволяет закрашивать большие области экрана.
Для закрашивания необходимо указать произвольную точку внутри
закрашиваемой области (x, y), цвет, которым нужно закрасить об-
ласть (k1) и цвет границы, которую нельзя пересекать при закраши-
вании (k2), k1 и k2 могут совпадать. Оператор PAINT имеет вид
- 19 -
PAINT (x, y), k1, k2
Например, оператор
PAINT (160, 100), 2, 2
закрасит окружность нарисованную последним оператором CIRCLE,
красным цветом, как и цвет окружности, использованный в операторе
CIRCLE.
- 20 -
3. ФАЙЛЫ. РАБОТА В БЕЙСИКЕ С ФАЙЛАМИ ПОСЛЕДОВАТЕЛЬНОГО
И ПРЯМОГО ДОСТУПА
Если необходимо использовать набор данных или программу мно-
гократно, то необходимо сохранить их на внешнем устройстве памяти
(например, диске или дискете). Для этого создается файл. Файл
должен иметь имя. Имя состоит из двух частей: собственно имя и
расширение
1имя 0. 1расширение
Имя может содержать до 8 символов, расширение 1- 0до трех.
Могут использоваться следующие символы
A - z 0 - 9 ( ) { } @ # $ 1 0% ^ & ! - _ / ' ~
Полное имя файла в MS DOS содержит весь путь по дереву от
корневой директории к нужному файлу. Например,
C:\ST\LAB\work.bas,
где C - имя диска, ST - имя директории на диске, LAB - имя подди-
ректории директории ST, work.bas - имя программы на Бейсике.
Далее речь пойдет только о файлах данных.
3.1. Файлы последовательного доступа
Последовательный файл состоит из записей, доступ к которым
осуществляется последовательно, т.е. n-я запись следует за (n -
1)-ой как при формировании файла, так и при считывании из него.
Создание последовательного файла включает следующие шаги:
открытие файла (оператор OPEN), вывод данных в файл (операторы
PRINT#, WRITE#, или PRINT# USING) и закрытие файла (оператор
CLOSE).
Считывание из последовательного файла включает следующие ша-
ги: открытие файла, ввод данных из файла (операторы INPUT#,
INPUT$, LINE INPUT#), закрытие файла.
_Оператор OPEN . 2 0подготавливает файл для чтения из файла
(INPUT) или записи в файл (OUTPUT, если создается новый файл,
APPEND, если добавляются записи в уже существующий файл).
INPUT
OPEN 1имя файла 0FOR OUTPUT 1 0 AS # 1номер файла
APPEND
_Оператор CLOSE .закрывает файл, т.е. делает невозможным чте-
- 21 -
ние или запись.
CLOSE [# 1номер файла 0]