Смекни!
smekni.com

Мова програмування Turbo-Basic (стр. 8 из 10)

SGN (x)знак x.

SIN (x)синус x.

SPACE$ (n)ланцюжок пропусків.

n числовий вираз із значенням від 0 до 255. Значення функції ланцюжок символів, який складається з n символів "пропуск".

SPC (n)виведення ланцюжка пропусків.

n числовий вираз із значенням від 0 до 255; якщо n більше ніж ширина пристрою, для якого застосовується функція, то замість n використовується n MOD w, де w ширина пристрою.

Функцiя застосовується тільки в операторах PRINT, LPRINT та PRINT# для виведення пропусків.

SQR (x)корінь квадратний з x.

STR$ (x) зображення числа.

Значення функції рядок знаків, що зображує значення виразу x при виведенні на екран або друк. Оберненою до функції STR$ є функція VAL.

STRING$ (n,m)ланцюжок з nсимволів CHR$(m).

STRING$ (n,x$)n-кратне повторення першого символу послідовності.

TAB (n)табуляцiя до позиції nпри виведенні.

TAN (x)тангенс x.

TIME$ системний час.

Значенням системної змінної TIME$ є поточний системний час у відповідному форматі, встановлений при завантаженні системи або оператором TIME$Бейсiка.

TIMERлічильник часу.

Системна змінна TIMER має своїм значенням час дня. Видається число звичайної точності, значення якого кількість секунд, що пройшли від опівночі.

USR [n] (арг)виклик підпрограми на машинній мові.

n десяткова цифра (за умовчанням 0), що відповідає цифрі, яка використовується у визначенні підпрограми на машинній мові оператором DEF USR;

арг числовий вираз або символьна змінна; арг передається підпрограмі як аргумент.

VAL (x$)числове значення ланцюжка символів.

VARPTR (v)адреса змінної;

VARPTR (#нмф)адреса блоку управління файлом.

v ім'я числової або символьної змінної або елемент масиву; змінна повинна мати значення в момент обчислення функції VARPTR;

нмф номер відкритого файлу.

В обох випадках значенням функції буде ціле число із значенням від 0 до 65535, яке представляє собою зміщення в робочій області Бейсiка.

VARPTR$ (v)покажчик змінної.

v ім'я змінної, що має значення. Значення функції ланцюжок з трьох символів, перший з яких визначає тип змінної, а два наступні адресу змінної в робочій області Бейсiка.

HОВI КОМАНДИ СИСТЕМИ TURBO-BASIC

Turbo-Basic (у порівнянні з Бейсіком) має численні нові команди, а також нові опцiї для старих команд. Нижче наводяться деякі з нових операторів, функцій та системних змінних, які розширюють можливості Бейсіка.

DO/LOOP оператор циклу з тестуванням TRUE або FALSE зверху і/або знизу циклу. Повторення циклу здійснюється кеpуючими словами WHILE (для повторення за TRUE) або UNTIL (для повторення за FALSE), за якими слідує деякий вираз. Цей вираз являє собою цiлочисельну змінну, ненульове значення якої відповідає TRUE (істина), а нульове FALSE (хибність).

SUB/END SUB оператор, що визначає процедуру. В заголовку процедури вказується її унікальне ім'я, а потім в круглих дужках перераховуються (необов'язкові) формальні параметри, які відокремлюються один від одного комами. Виклик процедури здійснюється оператором CALL, який пересилає фактичні параметри за посиланням або значенням.

SELECT CASE/END SELECT оператор, який дозволяє здійснювати ефективне розгалуження програми за числовим або рядковим виразами. При його застосуванні отримується більш чітка програма, ніж при використанні операторів IF, ON n GOTO або ON n GOSUB.

DEF FN/END DEF вдосконалений оператор, який визначає функцію користувача.

IF/ELSE IF/ELSE/END IF вдосконалений оператор умовного переходу.

EXIT оператор виходу із структурного блоку (SELECT/END SELECT, DEF FN/END DEF, FOR/NEXT, IF/END IF, DO/LOOP, SUB/END SUB, WHILE/WEND).

LOCAL, SHARED, STATIC оператори, які визначають змінні процедур та функцій.

DECR, INCR оператори, які задають спосіб зменшення або збільшення змінної.

DELAY оператор, який задає паузу в секундах при виконанні програми.

INSTAT функція, яка повертає стан клавіатури. Якщо клавіша була натиснена, INSTAT повертає 1, в іншому випадку 0.

REG оператор i функція; яка дозволяє читати або записувати значення в буфер регістра.

CALL ABSOLUTE оператор, який дозволяє звертатися до програми на Асемблерi.

CALL INTERRUPT оператор, який дозволяє визвати будь-яке переривання операційної системи.

SHELL оператор, який завантажує та виконує зовнішню програму (з розширеннями .COM, .EXE, .BAT).

MTIMER функція i оператор, які зчитують i скидають мікротаймер.

EXP2, EXP10, LOG2, LOG10 експоненціальна та логарифмічна функції з основами 2 та 10.

ENVIRON оператор, ENVIRON$ функція; які використовуються для зміни конфігурації середовища (оточення процесора).

LCASE$ (UCASE$) функція, яка повертає рядок, написаний малими (великими) літерами.

Приклади використання деяких з розглянутих конструкцій будуть наведені в наступному розділі.

ПРИКЛАДИ ПРОГРАМ НА БЕЙСIКУ

'КВАДРАТИЧНЕ РIВHЯHHЯ

'------------------------------------------

SCREEN 0 : WIDTH 40

10 CLS

LOCATE 3, 5: PRINT "РОЗВ'ЯЗУЄМО КВАДРАТИЧНЕ РIВНЯНHЯ:"

LOCATE 4, 5: PRINT " A X^2 + B X + C = 0"

LOCATE 7, 5: INPUT; " ВВЕДIТЬ A: A = ", A

LOCATE 9, 5: INPUT; " ВВЕДIТЬ B: B = ", B

LOCATE 11, 5: INPUT; " ВВЕДIТЬ C: C = ", C

D = B^2 - 4 A C

IF D >= 0 THEN GOSUB 100 ELSE GOSUB 200

LOCATE 20, 5: PRINT "БУДЕТЕ ЩЕ РОЗВ'ЯЗУВАТИ ЗАДАЧУ? (Т/Н)";

50 W$ = INKEY$: IF W$ = "" THEN GOTO 50

IF W$ = "Т" OR W$ = "т" THEN GOTO 10

IF W$ = "Н" OR W$ = "н" THEN CLS: END

BEEP: GOTO 50

100 X1 = (-B + SQR(D)) / (2 A)

X2 = (-B - SQR(D)) / (2 A)

LOCATE 15, 10: PRINT " X1 = " ; X1;

LOCATE 16, 10: PRINT " X2 = " ; X2;

RETURN

200 LOCATE 15, 10: PRINT "КОРЕНIВ НЕМАЄ!";

RETURN

'ПОШУК МIНIМУМУ ТА МАКСИМУМУ ВЕЛИЧИН, ЯКI ВВОДЯТЬСЯ З 'КЛАВIАТУРИ

'--------------------------------------------------------------------------------------------------------

DIM X(100)

Min = 999999 : Max = -999999

FOR I = 1 TO 25

10 INPUT "Введiть дані ", X(I)

IF X(I) < 0 OR X(I) > 100 THEN BEEP: GOTO 10

NEXT I

FOR I = 1 TO 10

IF X(I) < Min THEN Min = X(I)

IF X(I) > Max THEN Max = X(I)

NEXT I

PRINT "Мiнiмальне значення = "; Min

PRINT "Максимальне значення = "; Max

END

'ТАбЛИЦЯ МНОЖЕНHЯ

'------------------------------------

SCREEN 0

LOCATE 3, 5: INPUT "ЯК ВАС ЗВАТИ"; Nam$

10 CLS

LOCATE 5, 5: INPUT "ВВЕДIТЬ ПЕРШИЙ СПIВМНОЖHИК ",A

LOCATE 7, 5: INPUT "ВВЕДIТЬ ДРУГИЙ СПIВМHОЖHИК ",B

LOCATE 9, 5: INPUT "ЧОМУ РIВНИЙ ДОБУТОК ДВОХ СПIВМHОЖHИКIВ ";C

PR = A B

IF C = PR THEN LOCATE 12, 10: PRINT "МОЛОДЕЦЬ, "; Nam$;"!"

IF C <> PR THEN LOCATE 12, 10: PRINT "ВЧИСЬ, " ; Nam$;"!"

LOCATE 15, 5: PRINT "Q - ВИХIД"

LOCATE 17, 5: PRINT "IHША КЛАВIША - ПРОДОВЖЕHНЯ"

100 W$ = INKEY$: IF W$ = "" THEN GOTO 100

IF W$ = "Q" OR W$ = "q" THEN END ELSE GOTO 10

'ПРЯМОКУТHИКИ

'---------------------------

SCREEN 2 : CLS

VIEW

WINDOW (0, 0) - (100, 100)

FOR I = 1 TO 20

LINE (10 + I, 10 + I) - (70 + I, 70 + I),, B

NEXT I

END

'ЧОРНА ДIРКА

'--------------------

SCREEN 1, 0 : CLS : COLOR 14, 1

FOR I=50 TO 1 STEP -.5

Y = 90 / I: R = 3 I

CIRCLE (160, 30 + 10 Y), R, 1,,, .3

NEXT

END

'САТУРН

'-------------

SCREEN 1, 0 : CLS

CIRCLE (160, 100), 79, 3

CIRCLE (160, 100), 80, 3

ST = .77: SP = .77

FOR I= 1 TO 30 STEP 5

ST = (ST - .015): SR = ST PI

SP = SP + .04

CIRCLE (160, 93), 100 + I, 3, SR ,SP , .3

NEXT

END

'ЦИКЛОЇДА, ЕПIЦИКЛОЇДА, ГIПОЦИКЛОЇДА (монітор EGA)

'---------------------------------------------------------------------------------------

PLAY "MB o2 l4 af af b- a g2 c c c d8 e8 f4 f4 f2"

SCREEN 9 : CLS

A1 = 1 : B1 = 2

A2 = 1 : B2 = 1

A3 = 1 : B3 = .5

VIEW (1, 1) - (638, 315), 3, 3

WINDOW (-2, -3) - (20, 5)

LINE (-2, 0) - (20, 0), 11

LINE (0, -3) - (0, 5), 11

FOR T = 0 TO 20 STEP .007

X1 = A1 T - B1 SIN(T) : Y1 = A1 - B1 COS(T)

PSET (X1, Y1), 1

X2 = A2 T - B2 SIN(T) : Y2 = A2 - B2 COS(T)

PSET (X2, Y2), 14

X3 = A3 T - B3 SIN(T) : Y3 = A3 - B3 COS(T)

PSET (X3, Y3), 5

NEXT T

END

'4 ВIКНА З ГРАФIКАМИ ФУНКЦIЙ

'------------------------------------------------

SCREEN 2 : CLS

VIEW (1, 1) - (315, 96),, 1

WINDOW (-10, -1.1) - (10, 1.1)

FOR X = -10 TO 10 STEP .02

Y = SIN(X) : PSET (X, Y)

NEXT X

VIEW (325, 1) - (638, 96),, 1

WINDOW (-10, 0) - (10, 1.1)

FOR X = -10 TO 10 STEP .02

Y = 1 / (1 + X^2) : PSET (X, Y)

NEXT X

VIEW (1, 102) - (315, 198),, 1

WINDOW (-10, -.1) - (10, 100)

FOR X = -10 TO 10 STEP .02

Y = X^2 : PSET (X, Y)

NEXT X

VIEW (325, 102) - (638, 198),, 1

WINDOW (-40, -40) - (40, 40)

FOR X = -40 TO 40 STEP .02

Y = X SIN(X) : PSET (X, Y)

NEXT X

END

'ВИПАДКОВI КОЛА

'----------------------------

SCREEN 2 : CLS

VIEW

WINDOW (-10, -10) - (110, 110)

FOR I = 1 TO 100

X = 100 RND(1) : Y = 100 RND(1) : R = 5 RND(1)

CIRCLE (X, Y), R

NEXT I

END

'НОТИ

'----------

5 CLS

LOCATE 1, 1: PRINT "--------- СI (B)"

LOCATE 2, 1: PRINT "--------- ЛЯ (A)"

LOCATE 3, 1: PRINT "--------- СОЛЬ (G)"

LOCATE 4, 1: PRINT "--------- ФА (F)"

LOCATE 5, 1: PRINT "--------- МI (E)"

LOCATE 6, 1: PRINT "--------- РЕ (D)"

LOCATE 7, 1: PRINT "--------- ДО (C)"

LOCATE 9, 1: PRINT " Вихiд (Q)"

PLAY "O2"

10 W$ = INKEY$: IF W$ = "" THEN GOTO 10

IF W$="B" OR W$="b" THEN LOCATE 1,5: PRINT "O": PLAY "B2": GOTO 5

IF W$="A" OR W$="a" THEN LOCATE 2,5: PRINT "O": PLAY "A2": GOTO 5

IF W$="G" OR W$="g" THEN LOCATE 3,5: PRINT "O": PLAY "G2": GOTO 5

IF W$="F" OR W$="f" THEN LOCATE 4,5: PRINT "O": PLAY "F2": GOTO 5

IF W$="E" OR W$="e" THEN LOCATE 5,5: PRINT "O": PLAY "E2": GOTO 5

IF W$="D" OR W$="d" THEN LOCATE 6,5: PRINT "O": PLAY "D2": GOTO 5

IF W$="C" OR W$="c" THEN LOCATE 7,5: PRINT "O": PLAY "C2": GOTO 5

IF W$="Q" OR W$="q" THEN END

BEEP: GOTO 10

'МУЗИКАЛЬНI МЕЛОДIЇ

'----------------------------------

CLS : WIDTH 40

PRINT "---Варшав'янка---"

PLAY "t100 l8 o3 mn a4 ml a. mn g16 f4 ml f. mn c+16 d4 ml d."

PLAY "mn c16 d4 f4 e4 a. a16 ml a g f mn e ml d e f mn g a2 p2"

PRINT "---Окрасился месяц багрянцем---"

PLAY "t100 l8 mn o3 g c4 c e- g4 f e- ml g4. f16 mn e-16 d4."

PLAY "c o2 b-4 o3 d f b-4 o4 c o3 a- ml g2 mn g p p o4"

PLAY "d c4 o3 g g o4 ml e- mn d c o3 g ml b-4. a-16 mn g16"

PLAY "ml f e- mn d c g4 f g ml b- mn a- d e- c2 p2"

PRINT "---Засвистали козаченьки---"

PLAY "t100 l4 mn o3 g o4 g ml g f8 mn e-8 d g c c f f f g4 ml"

PLAY "d2 f8 e-8 d8 mn c8 d d d e- ml d8 c8 o3 b-8 mn a8 g o4 g"

PLAY "ml f8 e-8 d8 mn c8 o3 b- a g2 ml g8 p2"

PRINT "---заспіваймо пісню веселеньку---"

PLAY "t140 l4 mn o3 e a o4 c. o3 a8 b8 o4 d8 c8 o3 b8 a e"

PLAY "o4 c o3a ml o4 d8 c8 o3 mn b8 a8 ml g+8 mn g+8 ml b8"

PLAY "mn a8 e e4o4 e e g. e8 d ml g8 mn f8 e d c. o3 a8"

PLAY "o4 d8 c8 o3 b8 a8 o4 e2 d2"

END

'HAPPY BIRTHDAY

'----------------------------

RESTORE Happy