Hовi команди системи turbo-basic 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

                   READ Frequensy, Duration

       WHILE Frequensy <> -1

                   SOUND Frequensy, Duration 1.33

                   READ Frequensy, Duration

       WEND

END

Happy:

       DATA 784, 3, 659, 2, 523, 6, 659, 6, 784, 6, 1047, 15, 1329, 3

       DATA 1175, 2, 1047, 6, 659, 6, 740, 6, 784, 15, -1, -1

 

'ЗВУКОВI ЕФЕКТИ

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

WHILE Q$ <> "Q"

CLS

       PRINT "Sound effects": PRINT

       COLOR 15, 0: PRINT " B";: COLOR 7, 0: PRINT "ouncing"

       COLOR 15, 0: PRINT " F";: COLOR 7, 0: PRINT "alling"

       COLOR 15, 0: PRINT " K";: COLOR 7, 0: PRINT "laxon"

       COLOR 15, 0: PRINT " S";: COLOR 7, 0: PRINT "iren"

       COLOR 15, 0: PRINT " Q";: COLOR 7, 0: PRINT "uit"

       PRINT: PRINT "Select: ";

                   Q$ = " "

       WHILE INSTR("BFKSQbfksq", Q$) = 0

                   Q$ = INPUT$(1)

       WEND

CLS

       IF Q$ = "B" OR Q$ = "b" THEN

                   PRINT "Bouncing... "

                   CALL Bounce(32767, 246)

       ELSEIF Q$ = "F" OR Q$ = "f" THEN

                   PRINT "Falling... "

                   CALL Fall(2000, 550, 500)

       ELSEIF Q$ = "S" OR Q$ = "s" THEN

                   PRINT "Wailing..."

                   PRINT "... press any key to end."

                   CALL Siren(780, 650)

                   ELSEIF Q$ = "K" OR Q$ = "k" THEN

                   PRINT "Oscillating..."

                   PRINT "... press any key to end."

                   CALL Klaxon(987, 329)

       ELSEIF Q$ = "q" THEN

                   Q$ = "Q"

       END IF

WEND

END

SUB Bounce (Hi, Low) STATIC

       FOR Count = 60 TO 1 STEP -2

                   SOUND Low - Count / 2, Count / 20

                   SOUND Hi, Count / 15

       NEXT

END SUB

SUB Fall (Hi, Low, Del) STATIC

       FOR Count = Hi TO Low STEP -10

                   SOUND Count, Del / Count

       NEXT

END SUB

SUB Klaxon (Hi, Low) STATIC

       WHILE INKEY$ = ""

                   SOUND Hi, 5

                   SOUND Low, 5

       WEND

END SUB

SUB Siren (Hi, Rng) STATIC

       WHILE INKEY$ = ""

                   FOR Count = Rng TO -Rng STEP -4

                              SOUND Hi - ABS(Count),.3

                              Count = Count - 2 / Rng

                   NEXT

       WEND

END SUB

'ГРАФIЧHИЙ РЕДАКТОР

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

ON KEY (1) SUB 500

KEY (1) ON

SCREEN 2

200 x$=input$(1)

                   IF X$="S" OR x$="s" THEN END

                   IF X$="A" OR X$="a" THEN DRAW "L5"

                   IF X$="D" OR X$="d" THEN DRAW "R5"

                   IF X$="W" OR X$="w" THEN DRAW "U5"

                   IF X$="X" OR x$="x" THEN DRAW "D5"

                   IF X$="E" OR x$="e" THEN DRAW "E5"

                   IF X$="C" OR x$="c" THEN DRAW "F5"

                   IF X$="Z" OR x$="z" THEN DRAW "G5"

                   IF X$="Q" OR x$="q" THEN DRAW "H5"

                   IF X$="F" OR x$="f" THEN DRAW "C0 U0 C1 BL5 U0"

                   IF X$="H" OR x$="h" THEN DRAW "C0 U0 C1 BR5 U0"

                   IF X$="B" OR x$="b" THEN DRAW "C0 U0 C1 BD5 U0"

                   IF X$="T" OR x$="t" THEN DRAW "C0 U0 C1 BU5 U0"

GOTO 200

500 END

 

'СОРТУВАHHЯ СЛIВ

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

CLS

LOCATE 10,25

INPUT "Кiлькiсть слів, що сортуються: ";N

DIM X$(N)

       FOR I = 1 TO N

                   CLS

                   LOCATE 10, 20: PRINT "Введiть ";i;" слово";

                   INPUT X$(I)

       NEXT I

                   CLS

       FOR I = 1 TO N - 1

                   FOR J = I + 1 TO N

                              IF X$(I) > X$(J) THEN SWAP X$(I), X$(J)

       NEXT J, I

       FOR I=1 TO N

                   LOCATE I+3,30

                   PRINT X$(I)

       NEXT I

 END

 

' IМIТАЦIЯ ОБЕРТАHHЯ РИСОЧКИ

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

ON KEY (1) GOSUB 500

KEY (1) ON

CLS

50              LOCATE 12,40: PRINT "(¦)": DELAY.1

                   LOCATE 12,40: PRINT "(/)": DELAY.1

                   LOCATE 12,40: PRINT "(-)": DELAY.1

                   LOCATE 12,40: PRINT "(\)": DELAY.1

GOTO 50

500 END

 

'ПОБУДОВА ДIАГРАМИ

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

SUB GRAF(NX1,NY1,NX2,NY2,N,Y(1))

       SCREEN 2

                   YMAX=Y(1): YMIN=Y(1)

       FOR I = 1 TO N

                   IF Y(I) < YMIN THEN YMIN = Y(I)

                   IF Y(I) > YMAX THEN YMAX = Y(I)

       NEXT I

                   DX1 = 8: DX = FIX((NX2 - NX1 - (N - 1) DX1) / N)

                   X1 = NX1

                   Y1 = NY2 - FIX(((-YMIN) (NY2 - NY1)) / (YMAX - YMIN))

       FOR I = 1 TO N

                   X2 = X1 + DX

                   Y2 = NY2 - FIX(((Y(I) - YMIN) (NY2 - NY1)) / (YMAX - YMIN))

                              LINE (X1,Y1) - (X2,Y2),,BF

                   X1 = X2 + DX1

       NEXT I

                              LINE (nx1,Y1) - (nx2,Y1)

END SUB

CLS

       INPUT "ЗАДАЙТЕ КІЛЬКІСТЬ ВУЗЛІВ ГРАФІКА"; M

       DIM Z(M)

                   FOR I = 1 TO M

                              INPUT Z(I)

                   NEXT I:

       CLS

                   X1 = 80: X2 = 500

                   Y1 = 50: Y2 = 150

CALL GRAF(X1,Y1,X2,Y2,M,Z())

END

 

Основна таблиця ASCII

000   001   002   003   004   005   006   007   008   009   010   011   012   013   014   015  
016 > 017 < 018 c 019 !! 020   021   022 ; 023 c 024   025   026   027   028   029   030   031  
032   033 ! 034 " 035 # 036 $ 037 % 038 & 039 ' 040 ( 041 ) 042   043 + 044 , 045   046 . 047 /
048 0 049 1 050 2 051 3 052 4 053 5 054 6 055 7 056 8 057 9 058 : 059 ; 060 < 061 = 062 > 063 ?
064 @ 065 A 066 B 067 C 068 D 069 E 070 F 071 G 072 H 073 I 074 J 075 K 076 L 077 M 078 N 079 O
080 P 081 Q 082 R 083 S 084 T 085 U 086 V 087 W 088 X 089 Y 090 Z 091 [ 092 \ 093 ] 094 ^ 095 _
096 ` 097 a 098 b 099 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o
112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 : 125 } 126 ~ 127  

Розширена таблиця ASCII (альтернативне кодування)



Поделиться:


Последнее изменение этой страницы: 2020-03-02; просмотров: 98; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.208.172.3 (0.158 с.)