Смекни!
smekni.com

Все о Turbo Basic (стр. 2 из 4)

Элементом списка может быть имя переменной, константа (сим­вольная заключается в кавычки) или выражение (перед выводом вы­числяется).

Оператор вывода PRINT USING имеет вид PRINT USING формат; список вывода

Формат задается в виде символьной строки (заключенной в ка­вычки), задающей форму вывода каждого элемента списка по следую­щим правилам для чисел : # - для каждой цифры, ^^^^ - для вывода в показательной форме. Остальные символы обозначают сами себя. Например,

##.## - будет выведено 2 цифры в качестве целой части и две

- дробной. Если целая часть содержит более двух цифр, то перед числом будет напечатан знак % .

#.## ^^^^ - вывод будет осуществляться в показательной фор­ме.

Для символьных строк :

"\ \" - (два пробела) - будет выведено четыре символа

"\"- (без пробела) - будет выведено два символа

Вообще количество выведенных символов будет равно числу пробелов между двумя наклонными линиями + 2.

"!" - будет выведен один символ

"&" - будут выведены всесимволы

Например,

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нач to iкон [STEP ih] операторы

NEXT i

i, iнач, iкон, ih - соответственно, управляющая переменная цикла, ее начальное, конечное значения и шаг изменения. Если ih=1, то шаг можно опустить. Например,

FOR i=1 to 10

....

NEXT i

FOR i=1 to 10

FOR j=1 to 20

....

NEXT j: NEXT i или

FOR i=1 to 10

FOR j=1 to 20

....

NEXT j,i

2. DO WHILE условие операторы

LOOP или

WHILE условие операторы WEND

(операторы выполняются, пока выполняется условие)

3. DO UNTIL условие операторы

LOOP

(операторы выполняются до тех пор, пока не будет выполнено усло­вие. Как только условие будет выполнено, осуществляется выход из цикла).

4. DO операторы

LOOP

Выход из цикла в этом случае осуществляется оператором EXIT.

Оператор EXIT (выход) используется с 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 метка [, метка...]

n может принимать значения от 0 до 255. Переход осуществляется на метку, определяемую значением n. Например, при n = 2 переход осу­ществляется на вторую метку в списке. Если n = 0 или n больше ко­личества меток в списке, то выполняется следующий по порядку опе­ратор.

ON n GOSUB метка [, метка...]

n принимает значения от 0 до 255. Переход осуществляется к одной из возможных подпрограмм (см.ниже), определяемых метками в спис­ке, в зависимости от значения n.

После выполнения подпрограммы возврат осуществляется к опе­ратору, следующему за ON/GOSUB.

1.8. Подпрограммы, функции и процедуры

Подпрограмма - помеченная последовательность операторов, за­канчивающаяся оператором RETURN. Выполняется, когда достигнут GOSUB.

....

GOSUB aa

....

END aa: операторы RETURN

Оператор RETURN осуществляет возврат к оператору, непосредственно следующему за GOSUB.

Функция может быть определена одной строкой (оператор-функ­ция) или несколькими строками (подпрограмма-функция).

DEF FN имя [(список параметров)] = выражение

(это определение оператора-функции).

Здесь список параметров может включатьне более 16 параметров. DEF FN имя [(список параметров)]

описание переменных

операторы

[EXIT DEF]

....

[FN имя = выражение]

END DEF

(это определение подпрограммы-функции).

Обращение к функции записывается там, где нужно получить ее зна­чение. При этом параметры заменяются их фактическими значениями. Например,

DEF FNF (x,y) = x * x + y * y 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 имя [(список параметров)] описание переменных операторы

[EXIT SUB]

END SUB

Имя может содержать до 31 символа. Список параметров (не более

16) может включать имена переменных и массивов. Для массивов в скобках указывается размерность. Например, 1 - для одномерного массива, 2 - для двухмерного и т.д.

В обращении к процедуре за именем фактического массива сле­дуют пустые скобки. Например,

SUB SUM (x (1), n, S)

S = 0

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

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 нельзя изменять в основной программе).

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устанавливает цвет фона экрана и палитру (из

трех цветов) для окрашивания точек (для текстового режима - еще и

цвет рамки).

Существует две палитры цветов: 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имеет вид

COLORi,j[,k]

где i - цвет фона, j - номер палитры, k - цвет рамки.

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

SCREEN 1,0

COLOR 9,0

устанавливают цветной графический режим при средней разрешающей способности; цвет фона - голубой; последующие операторы должны использовать цвета из 0-й палитры.

В графическом режиме (для получения на экране неподвижных изображений) могут использоваться следующие операторы:

PSET(PRESET) - включает (или выключает) точку; LINE- чер­тит линию; CIRCLE- чертит окружность или ее часть; PAINT- зак­рашивает указанную часть экрана.

Более сложные операторы для получения движущихся изображений (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(x, y)

стирают точку (x, y) с экрана.

Оператор LINEпозволяет начертить отрезок прямой, указав его начало (x1, y1), конец (x2, y2) и цвет k

LINE[(x1, y1)]-(x2, y2),k

Если начальная точка отсутствует, то линия будет прочерчена, на­чиная с точки, в которой остановился предыдущий оператор.

С помощью оператора LINEможно также чертить и закрашивать прямоугольники

LINE (x1, y1) - (x2, y2),[k],B[F]

Точки (x1, y1) и (x2, y2) трактуются при этом как левая нижняя и правая верхняя вершины прямоугольника. Если цвет k отсутствует, то прямоугольник будет начерчен 3-м цветом палитры. При наличии параметра F площадь внутри прямоугольника будет закрашена. Напри­мер, оператор