Смекни!
smekni.com

Описание языка Turbo Basic для студентов всех специальностей (стр. 2 из 5)

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]

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условие

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

Если начальная точка отсутствует, то линия будет прочерчена, на-

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