Програмиране на Basic

ФОРМАТ НА ПРОГРАМНИЯ РЕД

Програмните редове в Basic имат следния формат:
nnnnn Бейсик_оператор[ : Бейсик_оператор. . . ] [ ‘ коментар]
и завършват със символа за край на ред (Enter).
Номера на редове: ”nnnnn” е номер на програмния ред и се състои от максимум пет десетични цифри. Номерата на програмните редове показват последователността, в която редовете се съхраняват в паметта и се използват като операнди в инструкциите за преход и командите за редактиране. Номерата на редовете трябва бъдат в интервал от 0 до 65529. Символът точка ( . ) може да бъде използван в командите LIST, AUTO, DELETE и EDIT за указване на текущия ред.
Бейсик-оператори: Един оператор на Бейсик е или изпълняем или неизпълняем. Изпълняемите оператори указват на интерпретатора какво е следващото действие, което трябва да извърши, когато изпълнява програма. Например, оператора PRINT X е изпълняем. Неизпълняемите оператори, такива като DATA или REM , съдържат само информация и не предизвикват никакви програмни действия. Всички оператори на Basic са описани детайлно в раздел
” Команди, оператори и функции” .
В един програмен ред може да се съдържат няколко оператора на Бейсик, но всеки от тях трябва де е разделен от предходния с двоеточие ( : ). Общият брой на символите в програмния ред не може да превишава 255, включително Enter.
Например:
10 FOR I = 1 TO 5 : PRINT I : NEXT
RUN
коментар: Коментар може да се включи в края на програмния ред. Коментара трябва да се предшества от апостроф ( ‘ ).

НАБОР СИМВОЛИ

Следва списък на специалните символи, които имат специфично значение в Basic :
Символ Значение
интервал
=  знак за равенство или символ за присвояване
+   знак плюс или символ за конкатенация
-  знак минус
*  звезда или символ за умножение
/   наклонена черта или символ за деление
\  обратна наклонена черта; символ за целенасочено деление или разделител в описание на път.
^  символ за повдигане на степен
(   лява скоба
)  дясна скоба
%   знак за процент или символ за целочислена променлива
#  знак за номер или символ за променлива с двойна точност
$   знак за долар или символ за променлива
‘  апостроф или разделител за коментар
!  удивителен знак или символ за променлива с единична точност
.  точка или десетична точка
&  амперсанд
,  запетая
;  точка и запетая
:  двоеточие или разделител на оператори
?  въпросителен знак или съкратено записване на думата Print
<  знак “ по-малко от “
>  знак “ по-голямо от “
“  кавички или разделител на символни стойности
_  знак за подчертаване

Много други символи могат да бъдат разпечатани или изведени на екрана, но те нямат специално значение в Basic.

РЕЗЕРВИРАНИ ДУМИ

Някой думи и буквени съчетания имат специално значение в Бейсик. Те се наричат резервирани думи. Резервирани думи са всички имена на команди, оператори и функции на Бейсик. Те не може да бъдат използвани като имена на променливи. Резервираните думи трябва да бъдат отделени от данните или от другите части на операторите на Basic със символа интервал или със специални символи, съобразно синтаксиса на езика.
Списък на резервираните думи в Basic
ABS AND ASC ATN
AUTO BEEP BLOAD BSAVE
CHAIN CHDIR CHR$ CINT
CIRCLE CLEAR CLOSE CLS
COLOR COM COMMON CONT
COS CSNG CSRLIN CVD
CVI CVS DATA DATE$
DEF DEFDBL DEFINT DEFSNG
DEFSTR DELETE DIM DRAW
EDIT ELSE END ENVIRON
ENVIRON$ EOF EQV ERASE
ERDEV ERDEV$ ERL ERR
ERROR EXP FIELD FILES
FIX FNxxxxxxxx FOR FRE
GET GOSUB GOTO HEX$
IF IMP INKEY$ INP
INPUT INPUT# INPUT$ INSTR
INT INTER$ IOCTL IOCTL$
KEY KILL LEFT$ LEN
LET LINE LIST LLIST
LOAD LOC LOCTE LOF
LOG LPOS LPRINT LSET
MERGE MID$ MKDIR MKD$
MKI$ MKS$ MOD MOTOR
NAME NEW NEXT NOT
OCT$ OFF ON OPEN
OPTION OR OUT PAINT
PEEK PEN PLAY PMAP
POINT POKE POS PRESET
PRINT PRINT# PSET PUT
RANDOMIZE READ REM RENUM
RESET RESTORE RESUME RETURN
RIGHT$ RMDIR RND RSET
RUN SAVE SCREEN SGN
SHELL SIN SOUND SPACE$
SPC( SQR STEP STICK
STOP STR$ STRIG STRING$
SWAP SYSTEM TAB( TAN
THEN TIME$ TIMER TO
TROFF TRON USING USR
VAL VARPTR VARPTR$ VIEW
WAIT WEND WHILE WIDTH
WINDOW WRITE WRITE# XOR

КОНСТАНТИ

Константите са стойности, използвани в програмата, които се променят по време на нейното изпълнение. Има два основни типа константи: символни ( символен низ ) и числови.

Символните константи представляват последователност от ASCII символи ( максимум 255 ) , ”затворени” в кавички. Примери за символни константи:
”HELLO”
”25 000 .00”
”брой на работниците”

В някои случаи синтаксиса на езика не изисква символните константи да бъдат затворени в кавички. Тези случаи са специално отбелязани на съответните места в текста. В други случаи не са задължителни затварящите кавички. Ако в програмния ред има само отварящи кавички, Basic предполага, че затварящите кавички са в края на реда, т.е. всички символи от отварящите кавички до края на реда са част от една символна константа.

Числовите константи представляват положителни или отрицателни числа. Знакът плюс (+) пред положителните константи не е задължителен. Пред отрицателните константи трябва да бъде поставен знакът минус (-). Числовите константи в Basic не може да съдържат символна запетая. В Basic има пет вида числови константи:

Целочислени Представляват цели числа от - 32768 до + 32767 включително. Целочислените константи не могат да съдържат десетични точки.

С фиксирана запетая
Представляват положителни или отрицателни реални числа, т.е. те могат да съдържат десетичен разделител ( десетична точка ).

С плаваща запетая
Представляват положителни или отрицателни реални числа, записани в експоненциална форма. При изчисления с единична точност константите с плаваща запетая се състоят от целочислена константа или константа с фиксирана запетая в качеството на мантиса, от символа Е и от целочислена константа в качеството си на експонента. В константите с двойна точност се използва символът D, вместо символът Е. Символът Е ( или D) означава , че мантисата се умножава по числото 10, повдигнато на указаната степен ( експонентата ).

Всяко реално число в интервала от 2.9Е-39 до 1.7Е+38 може да бъде представено като константа с плаваща запетая.

Примери : 23Е-2
В този пример 23 е мантисата, а -2 е експонентата. Това може да се произнесе като “ 23 по 10 на степен -2” . същото число може да бъде представено като число с фиксирана запетая : 0.23.

235.988Е-7
Това е число с единична точност, чието представяне като число с фиксирана запетая е .0000235988 .

2359D6
Това е число с двойна точност, чието представяне като число с фиксирана запетая е 2359000000.

Важно е да се запомни , че символът Е в представянето на число с плаваща запетая указва единична точност , а символът D - двойна точност.
Шестнадесетични
Представляват цели шестнадесетични числа , състоящи се от повече от четири цифри и с префикс &H. Шестнадесетичните цифри са десетични цифри ( 0 – 9 ) и буквите от английската азбука A, B, C, D, E и F .
Например :
&H76
&H32F

Осмични Представляват цели числа, състоящи се от шест цифри и с префикс &О или само &. Осмичните цифри са десетичните цифри от 0 до 7 .
Например :
&О347
&1234

ТОЧНОСТ НА ЧИСЛАТА

В паметта числовите константи се съхраняват като числа с единична или двойна точност. Константите , въведени в целочислен , шестнадесетичен или осмичен формат , се съхраняват в два байта от паметта и се интерпретират като цели числа. За числовите константи с двойна точност в паметта се пазят 17 цифри , а при печат се извеждат 16. За числовите константи с единична точност в паметта се пазят 7 цифри , при печат се извеждат също 7 цифри, но само първите 6 са точни. При единична точност се печатат 7 цифри , защото при междинните изчисления се използват всичките 7 цифри. За да се осигури по-висока точност на крайния резултат при интерактивна обработка , всички стойности трябва да бъдат въведени с максимална точност ( всичките 7 цифри ).

Константите с единична точност са числови константи, записани по един от следните начини:

• Със седем или по-малко цифри;
• В експоненциална форма със символа Е ;
• С удивителен знак ( ! ) в края.

Константите с двойна точност са числови константи , записани по един от следните начини :
• С осем или повече цифри ;
• В експоненциална форма със символа D;
• Със знак за номер ( # ) в края .

В долната таблица са обобщени данните за точността и граничните стойности на целочислените константи и константите с единична и двойна точност :

ТИП ГРАНИЧНИ СТОЙНОСТИ ТОЧНОСТ
Целочислен от -32768 до 32767 Пълна
Плаваща запетая с от 10Е-38 до 10Е+38 6 десетични
Плаваща запетая с от 10D-38 до 10D+38 16 десетични
двойна точност позиции

Примери за константи с единична и двойна точност :

С единична точност С двойна точност
46.8 345692811
- 1.09Е-06 -1.09432D-06
3489.0 3489.0#
22.5! 7654321.1234

ПРОМЕНЛИВИ

Променливите представляват имена , които се използват за представяне и съхраняване на стойности в бейсиковите програми. Както константите, променливите са два основни типа - числови и символни. Числовите променливи имат винаги числова стойност . символните променливи могат да имат само символно значение ( символен низ ). Една символна променлива може да се състои максимум от 255 символа.
Променливата може да получи директно стойността на някоя константа ( VAR=5 ) , или да получи стойността си като резултат от изчисляването на израз ( VAR= V1+ V2 * V3) или при изпълнение на оператори за въвеждане на данни. Във всички случаи типът на присвояваната стойност трябва да съвпада с типа на променливата ( числов или символен ) .
Ако една числова променлива се използва преди да й бъде присвоена някаква стойност, счита се , че тя има стойност нула ( 0 ). За символните променливи се счита , че първоначално не съдържат никакви символи , т.е. имат дължина нула ( нулева дължина ) .

ИМЕНА НА ПРОМЕНЛИВИТЕ

Име на променлива в Бейсик може да има дължина 40 символа . Символите , от които е съставено името на променливата , могат да бъдат буквите от английската азбука , цифрите и символът точка ( . ) . Името трябва да започва с буква . Специални символи , идентифициращи типа на променливата , може да се употребяват като последен символ в името . Типовете променливи се разглеждат по – надолу под заглавие “ Деклариране на типа на променливите “ .
Резервираните думи не може да се използват за имена на променливи , но част от име на променлива може да съвпада с резервирана дума . Например , в оператора
10 EXP = 5
EXP е употребено неправилно като име на променлива , защото е запазена дума . Обаче в оператора
10 EXPONENT = 5
всичко е наред , защото EXP е само част от името на променливата EXPONENT.
Забележка : Променлива , започваща с FN , се счита за обръщение към дефинирана от потребителя функция.

ДЕКЛАРИРАНЕ НА ТИПА НА ПРОМЕНЛИВИТЕ

Типът на променливата ( числов или символен ) се определя от нейното име. Ако променливата е числова , името й определя нейната точност.
Имената на символните променливи завършват със символа ( $ ). Например:
А$ = “ ОТЧЕТ ЗА ИЗПЪЛНЕНИЕТО НА ПЛАНА “
Знакът долар в края на име на променлива е знак за деклариране на типа на променлива. Той декларира променлива от символен тип.
Имената на символни променливи могат да декларират целочислени стойности или стойности с единична или двойна точност за тези променливи. Точността на изчисленията с единична точност не винаги е задоволителна , но те имат следните преимущества :

  • Изискват по – малко памет.
  • Пресмятанията се изпълняват по- бързо.

Символите , които декларират типа на символните променливи и количеството байтове, необходими за съхраняване на всеки от типовете числови променливи са следните :
% целочислена променлива ( 2 байта )
! променлива с единична точност ( 4 байта )
# променлива с двойна точност ( 8 байта )
Забележка : Ако не е зададен символ за деклариране на типа на числова променлива , по подразбиране се приема единична точност.
Примери за имена на променливи със символ за деклариране на типа на променливата :
PI # променлива с двойна точност
MINIMUM! променлива с единична точност
LIMIT% целочислена променлива
N$ символна променлива
ABC подразбира се променлива с единична точност
Типът на една променлива може да бъде деклариран и по друг начин. Операторите на Basic DEFINT, DEFSNG, DEFDEL и DEFSTR могат да бъдат използвани в програма за деклариране на типа на някой променливи .

МАСИВИ

Масивът представлява списък или таблица от стойности , които могат да бъдат използвани в програмата посредством едно общо име. Всяка стойност от масива се нарича елемент на масива. Елементите представляват символни или числови променливи , които могат да бъдат употребявани в изрази и оператори на Бейсик.
Индексът на елемент от масив ( числото в скоби ) показва позицията на елемента в масива. Първият елемент в един масив има индекс ( индекси ) нула , вторият – единица и т.н. Това може да не е така , ако за този масив е използван оператора OPTION BASE .
Декларирането на името и типа на масива и определянето на броя и разположението на елементите в масива се нарича дефиниране или дименсиониране ( dimension – размерност ) на масива. Максималната размерност ( брой на дименсиите ) на един масив е 255 .
Ако се използва елемент на масива преди той да бъде дефиниран се предполага , че максималният индекс за този масив е 10 , т.е. броят на елементите във всяка от неговите размерности е максимум 11 ( с индекс от 0 до 10 ) .
За дефиниране на масив се използва операторът DIM . Например :
DIM B$ (5)
Този оператор дефинира ( създава ) едномерен масив от символи с име B$ с максимум 6 елемента . За масива B$ може да се мисли като за списък от символни променливи :

Още един пример : DIM A (2,3)
Този оператор създава двумерен числов масив с име А . Тъй като в името на масива не е включен символ за дефиниране на неговия тип, подразбира се , че масивът се състой от променливи с единична точност.
Пример за програма , с използване на двумерен масив :
10 DIM YEARS (3,4)
20 YEARS (2,3) = 84
30 FOR ROW = 0 TO 3
40 FOR COLUMN = 0 TO 4
50 PRINT YEARS ( ROW, COLUMN ) ;
60 NEXT COLUMN
70 PRINT
80 NEXT ROW
RUN
В тази програма, ред с номер 10 дефинира двумерен масив с 20 елемента (4 реда и 5 стълба). В ред 20 на елемента от масива в позиция 2,3 се присвоява стойност 84. Вложените цикли в редове 30-80 печатат масива като матрица с 4 реда и 5 стълба.
Забележка : Името на скаларна променлива може да съвпада с името на масив, тъй като например А$ е различно от името ( А$(n, . .) ) на всеки елемент от масива.

ФОРМАТИРАНЕ НА ИЗХОДА

В Basic има вградени оператори и функции, които могат да бъдат използвани за извеждане на числа в желания формат и желаната точност.
Използвайте оператора DEFDBL , за дефиниране на константите и променливите като числа с двойна точност, с цел форматиране по подходящ начин изхода. Например :
10 WIDTH 80
20 DEFDBL A
30 A=70#
40 PRINT A/100#
50 A=A+1
60 IF A<100# GO TO 40
RUN
За извеждане на числовите резултати в десетичен вид използвайте операторите PRINT USING и LPRINT USING. Тези оператори позволяват да бъде определен форматът, в който числата ще бъдат печатани или извеждани на екрана.

10 FOR I=4 TO 5 STEP. 1
20 PRINT USING “#.# “;I;
30 NEXT
RUN
Забележки:

  • Избягвайте да използвате едновременно числа с двойна и числа с единична точност в една формула, тъй като това намалява точността.
  • За постигане на по-висока точност на изчисленията, използвайте тригонометричните функции с двойна точност.

ЧИСЛОВИ ИЗРАЗИ И ОПЕРАТОРИ

Числов израз може да бъде числова константа или числова променлива. Числов израз може да бъде и комбинация от числови константи или променливи, свързани посредством числови оператори така, че крайният резултат е единична числова стойност.
Числовите оператори се изпълняват най-вече с числови стойности, но има числови оператори със символни операнди. Названието на тези оператори показва , че техният резултат е число ( числова стойност ). Числовите оператори в Бейсик могат да бъдат разделени на следните четири групи:

  1. Аритметически
  2. Оператори за сравнение
  3. Логически
  4. Функции

АРИТМЕТИЧЕСКИ ОПЕРАТОРИ

Аритметическите оператори изпълняват стандартните аритметически действия в стандартния порядък ( приоритет ). Когато един израз съдържа повече от един аритметичен оператор , спазва се следният приоритет на тяхното изпълнение:

обозначение
на оператора действие пример:
——————————————————————————————————-
^ повдигане на степен X^Y
- Отрицание -X
*, / умножение, деление във X*Y
формат с плаваща запетая X/Y
\ целочислено деление X\Y
MOD деление по модул X MOD Y
+,- събиране, X+Y
изваждане X-Y

Тъй като по-голямата част от тези оператори е добре позната , тук ще бъдат пояснени само два от тях - целочисленото деление и делението по модул .
Целочислено деление: Целочисленото деление се означава с наклонена черта ( \ ) .
Операндите се закръгляват до цяло число, след което се изпълнява действие деление. Частното се закръглява надолу до цяло число. Например :
10 A = 10\4
20 B = 25.68\6.99
30 PRINT A;B
RUN
Деление по модул : делението по модул се означава със запазената дума MOD и дава като резултат целочислена стойност, равна на остатъка от целочисленото деление на операндите . Например :
10 A = 7 MOD 4
20 PRINT A
RUN
(Получава се такъв резултат , защото 7 делено на 4 дава 1 с остатък 3.)
PRINT 25.68 MOD 6.99
Получава се такъв резултат , защото 26 делено на 6 дава 3 с остатък 5 . ( Трябва да се запомни, че Бейсик закръглява операндите до цяло число, преди да извърши делението)

ОПЕРАТОРИ ЗА СРАВНЕНИЕ

Чрез операторите за сравнение се сравняват две стойности. Може да се сравнят две числови или две символни стойности. Резултата от сравнението е или “ истина “ (-1) или “ лъжа “ (0). Този резултат обикновено се използва при вземане на решение за разклоняване на програмата.

Означение на Сравнение за Пример
Оператора

= равно X=Y
<> или >< не равно X<>Y, X>
< по-малко X
> по-голямо X>Y
<= =< по-малко или равно X<=Y, X=
>= => по-голямо или равно X>=Y, X=>Y

( Знакът за равенство се използва и за присвояване на стойност на променлива. )

Числови сравнения : Когато в един израз са комбинирани аритметически оператори и оператори за сравнение, първо се изпълняват аритметическите оператори. Например :
X+Y < (T-1) / Z
е “ истина ” , ако стойността на X плюс стойността на Y е по-малка от T-1, разделено на Z.
Символни сравнения : Символните сравнения могат да бъдат разглеждани като сравнения “ по азбучен ред “. Това означава , че един символен низ е “по-малък “ от друг символен низ , когато неговата първа буква се намира в азбуката преди първата буква на втория символен низ. Ако първите букви съвпадат , сравняват се вторите и т.н. Малките букви са ( обикновено ) “по-големи “ от големите.

Казаното до тук се нуждае от уточняване. В действителност , два символни низа се сравняват , като се сравнят две по две ASCII стойностите на съответните символи от двата низа, започвайки от началото. Ако ASCII стойностите на всички съответстващи символи съвпадат , двата низа са еднакви. В противен случай, символният низ, който съдържа символ с по-малък ASCII код ( до този момент е имало съвпадение на съответните символи ) , се счита за по-малък от другия. Ако по време на сравнението се достигне края на единия символен низ, преди да е достигнат края на другия, счита се , че той е по-малък от другия ( по-късият низ е по-малък от другия ). Символите за интервал в началото и в края на символните низове участват в сравнението. Всички изрази в следващите примери имат стойност “ истина ” ( резултатът от символното сравнение е –1 ). Примери:
“AA” < “AB”
“FILENAME” = “FILENAME”
“X$” > “X#”
“Kg” > “KG”
“RICH” < “RICHB”
B$ < “718” (където В$= “12543”)
Всички символни константи , който участват като операнди на операторите за сравнение, трябва да бъдат затворени в кавички.

ЛОГИЧЕСКИ ОПЕРАТОРИ

Логическите оператори изпълняват булеви операции на числови стойности. Както и операторите за сравнение , те се използват предимно при вземане на решение за разклоняване на програмата. По-конкретно , логическите оператори се използват за обединяване на резултатите от няколко оператора за сравнение
( обединяване на няколко логически стойности ). Резултатът е една логическа стойност ( “ истина ” или “ лъжа ” ), която именно се използва при вземане на решението. Операндът на един логически оператор е “ истина ”, ако има стойност различна от нула ( например -1 като резултат от оператор за сравнение ) и е
“ лъжа”, ако има стойност нула. Действията се изпълняват бит по бит.
Логическите оператори са : NOT ( логическо допълнение ) , AND ( конюнкция ) , OR ( дизюнкция ) , XOR ( изключващо или ) , IMP ( импликация ) и EQV ( еквивалентност ). Резултатите на логическите оператори при всички възможни стойности на операндите са показани в следващата таблица. ( Т означава “ истина ” , т.е. стойност различна от нула, а F означава “ лъжа ”, т.е. стойност нула). Операторите са подредени по приоритет.
NOT AND OR XOR

EQV
X Y X EQV Y
T T T
T F F
F T F
F F T

IMP
X Y X IMP Y
T T T
T F F
F T T
F F T

Следват няколко примера за използване на логически оператори.
IF HE>60 AND SHE<20 THEN 1000
Резултатът е “ истина ” , ако стойността на променливата HE е по-голяма от 60 и стойността на променливата SHE е по-малка от 20.
50 IF NOT (P= -1) THEN 100
Управлението се предава на реда с номер 100, ако P не е равно на –1.трябва да се има в предвид , че изразът NOT (P= -1) дава различен резултат от резултата на израза NOT P.
100 FLAG% = NOT FLAG%
В този пример променливата FLAG% алтернативно променя стойността си (“лъжа” или “истина”) , при всяко изпълнение на ред 100.

Как се изпълняват логическите оператори : Операндите се преобразуват в цели числа в интервала -32768 до +32767. ( Ако някой от операндите не в този интервал, получава се грешка Overflow - Препълване ). Ако някой от операндите е отрицателен, взема се неговото двоично допълнение. По този начин всеки операнд се превръща в последователност от 16 бита. Действието се изпълнява над тези последователности. Това означава, че всеки бит от резултата се получава от съответстващите му битове в операндите, според правилата , описани по-горе. Бит със стойност 1 се счита за “ истина ”, а бит със стойност 0 се счита за “ лъжа ”.
Логическите оператори могат да се използват за тестване за наличие на определена комбинация от битове в единия от операндите или за други побитови операции. Например операндът AND може да се използва за “ маскиране ” на всички битове, с изключение на един в някой от входно/изходните портове.
Следват примери за изпълнение на логически оператори :
A = 63 AND 16
Променливата A получава стойност 16. Тъй като 63 в двоичен вид е 111111, а 16 в двоичен вид е 10000, то стойността на израза 63 AND 16 е 010000 в двоичен вид, което е равно на 16 десетично.
B = -1 AND 8
Променливата В получава стойност 8. Тъй като –1 в двоичен вид е 11111111 11111111, а осем в двоичен вид е 1000, то стойността на израза -1 AND 8 е 00000000 00001000 в двоичен вид, което е равно на 8 десетично.
C = 4 OR 2
Променливата С получава стойност 6. Тъй като 4 в двоичен вид е 100, а 2 в двоичен вид е 10, то стойността на израза 4 OR 2 е 110 в двоичен вид, което е равно на 6 десетично.
X = 2
TWOSCOMP = ( NOT X ) + 1
Трябва да се отбележи , че ако и двата операнда имат стойност 0 или –1, то и резултатът на всеки логически оператор е 0 или –1.

СИМВОЛНИ ИЗРАЗИ И ОПЕРАТОРИ

Символен израз може да бъде символна константа или символна променлива. Символен израз може да бъде и комбинация от символни константи или променливи, свързани посредством оператори така ,че крайният резултат е единична символна стойност.
Символните оператори се използват за получаване и модифициране на символни низове. Съществуват две основни категории символни оператори:

  • Конкатенация
  • Функция

Забележка : Въпреки , че операторите за сравнение =, <>, < , > , <= и >= се използват и за сравнение на символни стойности, те не се считат за символни оператори, тъй като , резултатът от тяхното изпълнение е числов.

КОНКАТЕНАЦИЯ
Обединяването на два символни низа в един се нарича конкатенация. Символните низове се обединяват с помощта на знака ( + ). Например :
10 COMPANY$ = “ PRAVETZ ”
20 TYOE$ = “ Personal ”
30 FULLNAME$ = TYPE$ + “ Computer ”
40 PRINT COMPANY$ + FULLNAME$
RUN

СИМВОЛНИ ФУНКЦИИ
Символните функции са като числовите, с тази разлика, че вместо числов връщат символен резултат. Символните функции се използват в изрази, подобно на символните променливи. Те изпълняват предварително дефинирани операции над един или повече операнди. В Бейсик има няколко вградени символни функции, например MID$ ( за получаване на определена част от символен низ ) , CHR$ ( връща символ по зададен ASCII код ) и т.н.
С помощта на оператора DEF FN потребителят може да дефинира собствена символна функция.

КОМАНДИ, ОПЕРАТОРИ И ФУНКЦИИ НА BASIC

Променливите и вградените функции на Basic могат да се използват във всяка програма, без да е необходимо специално да се дефинират.
Разграничаването между команди и оператори е повече въпрос на традиция. Тъй като командите обикновено оперират с програми , те се въвеждат в директен режим. Операторите обикновено управляват изпълнението на програмата със срещането си вътре в нея , така че те се въвеждат индиректно като част от програмен ред. В действителност, повечето от командите и операторите на Бейсик могат да бъдат въвеждани както в директен , така и в индиректен режим. Всяко описание на команда, оператор или функция има следната структура :
Предназначение :
Описва действието на командата, оператор , функцията или променливата.
Версии :
Указва кои версии на Basic позволяват използването на командата , оператора, функцията или променливата.
Формат :
Показва формата на командата, оператора, функцията или променливата. Синтактични правила са :

  • Думите с главни букви са ключови думи и трябва да се въвеждат така, както са показани с изключение на това , че при въвеждането може да се използват големи и малки букви в произволна комбинация. Бейсик автоматично превръща всички букви в главни, ( освен ако не са част от низ, заграден в кавички, от коментар или оператор DATA ).
  • Думите в курсив представляват параметри и се заменят със стойностите на съответните параметри.
  • Думите в квадратни скоби ( [ ] ) са опционни –могат да не се заменят със стойности.
  • Многоточие означава, че думата, която го предхожда , може да получи поредица от стойности, разделени със запетаи.

Всички други символи с изключение на квадратните скоби, ( такива като запетая, кръгла скоба, точка и запетая и знак за равенство ), трябва да бъдат оставени на местата си.
Описание :
Дава по-подробно обяснение за начина на използване на командата, оператора, функцията или променливата.
Примери :
Показва директно задавани оператори, примерни програми или програмни сегменти, които илюстрират начина на използване на командите , операторите, функциите и променливите.

Функция ABS

Предназначение : Връща абсолютната стойност на аргумента си.
Версии : РОМ, дисков, разширен, компилатор
Формат : v = ABS(x)
Описание : X произволен числов израз
Пример : В този пример се показва , че абсолютната стойност на израза 7*(-5) е 35.
PRINT ABS (7*(-5))
35

Оператор CALL

Предназначение : Извиква подпрограми на езика Асемблер.
Версии : РОМ, дисков, разширен, ( компилатор )
Формат : CALL числова променлива [(променлива [ , променлива ] . . .)]
Описание : Числова променлива - име на числова променлива ; Стойността на променливата представлява отместването на програмата в текущия сегмент, дефиниран чрез последния оператор DEF SEG.
Променлива – име на променлива , предавана като параметър на подпрограмата.
Използването на оператора CALL е един начин за връзка на Бейсик с подпрограми, написани на Асемблер.
Пример : Ред 10 установява сегмента на Basic. На ред 30 се декларират всички скаларни променливи и масиви, използвани в програмата. На ред 40 се изчислява отместването на ARRAY в сегмента за данни на Бейсик. На ред 50 в масива се зарежда файлът с подпрограмата. На ред 60 се извиква подпрограмата с параметри променливите Q , B$ и C.
10 DEF SEG: OPTION BASE 1
20 DEFINIT A-Z
30 DIM ARRAY (512) : P=0 : Q=5 : B$=”TRUE” : C=0
40 P=VARPTR (ARRAY (1))
50 BLOAD “ASM.FIL” , P
60 CALL P(Q,B$,C)

Функция CHR$

Предназначение : Връща символа, чийто ASCII код е зададен чрез аргумента на функцията.
Версии : РОМ, дисков, разширен, компилатор
Формат : v$ = CHR$(n)
Описание : n - цяло число в интервала от 0 до 255.
Функцията CHR$ връща един символ , чийто ASCII код е числото n. Функцията CHR$ обикновено се използва за подаване на специален символ на екрана или на принтера. Например символът BEL, който предизвиква издаване на звук,може да бъде вмъкнат като CHR$(7) в началото на съобщение за грешка ( вместо да се използва BEEP)
Пример : В този пример се отпечатва символът, съответстващ на ASCII код 66.
PRINT CHR$(66)
B

В следващия пример се задава за функционален клавиш F1 низът “ AUTO ” плюс Enter. Това е един добър начин за дефиниране на функционален клавиш, тъй като Enter се изпълнява автоматично с натискането на функционалния клавиш.
KEY 1 , “ AUTO ” + CHR$(13)

Следващия пример е една програма , която показва на екран с ширина 80 колони всички символи , които могат да бъдат изобразени на екран , заедно с техните ASCII кодове. Тя може да се използва или с монохромен дисплей , или с цветово/графичен мониторен адаптер.
10 CLS
20 FOR I=1 TO 255
30 ‘игнориране на символите, които нямат ‘изображение на екрана
40 IF ( I>6 AND I<14 ) OR ( I>27 AND I<32 ) THEN 100
50 COLOR 0,7 ‘черно на бяло
60 PRINT USING “###” ; I ; ‘трицифров ASCII код
70 COLOR 7,0 ‘бяло на черно
80 PRINT “ ” ; CHR$(I) ; “ ” ;
90 IF POS (0)>75 THEN PRINT ‘премини към следващ ред
100 NEXT I

Оператор CLS

Предназначение : Изчиства екрана.
Версии : РОМ, дисков, разширен, компилатор
Формат : CLS
Описание : В текстов режим активната страница се изчиства и се запълва
с цвета на фона. В графичен режим се изчиства целия буфер на екрана и се запълва с цвета на фона.
В текстов режим операторът CLS връща маркера в горния ляв ъгъл на екрана, а в графичен режим – на последната избрана точка. Ако не е започнато изпълнение на оператор за чертане, тази точка е център на екрана : (160,100) при средна разрешаваща способност и (320,100) при голяма разрешаваща способност.
Смяната на режим или ширината на екрана чрез операторите SCREEN и WIDTH също предизвиква изчистването му. Екранът може да бъде изчистен и чрез натискането на Ctrl-Home.
Когато е използван операторът VIEW, CLS изчиства само последния зададен чрез този оператор участък от екрана. В този случай ако искате да изчистите целия екран ,използвайте VIEW, за да деактивирате активния участък , и след това използвайте CLS, за да изчистите екрана.
Пример : При цветно/графичен мониторен адаптер в този пример екрана се изтрива и се запълва със син цвят.
10 SCTEEN 0, 0, 0
20 COLOR 10, 1
30 CLS

Команда CONT

Предназначение : Възстановява изпълнението на програма след прекъсване.
Версии : РОМ, дисков, разширен
Формат : CONT
Описание : Командата CONT може да бъде използвана, за да продължи изпълнението на програма, прекъсната с натискане на Ctrl-Break, с изпълнение на операторите STOP и END, или при срещане на грешка. Изпълнението продължава от мястото , където е станало прекъсването. Ако прекъсването е станало след подканване за вход от оператор INPUT , изпълнението продължава с повтаряне на подканването.
CONT обикновено се използва заедно със STOP за откриване на грешки. Когато изпълнението се прекъсне, вие може да разгледате или да промените стойностите на някои променливи в директен режим. След това можете да използвате или CONT за продължаване от мястото на прекъсване, или директния оператор GOTO, за да продължите изпълнението от зададен от вас номер на ред.
Командата CONT е невалидна, ако програмата е била редактирана по време на прекъсването.
Пример : Програмата от този пример изпълнява продължителен цикъл.
10 FOR A=1 TO 50
20 PRINT A;
30 NEXT A
RUN
1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20 21 22
23 24 25 26 27 28 29
( на това място прекъсваме цикъла чрез натискане на Ctrl-Break.)
.
.
Break in 20
CONT
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50

Оператор DATA

Предназначение : Запазва в паметта числови и символни константи , до които програмата има достъп чрез оператора READ.
Версии : РОМ, дисков, разширен, компилатор
Формат : DATA константа [ , константа ]…
Описание : Константа – числова или символна константа. Числовите константи могат да бъдат в произволен формат – целочислени, с фиксирана запетая , с плаваща запетая, шестнадесетични или осмични. Символните константи в оператора DATA не трябва да бъдат заградени в апострофи , освен ако не съдържат символите запетая, точка и запетая и интервали в началото и края, които трябва да се разглеждат като част от символния низ.

Операторите DATA са изпълними и могат да бъдат поставени на произволно място в програмата. Броят на операторите DATA в една програма не е ограничен. Един оператор DATA може да съдържа толкова константи , колкото могат да се съберат в един ред. Информацията, съдържаща се в операторите DATA , може да се разглежда като един непрекъснат списък от елементи, независимо от това колко елемента има на ред, и къде са разположени редовете. Операторите READ имат достъп до елементите в операторите DATA по реда на тяхното срещане в този непрекъснат списък.
Типът на променливата ( числова или символна ) в оператора READ трябва да съвпада с типа на съответната константа от оператора DATA – в противен случай се получава грешка Syntax Error ( синтактична грешка ).
Не може да се използва апостроф, за да се добави коментар в края на оператора DATA , защото Basic ще разглежда коментара като част от символен низ. За добавяне на коментари в този случай може да използвате : REM.
За повторно изчистване на информация от произволен ред от списъка на операторите DATA използвайте оператора RESTORE.
Пример : Виж примерите за оператора READ.

Оператор DIM

Предназначение : Дефинира масив , като задава размерите му и съответно му заделя място в паметта.
Версии : РОМ, дисков, разширен, ( компилатор )
Формат : DIM променлива ( граници ) [ , променлива ( граници ) ]…
Описание : променлива – името , което получава масива.
граници - числови изрази , разделени със запетая , задаващи размерите на масива.
При изпълнението си DIM задава първоначална стойност за всички елементи на числовите масиви. Всички елементи на символните масиви са с променлива дължина, която при изпълнението на DIM получава първоначална стойност нула.
Ако име на масив се използва , без за него да е бил изпълнен оператор DIM, за горна граница на неговите индекси се приема по подразбиране 10. Ако се зададе индекс, по-голям от максималния , се получава грешка Subscript out of range
( индекс извън интервала ).
Долната граница на индексите е нула , освен ако не е оказано друго в оператора OPTION BASE. Максималната размерност на масивите е 255.
Ако се опитате да изпълните DIM за един и същ масив повече от един път , се получава грешка Duplicate definition
( дублирана дефиниция ). За да повторите DIM за даден масив, трябва първо да го изтриете с ERASE.
Пример : В този пример се създават два масива : един едномерен числов масив с име SIS с 13 елемента, от SIS(0) до SIS(12), и един двумерен масив с име WRR$, с три реда и три стълба.
10 WRRMAX=2
20 DIM SIS(12) , WRR$(WRRMAX, 2)
30 DATA 26.5, 37, 8, 29, 80, 9.9, H&800
40 DATA 7, 18, 55, 12, 5, 43
50 FOR I=0 TO 12
60 READ SIS(I)
70 NEX I
80 DATA DISK, PROGRAM, “A:”
90 DATA “A,B”, AB, A-B
100 DATA SAN FRANCISCO, SOFIA, LONDON
110 FOR I=0 TO 2: FOR J=0 TO 2
120 READ WRR$( I , J )
130 NEXT I
140 PRINT SIS(3) ; WRR$(2,0)
RUN
29 SAN FRANCISCO

Оператор END

Предназначение : Прекратява изпълнението на програмата , затваря всички файлове и връща към командно ниво.
Версии : РОМ, дисков, разширен, ( компилатор )
Формат : END
Описание: Операторът END може да бъде поставен на всяко място в програмата , за да прекъсне изпълнението. END се различава от STOP в следното:

  • END не предизвиква появяването на съобщението Break
  • END затваря всички файлове

Завършването на програмата с END не е задължително. Basic винаги връща към командно ниво след изпълнението на END.
Пример: В този пример програмата завършва, ако К е по-голямо от 1000; в противен случай изпълнението продължава от програмен ред 20.
100 IF K>1000 THEN END ELSE GOTO 20

Оператори FOR и NEXT

Предназначение: Изпълнява в цикъл даден брой пъти набор от инструкции.
Версии : РОМ, дисков, разширен, ( компилатор )
Формат : FOR променлива = x TO y [ STOP z ]
.
.
NEXT [променлива, [променлива ]…]
Описание : променлива – целочислена променлива или променлива с единична точност, която се използва като брояч.
x числов израз, задаващ началната стойност на брояча
y числов израз , задаващ крайната стойност на брояча
z числов израз , задаващ нарастването
Изпълняват се редовете от програмата след оператора FOR , докато се срещне оператора NEXT. След това брояча x се увеличава със стойността на z. Ако z е пропуснато, се подразбира 1. Проверява се дали стойността на брояча е станала по-голяма от крайната стойност y. Ако не е по-голяма, управлението се връща към програмния ред след оператора FOR и процесът се повтаря отново. Когато стойността на брояча стане по-голяма от крайната стойност, изпълнението продължава от програмния ред след оператора NEXT. Това се нарича FOR – NEXT цикъл.
Ако стойността на z е отрицателна, брояча се намалява всеки път , когато се стигне до оператора NEXT, и цикълът се изпълнява , докато стойността на брояча остава по-малка от крайната стойност.
Тялото на цикъла ( програмните редове между операторите FOR и NEXT ), се прескача, ако x още в началото е по-голямо от y при положителна стойност на z , или ако x е по-малко от y при отрицателна стойност на z.
Ако z е нула , се получава безкраен цикъл, освен ако на осигурите по някакъв начин броячът да получи в даден момент стойност, по-голяма от крайната стойност.
Програмата ще се изпълнява по-бързо , ако използвате за броячи цели числа.
Вложени цикли
FOR – NEXT циклите могат да бъдат вложени, т.е. един FOR – NEXT цикъл може да бъде поставен е друг FOR – NEXT цикъл. При вложени цикли всеки един цикъл трябва да има своя собствена променлива за брояч. Оператора NEXT за вътрешен цикъл трябва да се среща преди оператора NEXT за външен цикъл. Ако вложените цикли завършват на едно и също място , те могат да използват общ оператор NEXT. Например операторът NEXT от вида :
NEXT var1, var2, var3
е еквивалентен на следната последователност от оператори NEXT.
NEXT var1
NEXT var2
NEXT var3
Операторът NEXT може да бъде без променливи. Такъв NEXT оператор се свързва с най-близкия оператор FOR. Операторът NEXT без променливи е необходим, когато се прави преход извън вложени цикли.
Пример : Примерът показва FOR – NEXT цикъл с нарастване 2.

10 J=10
20 FOR I=1 TO J STEP 2
30 PRINT I;
40 K=K+10
50 PRINT K
60 NEXT
RUN
1 40
3 50
5 60
7 70
9 80

Оператор GET ( за файлове )

Предназначение : Чете в буфер запис от файл с пряк достъп.
Версии : Дисков, разширен, компилатор
Формат : GET [#] номер на файл [ , номер ]
Описание : номер на файл – номерът , с който е отворен файлът.
номер – номерът на записа, който да бъде прочетен , в интервала от 0 до 16 мегабайта. Ако <номер> е пропуснат, се чете следващият запис ( след записа , прочетен от последния изпълнен оператор GET ).
След изпълнението на GET могат да се използват INPUT#, LINE INPUT# или обръщения към променливи, дефинирани в оператора FIELD , за да се извличат символи от буфера на файла .
Тъй като Бейсик и ДОС блокуват записите в 512-байтови сегменти, не винаги изпълнението на GET води до физическо извършване на входно/изходна операция.
GET може да се използва и за комуникационни файлове. В този случай <номер> задава броя на байтовете, които да се прочетат от буфера за комуникация. Този брой на може да надвишава стойността , зададена от опцията LINE в оператора OPEN за комуникационния файл.
Пример : Операторът GET на ред 30 чете запис в буфера на файла и операторът PRINT на ред 40 отпечатва прочетеното.
10 OPEN “PROG” AS #1
20 FIELD 1, 30 AS PROGNAME$, 4 AS PROGNO$
30 GET 1
40 PRINT PROGNAME$, PROGNO$

Оператор GOTO

Предназначение : Прекратява нормалната последователност на изпълнението на програмата и предава безусловно управление на реда с указания номер.
Версии : РОМ, дисков, разширен, компилатор
Формат : GOTO ред
Описание : ред – номер на ред от програмата
Ако < ред > е номер на ред с изпълним оператор, той се изпълнява и се продължава с изпълнението на операторите след него. Ако <ред> сочи изпълним оператор, изпълнението на програмата продължава от първи изпълним оператор, който се среща след реда указан с <ред>.
Операторът GOTO може да се използва в директен режим , за да се пусне програмата от избраното място. Това може да бъде полезно при тестване на програми.
Операторът ON-GOTO може да бъде използван, за да се предаде управлението на различни места в програмата в зависимост от стойността на даден израз.
Пример : В този пример чрез оператора GOTO програмата влиза в безкраен цикъл, от който се излиза при възникване на ситуация Out of data ( недостиг на данни) на ред 20 ( тъй като DATA е неизпълним оператор, предаването на управлението към него не предизвиква добавяне на нови стойности във вътрешната таблица за данни ).
10 DATA 5, 7, 12
20 READ R
30 PRINT “РАДИУС = “ ; R
40 A = 3.14*R^2
50 PRINT “ПЛОЩ = “ ; A
60 GOTO 10
RUN
РАДИУС = 5 ПЛОЩ = 78.5
РАДИУС = 7 ПЛОЩ = 153.86
РАДИУС = 12 ПЛОЩ = 452.16
OUT OF DATA IN 20

Оператор IF

Предназначение : Дава възможност за вземане на решение относно изпълнението на програмата в зависимост от стойността на даден числов израз.
Версии : РОМ, дисков, разширен, компилатор

Формат : IF израз [ , ] THEN действие [ ELSE действие ]
IF израз [ , ] GOTO ред [ [ , ] ELSE действие ]
Описание : израз – произволен числов израз.
действие – може да бъде един или повече оператори, разделени с точка и запетая; или може просто да бъде номерът на реда , където да се предаде управлението.
ред – номер на програмен ред , които се среща в програмата.
Ако стойността на <израз> е “истина” (нула) , указаното в THEN и GOTOсе игнорира и се изпълнява зададеното в ELSE , ако частта на оператора “ELSE действие” съществува. Изпълнението след това започва от следващия програмен ред, съдържащ изпълним оператор.
Вложени оператори IF : Операторите IF-THEN-ELSE могат да бъдат влагани един в друг. Броят на вложените един в друг оператори е ограничен единствено от дължината на реда. Например :
IF X>Y THEN PRINT “ПО-ГОЛЯМО” ELSE IF Y>X
THEN PRINT “ПО-МАЛКО” ELSE PRINT “РАВНО”
е валиден оператор. Ако при вложени оператори броят на THEN и ELSE не еднакъв , тогава на всеки ELSE съответства най- близкия THEN , за които няма съответен ELSE.
Пример : Този оператор прочита записа с номер, равен на стойността на I , ако тази стойност не е нула.
100 IF I THEN GET #1, I

Оператор INPUT

Предназначение : Получава входни данни , въведени от клавиатурата по време на изпълнението на програмата.
Версии : РОМ, дисков, разширен, компилатор
Формат : INPUT [ ; ] [“подканване” ;] променлива [, променлива]…
Описание : подканване – символна променлива , появяването на която служи за подканване да се въведат очакваните данни.
Променлива – име на числова или символна променлива или елемент от масив, където да се получи въведеното от клавиатурата.
Когато програмата срещне оператор INPUT , тя спира и на екрана се появява <подканване> и въпросителен знак, показващи , че се очаква да се въведат данни от клавиатурата. Ако <подканване> в INPUT се следва от запетая, а не от точка и запетая, въпросителният знак не се появява. Ако <подканване> е пропуснато в INPUT , се появява само въпросителен знак. Например операторът :
INPUT “Въведете Рождената си дата” , В$
Отпечатва подканването “Въведете Рождената си дата” без въпросителен знак след него.
Въвежданите данни се присвояват на променливите , изброени в оператора INPUT, по реда на срещането им. Данните за отделните променливи трябва да бъдат разделени със запетаи, като техния брой трябва да бъде равен на броя на променливите от оператора INPUT. Типът на въвежданите данни трябва да съответства на типа на съответните променливи. Ако въведете повече или по-малко данни , или данните не са от очаквания тип, се появява съобщение ? Redo from restart (започнете от начало). Ако се очаква само една променлива, натискането на Enter без да е въведено нещо друго, означава задаване стойност нула за числова променлива и стойност празен низ за символна променлива. Ако обаче се очаква повече от една променлива , натискането на Enter предизвиква съобщение ? Redo from start (започнете от начало). Бейсик не присвоява стойности на променливите от INPUT , докато не получи приемлив отговор.
Пример : В този пример появяването на въпросителен знак е подканване за въвеждане на данни.
10 INPUT X
20 PRINT X “НА КВАДРАТ Е” X^2
31 END
RUN
?
Да предположим, че въведеното число е 5. Програмата продължава :
.
.
? 5
5 НА КВАДРАТ Е 25

Функция INPUT

Предназначение : Връща низ от n символа, прочетени от клавиатурата или от зададен файл.
Версии : РОМ, дисков, разширен, компилатор
Формат : v$ = INPUT$(n [,[#] номер на файла ] )
Описание : n – брой на прочетените символи
номер на файла – номер на файла както е указан в оператора OPEN. Ако <номер на файла> е пропуснат, се подразбира четене от клавиатура.
Ако се въвеждат от клавиатура символите не се показват на екрана. Всички въвеждани символи (включително и управляващите) , се предават на функцията INPUT$, с изключение на Ctrl-Break, който се използва , за да се прекъсне изпълнението на тази функция. Функцията INPUT$ позволява да се въвеждат символи, които са от значение при работата с програмния редактор на Бейсик, като например “връщане една позиция назад ”.
При комуникационни файлове е препоръчително да се използва функцията INPUT$ вместо операторите INPUT# или LINE INPUT# , тъй като при предаването всички символи могат да имат някакво значение.
Пример : Следващата програма отпечатва съдържанието на един последователен файл в шестнадесетичен вид.
10 OPEN “DATA” FOR INPUT AS #1
20 IF EOF(1) THEN 50
30 PRINT HEX$(ASC(INPUT$(1,#1) ) ) ;
40 GOTO 20
50 PRINT
60 END

Функция INT

Предназначение : Връща най-голямото число , по-малко или равно на x.
Версии : РОМ, дисков, разширен, компилатор
Формат : v = INT (x)
Описание : x – произволен числов израз. Връща стойност – цели числа
Пример : В този пример се вижда , че INT отрязва дробните части на положителните числа и закръглява отрицателните числа към най-близкото по-голямо по абсолютна стойност отрицателно цяло число.
PRINT INT(45.67)
45
PRINT INT(-2.89)
-3

Команда LIST
Предназначение : Показва текущата програма на екрана или на друго устройство.
Версии : РОМ, дисков, разширен
Формат : LIST [ред1] [- [ред2] ] [ файлова спецификация ]
Описание : ред1,ред2 - номера на съществуващи програмни редове в интервала от 0 до 65529. <ред1> и <ред2> са номерата на първия и последен ред на частта от програмата, която искаме да се появи на екрана. Вместо номер на ред може да се използва точка , за да се укаже номера на текущия ред.
Файлова спецификация – символен израз за файлова спецификация. Може да съдържа път. Името на файла трябва да бъде зададено по правилата.
Ако ред1 и ред2 са пропуснати , се показва цялата програма. При използването на тире са възможни три случая :

  1. Ако е зададен само <ред1>, се показва този ред и всички редове с по-големи номера
  2. Ако е зададен само <ред2>, се показват всички редове от началото на програмата до реда с номер <ред2>
  3. Ако са зададени <ред1> и <ред2> , се показва частта от програмата между тези редове, включително и редовете с номера <ред1> и <ред2>

След изпълнение на LIST Бейсик винаги се връща към командно ниво.
Пример : На екрана се показва цялата програма :
LIST
Този оператор показва на екрана ред 35 от програмата :
LIST 35, “SCRN : ”
Този оператор отпечатва на принтера редове от 10 до 20 на програмата :
LIST 10-20, “LPT1 : ”

Команда LLIST

Предназначение : Отпечатва на принтера (LPT1 : ), част от програмата или цялата програма, която текущо се намира в паметта.
Версии : РОМ, дисков, разширен
Формат : LLIST [ред1] [- [ред2] ]
Описание : <ред1> и <ред2> имат същото значение, както при LIST. След изпълнението на LLIST Бейсик винаги се връща към командно ниво.
Пример : Отпечатва се цялата програма :
LLIST
Отпечатва се само ред 35 на програмата :
LLIST 35
Отпечатват се редове от 10 до 20 включително :
LLIST 10-20
Отпечатват се всички редове от 100 до края на програмата :
LLIST 100-

Команда LOAD

Предназначение : Зарежда се в паметта програма от файл и по избор я изпълнява
Версии : РОМ, дисков, разширен
Формат : LOAD файлова спецификация [,R]
Описание : файлова спецификация – символен израз за файлова спецификация. Може да съдържа път. Името на файла трябва да бъде зададено по правилата, иначе се получава грешка и LOAD не се изпълнява.
Преди да зареди програмата , LOAD затваря всички отворени файлове и изтрива всички променливи и програмни редове, които текущо се намират в паметта. Ако опцията R е пропусната, след изпълнението на LOAD Бейсик се връща към директен режим. Ако обаче е зададено R, след зареждането си програмата се изпълнява. В този случай всички отворени файлове се оставят отворени. По този начин може да се направи връзка между няколко програми. Програмите могат да си предават информация чрез използване на файлове.
LOAD име на файл, R е еквивалентно на RUN име на файл.
Ако работите с версия РОМ на Бейсик и името на устройството е пропуснато, се подразбира CAS1 : . Това е единственото устройство , разрешено за LOAD в РОМ Бейсик.
Забележки при използването на CAS1 :
1. Когато оператора LOAD се въведе в директен режим, имената на файловете от лентата се показват на екрана, последвани от точка и една буква, указващи типа на файла. След името на файла се появява Skipped (прескочен) за всички файлове, които на отговарят на файловата спецификация , и Found (намерен) , за всички файлове , които отговарят на файловата спецификация.
2. Прекъсването на LOAD се предизвиква с натискането на Ctrl-Break в произволен момент по време на изпълнението на този оператор. Прекъсването става между два файла или при изтичане на определено време. След прекъсването Бейсик преустановява търсенето и се връща към командно ниво. Съдържанието на паметта непосредствено преди започване изпълнението на LOAD остава не променено.
3. Ако за устройство е зададено CAS1 : и името на файла е пропуснато, се зарежда първият срещнат на лентата програмен файл.
Пример : Зарежда се програмата с име MENU, но не се изпълнява :
LOAD “MENU”
Зарежда се и се изпълнява програмата с име PROG1 :
LOAD “PROG1” , R
Горното е еквивалентно на :
RUN “PROG1”

Оператор LPRINT

Предназначение : Печата данни на принтера (LPT1 : )
Версии : РОМ, дисков, разширен, компилатор
Формат : LPRINT [списък от изрази] [;]
Описание : списък от изрази – списък от числови и/или символни изрази, които да бъдат отпечатани. За разделител между изразите трябва да се използва запетая ( , ) или точка и запетая ( ; ).
Операторът LPRINT действа като оператора PRINT, с тази разлика , че изходът се насочва към принтера.
LPRINT предполага принтер с 80 позиции на ред. Това означава , Бейсик автоматично вмъква символите край на ред/нов ред след отпечатването на 80 символа. По тази причина , ако отпечатвате точно 80 символа, ще се премине два пъти на нов ред , освен ако не завършите оператора с точка и запетая. Ширината на реда може да се променя чрез оператора WIDTH “LPT1 : ”.
Пример : Това е пример за изпращане на специални управляващи символи на матрично печатащо устройство чрез използване на LPRINT и CHR$.
10 LPRINT CHR$(14) ; “ ЗАГЛАВЕН РЕД ”
20 FOR I=2 TO 4
30 LPRINT “РЕД” ; I
40 NEXT I
50 LPRINT CHR$(15) ; “ СГЪСТЕН ПЕЧАТ– 132 СИМВ/РЕД “
60 LPRINT CHR$(18) ; “ВРЪЩАНЕ КЪМ НОРМАЛЕН ПЕЧАТ”
70 LPRINT CHR$(27) ; “ Е”
80 LPRINT “ ТОВА Е ПЕЧАТ С НАДЕБЕЛЕНИ БУКВИ “
90 LPRINT CHR$(27) ; “F”
100 LPRINT “ВРЪЩАНЕ КЪМ НОРМАЛЕН РЕЧАТ “
Печатният изход , получен в резултат на изпълнението на тази програма , изглежда така :
З А Г Л А В Е Н Р Е Д
РЕД 2
РЕД 3
РЕД 4
СГЪСТЕН ПЕЧАТ – 132 СИМВ/РЕД
ВРЪЩАНЕ КЪМ НОРМАЛЕН ПЕЧАТ
ТОВА Е ПЕЧАТ С НАДЕБЕЛЕНИ БУКВИ
ВРЪЩАНЕ КЪМ НОРМАЛЕН ПЕЧАТ

Команда NEW

Предназначение : Изтрива програмата, която текущо се намира в паметта, и изчиства всички променливи.
Версии : РОМ, дисков, разширен
Формат : NEW
Описание : NEW обикновено се използва , за да се освободи място за друга програма. След изпълнението на NEW Бейсик винаги се връща към командно ниво. NEW причинява затварянето на всички файлове и изключва трасировката , ако е била включена.
Пример : програмата се изтрива от паметта :
NEW

Оператор PRINT

Предназначение : Изобразява данни на екрана.
Версии : РОМ, дисков, разширен, компилатор
Формат : PRINT [списък от изрази] [;]
? [списък от изрази] [;]
Описание : списък от изрази - списък от числови и/или символни изрази, разделени със запетаи , интервали или точка и запетая. Всички символни константи в израза трябва да бъдат оградени в кавички.
Ако се изпусне списъкът от изрази , се изобразява празен ред. Ако се включи списък от изрази , изобразяват се стойностите на изразите.
Позиции за печат - Позицията, от която се отпечатва всеки елемент, се определя от пунктуацията , която се използва за отделните елементи в списъка. Бейсик разделя реда на зони за печат по 14 символа всяка. Когато в списъка от израза се постави :

  • Точка между изразите, то следващата стойност се изобразява от началото на следващата зона за печат.
  • Точка и запетая между изразите, то следващата стойност се изобразява непосредствено след последната стойност.
  • Един или няколко интервала между изразите предизвикват същия ефект, како точка и запетая.

Ако в края на списъка се постави запетая, точка и запетая, функция SPS или функция TAB, то следващият оператор PRINT започва изобразяването на нов ред, от указаните с тях позиции. Ако списъкът завършва без някоя от горните функции, в края на реда се поставя символ за край на ред, т.е. Бейсик прехвърля маркера в началото на следващия ред. Ако дължината на стойността , която трябва да се изобрази на екрана, надхвърля броя на оставащите на текущия ред позиции , стойността се изобразява от началото на следващия ред. Ако дължината на стойността , която ще се изобразява, надхвърля дължината , указана посредством WIDTH, Бейсик изобразява толкова символи , колкото се съберат на реда , а остатъкът се изобразява на следващия физически ред. Числата, които се изобразяват , винаги се следват от интервал. Пред положителните числа се поставя интервал , а пред отрицателните - знак минус.
Пример : В долния пример, запетаите в оператора PRINT указват всяка стойност да се изобрази в началото на следващата зона за печат.
10 X= 5
20 PRINT X+5, X-5, X*(-5)
RUN
10 0 -25

Символът точка и запетая в края на ред 20 указва данните и от двата оператора PRINT да се изобразяват на един ред.
10 INPUT X
20 PRINT X ; “ НА КВАДРАТ Е “ ; X^2 ; “И” ;
30 PRINT X ; “НА КУБ Е ” ; X^3
RUN
? 9
9 НА КВАДРАТ Е 81 И НА КУБ Е 729

Оператор PRINT #

Предназначение : Записва данни в последователен файл.
Версии : РОМ, дисков, разширен, компилатор
Формат : PRINT # номер на файл, [USING x$ ;] списък от изрази [ ; ]
Описание : номер на файл – номерът на файла , свързан с него при отварянето му за изход.
x$ - символен низ, състоящ се от форматни символи
списък от изрази – списък от числови и/или символни променливи, които ще се записват във файла.
PRINT # не компресира данните във файла. Данните се записват във файла точно във вида в който биха се извели на екрана с оператор PRINT. Поради това е необходимо да се обезпечи разделяне на данните във файла, за да може впоследствие да се осъществи коректен вход от файла. Числовите и символните изрази в списъка трябва да бъдат разделени с точки и запетаи. За правилното форматиране на символните изрази във файла се препоръчва използването на явни разделители в списъка от изрази.
Например ако А$=”CAMERA” и b$=”6304-1” , то операторът :
PRINT #1,А$;В$
Записва във файла CAMERA6304-1. Тъй като няма разделители , този запис не може да се въведе като два последователни низа. За да може това да стане в оператора PRINT # трябва да се поставят явни разделители, както е показано по-долу :
PRINT #1,А$;”,”;В$
След изпълнението му, във файла ще се запише
CAMERA, 6304-1
Пример : Когато данните , записани във файла , съдържат знака за долар, те могат да се прочетат с помощта на символни променливи, както е показано по-долу.
10 A=123
20 B=6789
30 C=22.33
40 OPEN “DATA “ FOR OUTPUT AS #1
50 PRINT #1, USING “$$####.##,”; A;B;C
60 CLOSE
70 OPEN “DATA” FOR INPUT AS #1
80 INPUT #1, A$, B$, C$
90 CLOSE
100 PRINT A$, B$, C$

Оператор READ

Предназначение : Прочита стойности на оператора DATA и ги присвоява на променливи
Версии : РОМ, дисков, разширен, компилатор
Формат : READ променлива [, променлива]. . .
Описание : променлива – числова или символна променлива или елемент от масив,който получава прочетена от оператор DATA стойност.
Операторът READ винаги трябва да се използва в комбинация с оператор DATA. Операторът READ присвоява стойностите от оператора DATA в съотношение едно към едно.
Променливите в оператора READ могат да са числови или символни, но прочетените стойности трябва да съответстват на типа на променливите. Ако това не е изпълнено, получава се грешка Syntax error(Синтактична грешка). Един оператор READ може да използва няколко оператора DATA (те се използват последователно) и няколко оператора READ могат да използват еди и същ оператор DATA. Ако броят на променливите надвиши броя на елементите в DATA оператор(ите), възниква грешка Out of data (Данните не достигат). Ако броя на променливите не изчерпва елементите в оператора DATA, следващият оператор READ започва четене от първия непрочетен елемент. Ако няма друг оператор READ, оставащите данни се игнорират.
Пример : Представената част от програма чете стойност от операторите DATA в масива А. След нейното изпълнение стойността на А(1) е 3.08 и т.н.
10 FOR I=1
20 READ A( I )
30 NEXT I
40 DATA 3.08, 5.49, 3.12, 3.98, 4.24
50 DATA 5.08, 5.55, 4.00, 3.16, 3.37
Долната програма чете числови и символни данни от оператора DATA на ред 30. Обърнете внимание ,че не е необходимо да се загражда в кавички БУРГАС , тъй като не съдържа запетаи, точки и запетаи или значещи интервали в началото или края.”СОЗОПОЛ”, обаче трябва да бъде в кавички заради запетаята.
10 PRINT “ГРАД”,”ОКРЪГ”, “КОД”
20 READ C$, S$, Z
30 DATA ”СОЗОПОЛ, ” , БУРГАС, 8600
40 PRINT C$, S$, Z
RUN
ГРАД ОКРЪГ КОД
СОЗОПОЛ, БУРГАС 8600

Оператор REM

Предназначение : Преномерира редове на програмата.
Версии : РОМ, дисков, разширен
Формат : REM коментар
Описание : <коментар> може да бъде всяка последователност от символи.
Операторите REM не се изпълняват , но при разпечатване на програмата се извеждат във вида , в който са въведени. Тези оператори , обаче забавят изпълнението на програмата и заемат място в паметта.
Към оператора REM може да се изпълнява преход (чрез операторите GOTO и GOSUB), като изпълнението продължава от първия изпълним оператор след операторите REM. В ред с изпълними оператори може да се добавя коментар като пред текста на коментара се поставя апостроф ( ‘ ), а също така като пред него се поставя и : REM. Ако се постави на един ред с други оператори на Бейсик, коментарът трябва да е последен на реда. В края на оператора DATA не може да се поставя коментар посредством апостроф. В този случай Бейсик приема апострофа като част от низа. За тази цел се използва : REM.
Пример : Този пример илюстрира двата начина на вмъкване на коментар в програмата.
10 ‘ изчисляване на средна скорост
20 SUM=0 : REM ИНИЦИАЛИЗИРАНЕ НА SUM
30 FOR I =1 TO 20
40 SUM=SUM+V(I)
Ред 20 може да се изпише и по следния начин :
20 SUM=0 ‘ ИНИЦИАЛИЗИРАНЕ НА SUM

Оператор RESTORE

Предназначение : Позволява повторно прочитане не данните от операторите DATA.
Версии : РОМ, дисков, разширен, компилатор
Формат : RESTORE [ред]
Описание : ред – номерът на реда , съдържащ оператора DATA.
След изпълнението на оператора RESTORE без указан <ред> , следващият оператор READ чете първия елемент от първия оператор DATA в програмата. Ако се укаже <ред> , следващия оператор READ чете първия елемент от указания оператор DATA.
Пример : В този пример оператора RESTORE в ред 20 установява указателя за текущия елемент от списъка DATA на първия елемент от списъка. Така стойностите, прочетени в ред 30 , са съответно 57 68 и 79.
10 READ A, B, C
20 RESTORE
30 READ D, E, F
40 DATA 57, 68, 79
50 PRINT A, B, C, D, E, F
RUN
57 68 79 57 68 79

Оператор RETURN

Предназначение : Прекратява изпълнението на програма и връща управлението в главната програма.
Версии : РОМ, дисков, разширен, компилатор
Формат : RETURN [ред]
Описание : ред – редът от програмата , на който се предава управлението. Може да се използва само в разширения Бейсик и в компилатора.
Независимо, че RETURN с номер на ред може да се използва в произволна програма, този формат е предвиден основно за връщане от подпрограми за прихващане на събития. В такива програми често се налага да се върне управлението на конкретен ред в главната програма , като се елиминира точката на връщане , създадена от GOSUB. С тази възможност трябва да се работи внимателно, тъй като активните по време на прекъсване оператори GOSUB, WHILE и FOR остават активни докато се обработва прекъсването.

Команда RUN

Предназначение : Започва изпълнението на програма.
Версии : РОМ, дисков, разширен, (компилатор)
Формат : RUN [ред]
RUN файлспец [ , R ]
Описание : ред – ред от намираща се в паметта програма, от който започва изпълнението.
файлспец – символен израз за файлова спецификация. <файлспец> може да съдържа и път. Изразът трябва да е изписан съгласно правилата за именуване на файловете. В противен случай се получава грешка.
Командата RUN и RUN с номер на ред започва изпълнението на програмата, която се намира в момента в паметта. Ако се укаже <ред> , изпълнението започва от този ред, в противен случай – от реда с най-нисък номер. RUN с файлова спецификация зарежда файла от диска или касетата и го изпълнява. Всички отворени файлове се затварят и се изтрива съдържанието на паметта преди да се зареди файлът. С опция R обаче, всички файлове с данни остават отворени. Изпълнението на командата RUN прекратява всички активни команди за високоговорителя, светлинното перо и джойстика. За оператор PLAY се установява режим на музикален фон.
Пример : Примерите показват начините на използване на командата RUN. Първата програма се изпълнява от началото си. Втората се изпълнява от ред 20. В този случай ред 10 на се изпълнява, поради което PI не получава правилна стойност. Отпечатва се 0 , тъй като всички числови променливи имат начална стойност 0.
10 PRINT 1/7
RUN
.1428571

10 PI=3.141593
20 PRINT PI
RUN 20
0
Оператор STOP

Предназначение : Прекъсва изпълнението на програмата и връща управлението в команден режим.
Версии : РОМ, дисков, разширен, (компилатор)
Формат : STOP
Описание : Операторът STOP може да се използва на произволно място в програмата с цел прекратяване на изпълнението й. Когато Бейсик срещне оператор STOP , той извежда следното съобщение :
Break in nnnnn
където nnnnn е номерът на реда , в който се е срещнал операторът STOP. За разлика от оператор END , STOP не затваря файловете.
Винаги, когато срещне оператор STOP , Бейсик връща управлението на командно ниво. Изпълнението на програмата може да продължи с команда CONT.
Пример : Тази програма изчислява стойността на променливата TEMP, след което спира изпълнението си. Когато изпълнението на програмата спре, вие можете да проверите стойността на TEMP. след това може да се използва команда CONT, за да се възобнови изпълнението на програмата от ред 40.
10 INPUT A, B
20 TEMP=A*B
30 STOP
40 FINAL=TEMP+200:PRINT FINAL
RUN
? 26, 2.1
Break in 30
PRINT TEMP
54.6
CONT
254.6

Сходни статии:

  1. Програмиране от по-висок ред в C++ Функция, някои формални параметри на която са функции, се нарича функция от по-висок ред. В езика C++ е възможно формален параметър на функция да е указател към функция, а също...
  2. Програмиране в C и C++ Кодирането или съставянето на програмата е реализация на алгоритмите чрез език за програмиране. Езиците за програмиране от високо ниво, какъвто е и програмният език C, се характеризират със задължителни синтактични...
  3. Функционално програмиране Функционални езици Основи математически функции и ג-смятането метод за дефиниране на функции без име – lambda функции (Alonzo Church, 1941) Особености не използват променливи и оператори за присвояване ⇒ итеративните...
  4. Програмиране на Java, основи на Java Йерархия на класовете за събития Моделът на делегиране за събития дефинира голям брой класове за събития. йерархия: Повечето от класовете за събития се намират в пакета java.awt.event Най горния клас...
  5. Програмиране на AVR-контролери Програмен модел Аритметическите и логическите операции се изпълняват от така нареченото Аритметично-логическо устройство (АЛУ). То има два входа и един изход. На входовете се въвеждат операндите, а на изхода се...

Comments are closed.