.PN51
14. funkcii dlq obespe~eniq wwoda i wywoda na qzyke bejsik.

14.1. funkciq INKEY$.

     funkci INKE wozwra}ae pustu strok simwolow esl n ispolxzowalas 
n odn klawi{ klawiatury  protiwno slu~a wozwra}aets odno|lementna 
simwolxnaq stroka.
format:  /<peremennaq simwolxnoj stroki>= / INKEY
     kod klawi n |kra n wywodqtsq razre{aets ispolxzowat ws klawi{ 
wplotx do klawi{i "CTRL+C".
     funkciq imeet tip "simwolxnoj stroki".

primer:             .
                    .
                    .
               310 BZ$=INKEY    "cikl
               320 IF BZ$= "" GOTO 310
               310     "prodolvenie programmy
                    .
                    .
                    .



14.2. funkciq INPUT$.

     funkci INPU wozwra}ae simwolxnu strok zadawaemo dliny pri~e 
wwod proishodit s klawiatury.
format:   /<peremennaq tipa simwolxnoj stroki>=/ INPUT$(<argument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowo konstanto celog tipa eg zna~eni zadae dlin wwodimo 
posledowatelxnosti simwolow. zna~enie dolvno levatx mevdu 1 i 255.
     pr wwod simwolo razre{aets ispolxzowat ws simwol wplot d 
simwola "CTRL+C". wwodimye s klawiatury simwoly na |kran ne wyda`tsq.
     funeciq imeet wid simwolxnoj stroki.

primer:        70 A$=INPUT (10)  "trebuetsq wwesti s klawiatury
                  10 simwolow.     


.CP15
14.3  funkci IN dl fizi~eskog wwod kakogo-lib zna~eni i whodnog 
kanala.

     funkciq INP obespe~iwaet prqmoe ~tenie kakogo-libo porta.
format:   /<celaq peremennaq>=/  INP (<argument>).
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowo konstanto celog tipa.zna~eni argument dolvn levat mevd   
255 wkl`~itelxno. ono opredelqet nomer kanala.

ukazanie:
     funkci qwlqets inwersno funkcie p otno{eni  instrukci OU 
(smotri punkt 13.8.).

primer:        100 C%=INP(52)


.CP15
14.4. funkciq PEEK dlq ~teniq kakogo-libo bajta po kakomu-libo adresu.

     funkci PEEˠ pozwolqe ~itat kakoj-lib baj i zadannog adres  
diapozone ot 0 do 65535.
format:  /<celaq peremennaq>=/ PEEK (<argument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowo konstanto celog tipa zna~eni argument dolvn levat mevd   
6553 wkl`~itelxno zna~eni wyraveni movn zadawat  desqti~no il  
{estnadcateri~nom wide.

     ukazanie:
     funkci qwlqets inwersno instrukcie p otno{eni  instrukci POK 
(smotri punkt 13.9.).

primer:        50 PRINT PEEK(&H440)


.CP15
14.5. funkciq SPC.

     funkci SPà postawlqe nekotoro zadawaemo koli~estw probelo  
teku}ej pozicii pe~ati stroki pe~ati.
format:  SPC (<arguument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowo konstanto celog tipa zna~eni argument dolvn levat mevd   
255 wkl`~itelxno. ono zadaet koli~estwo wstawlqemyh probelow.

ukazanie:
     funkci razre{aets ispolxzowat tolxk  spisk parametro instrukci 
pe~ati PRINT i LPRINT.

primer:        40 PRINT "AB=>";SPC(12);"<=CD"
               RUN
               AB=>           <=CD
               OK


.CP15
14.6. funkciq TAB.

     funkci TA  ustanawliwae kurso  zadannu pozici p modul dlin 
stroki.
format:  TAB (<argument>)
     <argumen move byt ~islowy wyraveniem ~islowo peremenno il 
~islowo konstanto celog tipa zna~eni argument dolvn levat mevd   
25 wkl`~itelxno esl teku}a pozici kursor bolx{ zna~eni wyraveni p 
modul dlin stroki t kurso perehodi  nuvnu pozici n sledu`}e 
stroke.

ukazanie:
     funkci razre{aets ispolxzowat tolxk  spisk parametro instrukci 
pe~ati PRINT i LPRINT.

primer:        40 PRINT "AB" TAB(6) "CD"               
               RUN
               AB   CD
               OK


.CP15
14.7. funkciq LPOS.

     funkciq LPOS ukazywaet fakti~esku` pozici` pe~ata`}ej golowki.
format:  LPOS (<argument>)
     <argument move byt kakoj-lib peremennoj kotora dl wypolneni 
funkci n imee nikakog zna~eniq perwo pozicie qwlqets sama krajnq 
lewaq poziciq pe~ata`}ej golowki.

primer:        70 PRINT LPOS(AR)


.CP15
14.8. funkciq POS.

     funkciq POS ukazywaet nomer teku}ej pozicii kursora na |krane.
format:  POS (<argument>)
     <argument move byt kakoj-lib peremennoj kotora dl wypolneni 
funkci n imee zna~eniq perwo pozicie qwlqets sama krajnq lewa 
poziciq.

primer:        70 IF POS(Z$) > 60 THEN PRINT CHR$(13)


.CP15
15. rabota s naborami dannyh na qzyke bejsik.

     n qzyk bejsi movn rabotat  posledowatelxnym naboram danny   
naboram danny prqmog dostupa rabot  naboram danny baziruets n 
rabot  naboram danny  operacionno sistem SCPX standartna dlin 
fizi~esko zapis sostawlqe 12 bajt logi~eska dlin zapis move byt 
l`boj n dolvn ostawatxs postoqnnoj dinami~esk izmenqemy dlin zapise 
newozmovny.
     su}estwu`}i堠 posledowatelxny堠 nabor danny蠠 nelxz dinami~esk 
ras{irqtx esl trebuets ras{irenie t ras{irqemy danny sledue 
skopirowat w wtoro nabo dannyh INPUT-nabo danny movn zate 
uni~tovit komando KIL (smotr punk 5.16.) skopirowanny nabo danny 
sledue otkryt ka OUTPUT-nabo dannyh posl |tog nabo danny movn 
ras{irqtx p okon~ani rabo wyhodno nabo danny movn pereimenowat  
pomo}x` instrukcii NAME (smotri punkt 5.17.).
     pr rabot  naboram danny prqmog dostup  movn obra}atxs  
zapisq nabor danny  l`bo posledowatelxnosti ssylk  kakoj-libo
zapis prishodi p otnositelxnom nomeru nomer zapisi. zapisq nabor 
danny movn obra}atxs prqmy dostupom wozmove takv  sme{anny sposo 
dostupa pr kotoro na~ina  kakoj-lib wybranno zapis prodolva` 
rabotat posledowatelxno  prqmo dostup wsegd ispolxzuets 102 bajt 
pr |to polxzowatel dolve samostoqtelxg kontrolirowat nezanqty q~ejk 
pamqti rekomenduets proizwest頠 dopolnitelxno堠 zapolneni堠 zapisi 
pozwolq`}e sraz widet n otnosq}ies  zapis danny  nezanqty |lement 
zapisi.


.CP15
15.1 instrukci DAT dl ustanowk programmny konstan  danny  
       programmnyh naborah dannyh.

     programmny konstant  danny razme}a`  programmny nabora danny  
pomo}x` instrukcii DATA.
format:  DATA <konstanta>/,<konstanta>/...
     instrukci DAT qwlqets newypolnqemo instrukciej on move zanimat 
neskolxk stro |kran  sodervat maksimalxn 25 bajt  neskolxk 
instrukci DAT  porqdk wozrostani i nomero stro movn swqzat  
kakim-lib naboro dannyh instrukci  DAT  movn ispolxzowat  l`bo 
meste programmy.
     w ka~estwe <konstanty> instrukcii DATA movno ispolxzowatx:
     - ws tip ~islowy konstan (cely ~isla ~isl  fiksirowanno 
       to~koj ~isl  plawa`}e to~ko odinarno  dwojno to~nost  
       {estnadcateri~nye ~isla, wosxmiri~nye ~isla);
     - konstant tip simwolxno strok  ka~estw posledowatelxnosti 
       kotoru` takve movno zakl`~itx w " ".
     posledne trebuets  te slu~aqh kogd neobhodim wstawit zapqtu` 
dwoeto~i il probe pered posl il wnutr simwolxno stroki dwojno 
apostrof ne razre{aetsq ispolxzowatx w konstantah tipa simwolxnoj stroki.

ukazanie:
      to~k zreni metodik programmirowani sledue opisywat instrukci 
DAT dl konstan odinakowog tipa.instrukci dl simwolxny stro dolvn 
stoqtx pered instrukciqmi dlq ~islowyh konstant.
.CP7
primer:        10 FOR I%=1 TO 5
               20 READ A%
               30 PRINT A%;
               40 NEXT
               50 DATA 5,4,3,2,1
               RUN
                5  4  3  2  1
               OK
.CP9           10 FOR I%=1 TO 5
               20 READ A%
               30 PRINT A%;
               40 RESTORE
               50 NEXT
               60 DATA 5,4,3,2,1
               RUN
                5  5  5  5  5
               OK
.CP15          10 DATA A.MUELLER, 1036, "BERLIN SPREESTR.7"
               20 DATA K.ANTON, 1090, "BERLIN FRIEDENSSTR.1"
               30 DATA J.HARPE, 2135, "ADOLF DORFSTR.15"
               40 DATA "END"
               50 READ S$
               60 IF S$="END" THEN END
               70 READ I%,S1$ 
               80 IF I% < 2000 THEN PRINT S$;I%;S1$
               90 GOTO 50
               100 END
               RUN
               A.MULLER 1036 BERLIN SPREESTR.7
               K.ANTON 1090 BERLIN FRIEDESSTRR.1
               OK


.CP15
15.2. instrukciq READ ili ~tenie iz programmnyh naborow dannyh.

      pomo}x instrukci REAĠ s~itywa` dannye organizowanny堠  
programmny nabora danny instrukci DATA  peremennye  peremennye 
ukazannye w instrukcii READ.
format:  READ  inentifikator peremennoj
               /,identifikator peremennoj/...
     pr wypolneni instrukci REA sledu`}i dru z drugo peremenny 
priswaiwa`ts posledowatelxn zna~eni i programmnog nabor dannyh esl 
wstre~aets kakaq-lib ~islowa peremennaq t sootwetstwu`}i |lemen  
instrukci DAT tov dolve byt kakoj-lib ~islowo konstantoj esl  
instrukci頠 REAĠ wstre~aets peremenna tip simwolxnoꠠ stroki, t 
sootwetstwu`}i |lemen  instrukci DAT takv dolve byt konstanto tip 
simwolxno stroki  pomo}x instrukci RESTOR (smotr punk 15.3. movn 
ustanowit ukazatel nabor danny  na~aloorganizowanny instrukcie DAT 
dannyh. blagodarq |tomu movno e}e raz s~itywatx konstanty.
               
primer:        10 FOR I%=1 TO 10 STEP 2
               20 READ A(I%),A(I%-1)
               30 NEXT
               40 DATA 23,27,88,17
               50 DATA 13,17,78,-7
               60 DATA -1,99,20,30
               70 PRINT
               80 FOR I%=0 TO 9
               90 PRINT A(I%);
               100 NEXT
               RUN
                27  23  17  88  17  13  -7  78  99  -1
               OK


.CP15
15.3. instrukciq RESTORE dlq ustanowki ukazatelq programmnogo nabora dannyh

      pomo}x instrukci RESTORŠ movn nastroit ukazatel obrabotk 
programmnog nabor danny n dannye stoq}i  na~al kakoj-lib instrukci 
DATA (smotri punkt 15.1.).
format:  RESTORE  /<nomer stroki >/
      programmnog nabor danny est ukazatelx ustanawliwa`}ij kaka 
sledu`}a konstant dolvn byt priswoen peremennoj danny ukazatel 
na~inae  nabor instrukci DAT  {a z {ago prohodi p programmnom 
nabor dannyh  pomo}x instrukci RESTORŠ wozmove neposledowatelxny 
dostup oby~na  posledowatelxnost prerywaetsq  ukazatel ustanawliwaets 
n perwy |lemen kakoj-lib wybranno instrukci DAT (smotr punk 15.1.) 
esl  instrukci RESTOR ukaza kakoj-lib nome stroki t ukazatel 
ustanawliwaets n perwu konstant  zadanno instrukci DATA esl nikako 
nome strok n zadan t ukazatel ustanawliwaets n perwu konstant  
perwoj w programme instrukcii DATA. 

primer:        10 DATA E,I,K,H
               20 DATA M,A,T
               30 READ A$,B$,C$,D$
               40 READ E$,F$,C$
               50 RESTORE 20
               60 READ H$,I$,J$
               70 PRINT E$;F$;F$;A$;H$;I$;J$;B$;C$
               RUN
               matnematik
               ok


.CP15
15.4. instrukciq OPEN dlq otkrytiq nabora dannyh

     spomo}x instrukci OPE otkrywa` nabor danny  ustanawliwa` meto 
dostupa.
format:  OPEN <revim>, /#/ <nomer nabora dannyh>,<dopustimyj identifikator
         nabora dannyh /,<dlina zapisi>/.
      pomo}x parametr <revim ustanawliwa` meto dostup  nabor 
dannyh  ka~estw revim movn ukazywat wyraveni i simwolxny strok 
peremennu tip simwolxno strok il konstant tip simwolxno stroki 
kotorye mogut prinimatx sledu`}ie zna~eniq:
          "o": posledowatelxnyj wyhodnoj nabor dannyh,
          "I": posledowatelxnyj whodnoj nabor dannyh,
          "R": nabor dannyh prqmogo dostupa dlq wywoda/wwoda.
     paramet nome nabor danny move byt cely wyraveniem celo 
peremenno il celo konstantoj ~islowo zna~eni dolvn byt mevd  1 
wkl`~itelxno z s~e |tog kavdy nabo danny polu~ae nekotory 
logi~eski nomer p kotorom ssyla`ts razli~ny instrukci pr dostup  
nabor dannyh dopustimy identifikato nabor danny qwlqets kakim-lib 
dopustimy  operacionno sistem SCP identifikatoro nabor dannyh eg 
movn zadawat  wid zakl`~enno    konstant tip simwolxno stroki 
lib  ka~estw peremenno tip simwolxno strok il wyraveni i 
simwolxny strok   eg pomo}x ustanawliwaets sootwetstwi  wne{nim 
oblastqm pamqti  ka~estw identifikatoro naboro danny razre{aets 
ispolxzowatx tolxko prostye identifikatory.
     gruppowy堠 identifikator naboro danny (t.e "? - 頠 "*"-
identifikatory) nedopustimy!
     paramet dlin zapis movn ispolxzowat pr rabot  naboram danny 
prqmog dostupa esl o n zadan t ispolxzuets standartna dlin zapisi 
opisanna pr start bejsik-interpretatora danny paramet move byt cely 
wyraveniem, celoj peremennoj ili celoj konstantoj.

primery:       10 OPEN "I",I,"BEISPIEL"
                    .
                    .
                    .
               30 OPEN "0",3,"B:BEISPIEL.TXT"
                    .
                    .
                    .
               60    "B:PROGRAMM.DOC"
               70  OPEN "0",2,S$
                    .
                    .
                    .

pripe~anie:
      pomo}x danno instrukci OPE otkrywa` kakoj-lib nabo danny  
sootwetstwu`}i identifikatoro nabor danny w wne{ne pamqti esl nabo 
danny e} n organizowan t eg neobhodim sna~al snow sozdat  wnest 
 katalo naboro dannyh odnowremenn rezerwiruets sootwetstwu`}i bufe 
dl nabor danny zadanno qwn il  oby~n standartn ispolxzuemo dlino 
zapisi.


.CP15
15.5. instrukciq INPUT# dlq wwoda iz posledowatelxnogo nabora dannyh.

      pomo}x instrukci INPUT dl wwod i posledowatelxnog nabor 
danny s~itywa` danny  kod ASCI i nabor danny  to wide  kako 
danny byl wweden  klawiatur  pomo}x instrukci INPU (smotr punk 
13.1.).
format:   INPUT# <nomer nabora dannyh>,<peremennaq>/,<peremennaq>/...
     pr otkryti nabor danny  pomo}x instrukci OPEΠ (smotr punk 
15.4. kavdy otkryty nabo danny polu~ae logi~eski nome nabor dannyh 
p kotorom  nem movn obra}atxs  pomo}x instrukci  dostupa 
sootwetstwenn zadaets <nome nabor dannyh dl sootwetstwu`}eg nabor 
dannyh.nome nabor danny move byt cely wyraveniem celo peremenno il 
celoj konstantoj.
     kavdy |lemen danny s~itywaets i ukazannog nabor danny  kaku`-
lib <peremennu` spisk peremenny  to posledowatelxnosti ka on 
poqwlq`ts  spiske pr |to zna~eni simwolxny stro dolvn priswaiwatxs 
peremenny tip simwolxno stroki ~islowy zna~eni ~islowy peremennym  
protiwno slu~a woznikae o{ibka esl s~itywaemo zna~eni imee n to v 
tip, ~to i peremennaq, to proishodit preobrazowanie tipow.
     ws s~itywaemy  pomo}x instrukci INPUT |lement danny dolvn byt 
razdelen zapqtymi simwolxny strok dolvn byt zakl`~en   " perwy 
s~itywaemy |lemento qwlqets to |lement kotory sledue z teku}e 
pozicie ukazatel nabor dannyh t.e perwy |lemen s~itywaets sraz v 
p zawer{eni posledneg dostupa fizi~eski granic zapis ignoriru`tsq 
spiso s~itywaemy |lementowdanny movn na~at  seredin kakoj-lib zapis 
i okon~itx w seredine l`boj drugoj zapisi.

primer:        10 OPEN "O",I,"BEISPIEL"
               20 A%=10
               30 B%=35
               40 C%=20
               50 PRINT# I,A%,B%,C%
               60 PRINT# I,A%,B%,C%
               70 CLOSE I
               80 OPEN "I",I,"BEISPIEL"
               90 IF EOF(I) THEN END
               100 INPUT# 1,I,Z%
               110 IF Z% > 30 THEN PRINT Z%
               120 GOTO 90
               RUN
               35
               35
               OK

prime~anie:
     dl kavdo peremenno instrukci INPUT s~itywae posledowatelxnost 
simwolo i nabor dannyh pok n bude najde sootwetstwu`}i 
ograni~itelxny simwol dl ~islowy danny |t move byt probel zapqta 
il uprawlq`}i simwo perewod strok il wozwrat karetki dl simwolxny 
stro ograni~itelxnym simwolam qwlq`ts zapqta  uprawlq`}i simwol 
perewod strok  wozwrat karktki esl kakaq-lib simwolxna strok 
na~inaetsq s kawy~ki, to prinima`tsq wse simwoly do sledu`}ih kawy~ek.


.CP15
15.6. instrukciq LINE INPUT# dlq wwoda l`byh posledowatelxnostej simwolow iz
      posledowatelxnyh naborow dannyh.

     instukci LINŠ INPUT dl posledowatelxnog wwod nabor danny 
s~itywae l`by simwol  kod ASCI i kakogo-lib nabor danny taki 
v堠 obrazom  pomo}x instrukci LINŠ INRUԠ (smotr punk 13.2. 
posledowatelxnosti simwolow wwodilisx s klawiatury.
format  LINŠ INPUT <nome nabor dannyh> <peremenna tip simwolxno 
                         stroki>
     pr otkryti kakogo-lib nabor danny instrukcie OPE (smotr punk 
15.4. kavdy otkryty nabo danny polu~ae logi~eski nome nabor dannyh 
p kotorom  nem movn obra}atxs  pomo}x instrukci頠 dostupa 
sootwetstwenn dl sootwetstwu`}eg nabor danny ukazywaets <nome nabor 
dannyh> <nome nabor dannyh move byt cely wyraveniem celo peremenno 
ili celoj konstantoj.
     na~ina  teku}e kursor ws simwol d simwol wozwrat karetk "CR 
priswaiwa`ts peremenny tip simwolxno konstanty sa simwo wozwrat 
karktki "CR" ne priswaiwaetsq.

primer:        10 OPEN "1",2,"primer"
               20 LINE INPUT# 2,
               30 PRINT
               40 END
               RUN


.CP15
15.7. instrukcii PRINT# i PRINT# USING dlq wywoda w posledowatelxnyj nabor
      dannyh s formatirowaniem i bez formatirowaniq.

      pomo}x instrukci PRINT  PRINT USINǠ movn osu}estwit wywo 
informaci  kakoj-lib posledowatelxny nabo danny  formatirowanie  
bez formatirowaniq.
format:   PRINT# <nomer nabora dannyh>,/USING <ukazanie formata>;/ 
                 <spisok wyravenij dlq wywoda>=<wyravenie>/;<wyravenie>/...
                 ili
                 <spisok wyravenij dlq wywoda>=<wyravenie>/,<wyravenie>/...
                 ili
                 <spisok wyravenij dlq wywoda>=<wyravenie>/<wyravenie>/...
     pr otkryti naboro danny  pomo}x instrukci OPEΠ (smotr punk 
15.4. kavdy otkryty nabo danny polu~ae logi~eski nome nabor dannyh 
p kotorom  nem movn obra}atxs  pomo}x instrukci頠 dostupa 
sootwetstwenn ukazywaets dl sootwetstwu`}eg nabor danny <nome nabor 
dannyh> <nome nabor dannyh move byt cely wyraveniem celo peremenno 
ili celoj konstantoj.
     kakoe-lib wyraveni i spisk wyraveni dl wywod move byt 
wyravenie i simwolxny strok ~islowy wyraveniem konstanto tip 
simwolxnoj stroki ili ~islowoj konstantoj.
     zapisywaemy堠  nabor danny danny n svima`tsq ᠠ  wid 
posledowatelxnoste simwolo peresyla`ts w wne{n` pamqtx ~tob otdelxny 
danny movn byl snow bezo{ibo~n s~itat  pomo}x instrukci INPUT 
neobhodim dopolnitelxn wstawit sootwetstwu`}i razdelitelxny simwoly 
dl formatirowannog wywod  kakoj-lib posledowatelxny nabo danny takv 
otnositsq wse skazannoe otnositelxno ukazaniq formata w punkte 13.4.

ukazanie:
     dl neformatirowannog wywod rekomenduets razdelqt |lement wywod 
to~ko  zapqtoj esl v ispolxzuets zapqtaq t trebuets nenuvna 
oblast pamqt dl wstawlenny probelow esl kakaq-lib simwolxna strok 
sam sodervi zapqtye wedu}i probel il uprawlq`}i simwol perewod 
stroki, simwolxnu` stroku bezuslowno sleduet zakl`~atx w kawy~ki.

primer:        10 A%=5: B%=7
               20 OPEN "O",I,"TEST.TXT"
               30 PRINT# I,A%;B%;2.73;-2
               40 A$="MUELLER"
               50 B$="MEYER"
               60 PRINT# I,A$,B$
               70 PRINT# I;I;CHR$(34);A$;CHR$(34);CHR$(34);B$
                  CHR$(34)
               80 CLOSE# I
               90 OPEN "I",I,"TEST.TXT"
               100 INPUT#I,A%,B%,C%,D%,A$,B$,C$
               RUN
                5  7  2.73  -2 MULLERMEYER MULLER MEYER                           
               OK


.CP15
15.8. instrukciq WRITE# dlq wywoda w posledowatelxnyj nabor dannyh

      pomo}x instrukci WRITE movn zapisywat  kakoj-lib nabo danny 
informaci taki obrazom ~t e movn zate neposredstwenn s~itywat  
pomo}x` instrukcii INPUT#.
format:   WRITE# <imq nabora dannyh>, <spisok wyravenij dlq wywoda>
          <spisok wyravenij dlq wywoda>=<wyravenie>/,<wyravenie>/...
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci OPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome 
nabor dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci 
dostupa sootwetstwenn ukazywaets <nome naborᠠ dannyh dl 
sootwetstwu`}eg nabor dannyh <nome nabor dannyh move byt cely 
wyraveniem, celoj peremennoj ili celoj konstantoj.
     wstre~a`}ies  <spisk wyraveni dl wywoda |lement mogu byt 
l`bym ~islowym wyraveniqm il wyraveniqm i simwolxny strok ~islowym 
peremennym il peremennym tip simwolxno strok il ~islowym konstantam 
il konstantam tip simwolxno stroki otdelxny |lement otdelq`ts 
zapqtymi.
     wwodimy danny awtomati~esk okan~iwa`ts zapqtoj simwolxny strok 
awtomati~eski zakl`~a`tsq w kawy~ki " ".

primer:        10 S$="informaciq"
               20 C%=1237
               30 OPEN "O",  I,"BEISPIEL"
               40 WRITE# I,S$,C%
               50 CLOSE
               60 OPEN "I",#2,"BEISPIEL"
               70 INPUT# 2,S$,C%
               80 PRINT S$,C%
               90 END
               RUN
               informaciq  1237
               ok


.CP15
15.9. instrukciq GET dlq peresylki kakoj-libo zapisi nabora dannyh prqmogo
      dostupa w oblastx bufera.

      pomo}x instrukci GE peresyla` o~erednu zapis i wne{ne pamqt  
w oblastx bufera.
format:   GET /#/<nomer nabora dannyh>/,<nomer zapisi>/
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci OPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome 
nabor dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci 
dostupa sootwetstwenn dl sootwetstwu`}eg nabor danny ukazywaets 
<nome nabor dannyh>  <nome nabor dannyh move byt cely wyraveniem 
celoj peremennoj ili celoj konstantoj.
      pomo}x parametr nomer zapis movn zadat          kakoj-lib 
nome zapisi o move levat mevd   3276 wkl`~itelxno esl |to 
parametr ne zadan, to s~itywaetsq posledowatelxnaq o~erednaq zapisx.
<nome zapisi move byt cely wyraveniem celo peremenno il celo 
konstantoj.

primer:        10 GET I
               70 GET 5,30


.CP15
15.10. instrukciq PUT dlq peresylki kakoj-libo zapisi iz oblasti
       bufera w nabor dannyh prqmogo dostupa.

      pomo}x instrukci PU peresyla` sodervimo oblast bufer n 
wne{n`` pamqtx.
format:   PUT /#/ <nomer nabora dannyh>/,<nomer zapisi>/
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci oPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome 
wybor dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci 
dostupa sootwetstwenn dl sootwetstwu`}eg nabor danny ukazywaets 
<nome nabor dannyh> <nome nabor dannyh move byt cely wyraveniem 
celoj peremennoj ili celoj konstantoj.
      pomo}x parametr nome zapis movn zadat kakoj-lib nome zapisi 
o move levat mevd   3276 wkl`~itelxno.esl |to paramet n zadan t 
oblast bufer zapisywaets  nabo danny  ka~estw zapisi sledu`}e z 
poslednim nomerom zapisi.

primer:        10 OPEN "R",1,"ADRESSE.TXT",79
               20 OPEN "O",2,"ADRESSE.$$$"
               30 FIELD 1,20 AS NAME$, 15 AS VNAME$, 20 AS 
                  STRASSE$, 4 AS POSTLZ$, 20 AS ORT$
               40 INPUT "SATZNUMMER"; SATZ%                     1)
               50 IF SATZ% < 1 THEN 230
               60 INPUT "SCHREIBEN (1) ODER LESEN (2)": S%      8)
               70 ON S% GOTO 80, 200
               80 INPUT "FAMILIENNAME"; SNAME$.                 2)
               90 INPUT "VORNAME"; SVNAME$                      3)
               100 INPUT "STRASSE"; SSTRASSE$                   4)
               110 INPUT "POSTLEITZAHL"; SPOSTLZ$               5)
               120 INPUT "ORT"; SORT$                           6)
               130 LSET NAME$=SNAME$
               140 LSET VNAME$=SVNAME$
               150 LSET STRASSE$=SSTRASSE$
               160 LSET POSTLZ$=SPOSTLZ$
               170 LSET ORT$=SORT$
               180 PUT 1,SATZ%
               190 GOTO 40
.CP10          200 GET 1,SATZ%
               210 PRINT#2,NAME$,",",VNAME$,",",POSTLZ$,",",
                   ORT$,",",STRASSE$,","
               220 GOTO 40
               230 CLOSE
               240 END
               250 REM AN STELLE VON ZEILE 210 KANN AUCH
                   EINFACHER DIE FOLGENDE  ZEILE ATEHEN:        7)
               260 WRITE# 2,NAME$,VNAME$,POSTLZ$,ORT$,STRASSE$

     1)- nomer zapisi; 2)- familiq; 3)- imq; 4)-ulica; 5)- po~towyj indeks;
6)- mesto 7)- wmest strok 21 mogu stoqt prost sledu`}i stroki 8)- 
zapisx ili ~tenie(2).

      primer movn dopolnit kakoj-lib nabo danny adreso il movn 
sdelatx wydervki iz nabora dannyh adresow.


.CP15
15.11 instrukci FIELĠ dl strukturirowani zapise danny  kakom-lib 
        nabore dannyh tekstow pri prqmom dostupe.

      pomo}x instrukci FIEL ustanawliwa` struktur zapis dl naboro 
dannyh tekstow s prqmym dostupom.
format:   FIELD/#/<nomer nabora dannyh>,<dlina polq> AS
          <identifikator simwolxnoj stroki>/,<dlina polq>
          AS <identifikator simwolxnoj stroki>/...
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci OPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome 
nabor dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci 
dostupa sootwetstwenn ukazywaets nome nabor danny dl nabor dannyh 
otkrytog ka nabo danny prqmog dostupa <nome nabor dannyh move byt 
celym wyraveniem, celoj peremennoj ili celoj konstantoj.
     instrukci FIEL strukturirue oblast bufera bufe wsegd sodervi 
odn zapis dannyh bajt oblast bufer ime` skwoznu numeraci` na~ina  
edinicy parametr dlin pol priswaiwaetsq na~ina  edinic p porqdk 
zadanno堠 koli~estw bajto sootwetstwu`}eg identifikatorᠠ simwolxno 
stroki z s~e |tog movn logi~esk adresowat danny u~asto bufer  
pomo}x` identifikatora sootwetstwu`}ej simwolxnoj stroki.
      pomo}x instrukci LSEԠ il RSEԠ (smotr punk 15.12. movn 
raspolagat |t peremenny slew il spraw  raspe~atkam tekstow osobenn 
udobn wypolnqt  pomo}x |ti instrukci preobrazowani tipo mevd 
~islowym peremennym  peremennym tip simwolxno stroki kotory odnak 
pozwolq` n izmenqt wnutrenni wi predstawleni i taki obrazom 
obespe~iwa` |ffektiwno hraneni ~islowy wyraveni  peremenny tip 
simwolxno strok (smotr takv punkt 16.4  16.5.) wwedenny  
instrukci FIEL identifikator simwolxny stro movn ispolxzowat tolxk 
wmeste s instrukciqmi LSET, RSET, PUT i GET.

primer:        10 OPEN "R" ,5,"DIREKT.DAT",40
               20 FIELD 5 ,  I AS F$,20 AS ND$, 19 AS VD$

prime~anie:
     pere neposredstwenno zapisx il s~itywanie danny dolvn byt 
ukazan instrukci FIELD esl opisan neskolxk polej t sledue obratit 
wnimani n to ~tob summ wse dli pole n prewy{al zadannu  
instrukcii OPEN-R dlinu zapisi.
                
               
.CP15
15.12. instrukcii LSET i  RSET dlq lewoustanowlennoj ili prawoustanowlennoj
       zapisi simwolxnyh strok (w kaku`-libo zapisx dannyh nabora dannyh 
       tekstow s prqmym dostupom).

      pomo}x instrukci LSE   RSE movn dobawit zna~eni wyraveni i 
simwolxnyh strok k lewoustanowlennym ili prawoustanowlennym tekstam.
format:   LSET  <peremennaq>=<wyravenie>
          RSET  <peremennaq>=<wyravenie>
     paramet <peremennaq move byt ob'qwlenny  pomo}x FIELĠ (smotr 
punk 15.11. identifikatoro simwolxno strok il oby~no peremenno tip 
simwolxnoj stroki.
     <wyravenie move byt wyravenie i simwolxny strok peremenno tip 
simwolxnoj stroki ili konstantoj tipa simwolxnoj stroki.
     dannu instrukci osobenn |ffektiwn ispolxzowat dl obrabotk 
bufero naboro danny pr rabot  naboram danny teksto  prqmy 
dostupom.
primer:        10 D$=SPACE$(20)
               20 E$="simwolxnaq stroka"
               30 RSET D$=E$
               40 D$="%"+D$+"%"
               50 PRINT D
               RUN
               %        simwolxnaq stroka%
               ok

prime~anie:
     esl <wyravenie koro~ razmer oblast pamqti podgotowlenno  
pomo}x peremenno tip simwolxno stroki t swobodny pozici zapolnq`ts 
probelami esl naoborot razme oblast menx{ zna~eni <wyravenie> t 
<wyravenie usekaets sprawa |t otnosits ka  instrukci LSE ta   
instrukcii RSET.


.CP15
15.13. instrukciq CLOSE dlq zakrytiq otkrytyh s pomo}x` OPEN naborow dannyh.

      pomo}x instrukci CLOS teku}e sodervimo bufer kakogo-lib nabor 
danny peresylaets w wne{n` pamqt  zate sodervimo bufer stiraets  
sootwetstwu`}i nabo danny otme~aets  katalog naboro danny ka 
nedostupnyj.
format:   CLOSE //#/<nomer nabora dannyh>/,/#/<nomer nabora dannyh>/.../
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci OPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae nome nabor 
dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci dostupa 
sootwetstwenn sledue zadat <nome nabor dannyh  instrukci CLOSŠ dl 
zakrywaemy naboro dannyh esl nikako nome nabor danny n zadan t 
proishodi zakryti wse otkryty  moment wyzow instrukci CLOS naboro 
dannyh <nome nabor dannyh move byt cely wyraveniem celo peremenno 
ili celoj konstantoj.
(smotri punkt
primer:        10 CLOSE 1,3,4
               80 CLOSE

prime~anie:
      pomo}x instrukci EN  komand NEW RESE        SYSTE͠ takv 
movn zakryt ws otkryty nabor dannyh |t n otnosits  instrukci 
STOP.
.PA
16. funkcii dlq obespe~eniq raboty s naborami dannyh na qzyke bejsik.

16.1. funkciq EOF.

     funkci EO ukazywaet imee l mest uslowi konc nabor danny dl 
kakogo-libo nabora dannyh.
format:   /<INTEGER-peremennaq>=/ EOF(<nomer nabora dannyh)
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci OPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome 
nabor dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci 
dostupa sootwetstwenn sledue zadat nome naborᠠ danny蠠 dl 
sootwetstwu`}ego nabora dannyh.
<nome nabor dannyh move byt cely wyraveniem celo peremenno il 
celoj konstantoj.
     funkci prinimae zna~eni 1 esl imee mest uslowi konc nabor 
dannyh, w protiwnom slu~ae ona prinimaet zna~enie nulx.
funkciq imeet tip "INTEGER".

primer:        300 WHILLE NOT EOF(1)
                    .
                    .
                    .
               400 WEND


.CP15
16.2. funkciq LOF.

     funkci LOƠ ukazywae koli~estw zapise  posledne s~itanno il 
zapisannom na wne{n`` pamqtx bloke.
format:    /<INTEGER-peremennaq>=/ LOF(<nomer nabora dannyh>) 
     pr otkryti kakogo-lib nabor danny  pomo}x instrukciiOPE (smotr 
punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome nabor 
dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci dostupa 
sootwetstwenn movn zadat nome nabor danny dl sootwetstwu`}eg nabor 
dannyh <nome nabor dannyh move byt cely wyraveniem celo peremenno 
ili celoj konstantoj.
     nabor danny mogu sostoqt maksimalxn i 1 blokow kavdy blo 
imee maksimalxn 12 zapise p 12 baj kavdaq esl nabo danny sostoi 
tolxk i odnog bloka t funkci LO ukazywae neposredstwenn dlin 
nabora dannyh.
funkciq imeet tip "INTEGER".

primer:        70 PRINT LOF(2)


.CP15
16.3. funkciq LOC.

     funkci LOà wozwra}ae nome zapisi  kotoro by prroizwede 
posledni dostu pr rabot  kakim-lib naboro danny prqmog dostupa pr 
rabot  posledowatelxnym naboram danny danno zna~eni堠 ukazywae 
odnowremenno koli~estwo zapisej, k kotorym byl proizweden dostup.
format:    /<INTEGER-peremennaq>=/ LOC (<nomer nabora dannyh>)
     pr otkryti kakogo-lib nabor danny  pomo}x instrukci OPE 
(smotr punk 15.4. kavdy otkryty nabo danny polu~ae logi~eski nome 
nabor dannyh p kotorom  nem movn obra}atxs  pomo}x instrukci 
dostupa sootwetstwenn sledue ukazat <nome nabor dannyh dl 
sootwetstwu`}eg nabor dannyh esl <nome nabor dannyh otnosits  
nabor danny  prqmy dostupom t funkci LO wozwra}ae nome zapisi  
kotoroj byl proizweden poslednij dostup.

primer:        70 PRINT LOC(2)


.CP15
16.4. funkcii MKI$, MKS$ i MKD$.

     funkci MKI$ MKS  MKD zapomina` celo~islenny zna~eniq zna~eni  
odinarnoꠠ to~nostx il zna~eni  dwojno to~nostx ka "~islowye 
simwolxnye stroki toj ve dliny.
format    /<identifikato򠠠 simwolxnoꠠ stroki>=/
                MKI$(<celo~islennoe wyravenie>)
                /<identifikator simwolxnoj stroki>=/
                MKS$(<~islowoe wyravenie odinarnoj to~nosti>)
                /<identifikator simwolxnoj stroki>=/
                MKD$(<~islowoe wyravenie dwojnoj to~nosti>)
     identifikato simwolxno strok dolve byt opisa  kakoj-lib 
instrukcii FIELD (smotri punkt 15.11.).
     dl funkci trebuets zapisat ~islowy zna~eni  upakowanno format 
ka simwolxny strok  kakoj-lib nabo danny prqmog dostupa pr |to 
MKI formirue simwolxnu strok dlino 2 MKS simwolxnu strok dlino 4 
 MKD simwolxnu strok dlino 8 perepisanny  tako wid ~islowy 
zna~eni movn perepisat  pomo}x instrukci LSE il RSEԠ  kakoj-lib 
bufer dannyh.

primer:        120 RSET ALTER$=MKI$(ALTER%)

.CP15
16.5. funkciq CVI, CVS i CVD

     funkci preobrazu` "~islowye simwolxny strok dlino  bajta  
bajt   baj  ~islowy zna~eni sootwetstwenn tip INTEGEҠ il REA 
odinarnoj to~nosti ili REAL dwojnoj to~nosti.
format:   /<INTEGER-peremennaq>=/
          CVI(<"~islowaq" simwolxnaq stroka dlinoj 2 bajta)
          /INTEGER-peremennaq=/
          CVS(<"~islowaq" simwolxnaq stroka dlinoj 4 bajta>)
          /<INTEGER-peremennaq>=/
          CVD(<"~islowaq" simwolxnaq stroka dlinoj 8 bajt>)
     identifikator simwolxny stro dolvn byt wweden  pomo}x kakoj-
libo instrukcii FIELD (smotri punkt 15.11.).
     funkci ime` ti "INTEGER il "REA odinarno to~nosti il REA 
dwojnoj to~nosti".

primer:        80 FIELD 1,2 AS Z$, 30 AS  B$
               85 GET 1
               90 A%=CVI(Z$)


.PA
17. rabota s simwolxnymi strokami na qzyke bejsik.

     pomim matamati~eski (~islowyh funkci  qzyk bejsi imeets cely 
rq instrukci  funkcij kotory movn ispolxzowat dl obrabotk  
pererabotki simwolxnyh strok.



17.1. funkciq CHR$.

     funkci CH preobrazue zna~eni kakogo-lib celo~islennog wyraveni  
sootwetstwu`}ie simwoly ASCII.
format:   /<peremennaq tipa simwolxnoj stroki>=/ CHR$(<argument>)
     <argument move byt cely wyraveniem celo peremenno il celo 
konstantoj. on movet prinimatx zna~eniq mevdu 0 i 127 wkl`~itelxno.
     funkciq imeet tip "simwolxnaq stroka".

primer:        10 PRINT CHR(65)
               RUN
               A
               OK


.CP15
17.2. funkciq ASC

     funkci AS postawlqe desqti~no zna~enie sootwetstwu`}e kod ASCI 
perwogo simwola peredawaemogo wyraveniq iz simwolxnyh strok.
format:   /<INTEGER-peremennaq>=/ASC (<argument>)
     <argument move byt wyravenie i simwolxny strok peremenno tip 
simwolxnoj stroki ili konstantoj tipa simwolxnoj stroki.

primer:        10 a="BASIC"
               20 PRINT ASC(A$)
               RUN
               66
               OK


.CP15
17.3. funkciq STR$.

     funkci STR preobrazue zna~eni kakogo-lib ~islowog wyraveni  
simwolxnu` stroku.
format:   /<peremennaq tipa simwolxnoj stroki>=/ STR$(<argument>)
     <argument move byt ~islowy wyraveniem kotoro move prinimat 
kavdyj iz dopustimyh ~islowyh tipow.
funkciq imeet tip "simwolxnaq stroka".
primer:        40 a%=40
               50 PRINT STR$(A%);A%
               RUN
               40  40
               OK

.CP15
17.4.  funkciq VAL

     funkci VA̠ postawlqe ~islowo zna~eni kakogo-lib predstawleni 
~islowogo zna~eniq w wide simwolxnoj stroki.
     format:   /<~islowaq peremennaq>=/ VAL(<argument>)
     <argument  move byt wyravenie i simwolxny strok peremenno tip 
simwolxno strok il konstanto tip simwolxno stroki esl argumen 
predstawlqe sobo predstawleni ~islowog wyraveni  wid simwolxno 
stroki t proishodi preobrazowani  ~islowo predstawleni  ma{inno 
formate esl <argument n qwlqets predstawlenie ~islowog zna~eni  
wide simwolxnoj stroki, to funkciq prinimaet nulewoe zna~enie.
     funkciq imeet ~islowoj tip.
     primer:   30 PRINT VAL("-3.4")
               RUN
               -3.4
               OK
               10 PRINT VAL("ABC")
               RUN
               0
               OK


17.5.  funkciq  HEX$

     funkci񠠠 HEX preobrazue kakoe-lib desqti~no堠 zna~eni堠  
{estnadcateri~noe ~islo i peredaet ego w wide simwolxnoj stroki.
     format: /<peremennaq tipa simwolxnoj stroki>=/ HEX$(<argument>)
     <argument move byt cely wyraveniem,celo peremenno il celo 
konstantoj.
     funkciq imeet tip "simwolxnaq stroka".
primer:        30 X%=62
               40 PRINT HEX$(X%)
               RUN
               3E
               OK


.CP15
17.6. funkciq OCT$.

     funkci OCT preobrazue kakoe-lib desqti~no ~isl  wosxmeri~no 
~islo i peredaet ego w wide simwolxnoj stroki.
format:  /<peremennaq w wide simwolxnoj stroki>=OCT$(<argument>).
     <argument move byt cely wyraveniem celo peremenno il celo 
konstantoj.
     funkciq imeet tip "simwolxnaq stroka".

primer:        50 PRINT OCT$(40)
               RUN
               50
               OK


.CP15
17.7. funkciq RIGHT$.

     funkci RIGHT formirue podstrojk i simwolo kakoj-lib simwolxno 
stroki, na~inaq sprawa.
format:   /<peremennaq tipa simwolxnoj stroki>=/RIGHT$
          (<argument>,<koli~estwo>).
     <argument move byt wyravenie i simwolxny strok peremenno tip 
simwloxnoj stroki ili konstantoj tipa simwolxnoj stroki.
     <koli~estwo simwolo zna~eni <argument> na~ina sprawa obrazu` 
nowu simwolxnu stroku <koli~estwo move byt cely wyraveniem celo 
peremenno il celo konstantoj eg zna~eni dolvn levat mevd   25 
wkl`~itelxno.
     funkciq imeet tip "simwolxnaq stroka".

primer:        10 A$="STRING"
               20 Z$=RIGHT$(A$,3)
               30 PRINT Z$
               RUN
               ING
               OK


.CP15
17.8. funkciq LEFT$.

     funkci LEFT formirue podstrok i simwolo kakoj-lib simwolxno 
stroki, na~inaq slewa.
format:    /<peremennaq tipa simwolxnoj stroki>=/
           LEFT$(<argument>,<koli~estwo>).
     <argument move byt wyravenie i simwolxny strok peremenno tip 
simwolxnoj stroki ili konstantoj tipa simwolxnoj stroki.
     perwy simwol <koli~estwo zna~eni <argument> na~ina slewa 
sostawlq` perwu stroku <koli~estwo move byt cely wyraveniem celo 
peremenno il celo konstantoj eg zna~eni dolvn levat mevd   25 
wkl`~itelxno.
     funkciq imeet tip "simwolxnaq stroka".

primer:        10 A$="STRING"
               20 Z$=LEFT$(A$,3)
               30 PRINT Z$
               RUN
               STR
               OK


.CP15
17.9. funkciq SPACE$.

     funkci SPACE pozwolqe sformirowat kaku`-lib simwolxnu stroku 
sostoq}u` iz probelow.
format:    /<peremennaq tipa simwolxnoj stroki">=/
           SPACE$(<argument>).
     <argument move byt cely wyraveniem celo peremenno il celo 
konstantoj, kotoryj movet prinimatx zna~eniq mevdu 0 i 255 wkl`~itelxno.
     funkciq imeet tip "simwolxnaq stroka".
.CP10
primer:        10 FOR I%=1 TO 4
               20 Z$=SPACE$(I%)
               30 PRINT Z$;I%
               40 NEXT
               RUN
                1
                 2
                  3
                   4
               OK


.CP15
17.10. funkciq STRING$.

     funkci STRING formirue strok i kakogo-lib predwaritelxn 
zadannogo simwola, kotoryj dobawlqetsq raz.
format:    /<peremennaq tipa simwolxnoj stroki>=/
           STRING$(<koli~estwo>, <simwol>).
     razmnovaemy <simwol move byt zada lib ka ~islowo zna~eni  
kod ASCII lib ka simwol kodowo zna~eni move byt opisan ka 
~islowo wyravenie ~islowa peremenna il ~islowa konstanta pri~e 
zna~eni dolvn levat mevd   12 wkl`~itelxno <simwol qwlqets perwy 
simwolom zna~eniq simwolxnoj stroki ili konstanty tipa simwolxnoj stroki.
     paramet <koli~estwo ukazywae koli~estw powtoreni simwolo  
formiruemo simwolxno stroke <koli~estwo move byt cely wyraveniem 
celo peremenno il celo konstantoj eg zna~eni move levat mevd   
255 wkl`~itelxno.
     funkciq imeet tip "simwolxnaq stroka".

primer:        10 G$=STRING$(10,42)
               20 PRINT G$ 
               RUN
               **********
               OK


.CP15
17.11. funkciq INSTR.

     funkci INST osu}estwlqe pois  kakoj-lib predwaritelxn zadanno 
simwolxno strok drugu zadannu simwolxnu strok  opredelqet  kako 
pozici wtora simwolxna strok sodervits  ka~estw podstrojk  perwo 
simwolxnoj stroke.
format:   /<INTEGER-peremennaq>=/ INSTR(<startowaq poziciq>,
          <argument>,<poiskowoe wyravenie>)
     paramet <startowa poziciq zadae nome perwog simwol  <argument> 
na~ina  kotorog na~inaets pois poiskog wyraveniq <startowa poziciq 
move byt cely wyraveniem<celo peremenno il celo konstantoj e 
zna~eni dolvn levat mevd   25 wkl`~itelxno esl |to paramet n 
zadan, to poisk na~inaetsq s perwogo simwola.
     paramet <argument  <poiskowo wyravenie mogu byt wyravenie i 
simwolxny strok peremenno tip simwolxno strok il konstanto tip 
simwolxnoj stroki.
     funkci prinimae zna~eni 0 esl poiskowo wyraveni n byl najdeno 
 protiwno slu~a peredaets nome perwog simwol <poiskowog wyraveniq  
<argumente>.
     funkciq imeet tip INTEGER.
.CP10
primer:        50 A$="MATHEMATIK"
               60 B$="MA"
               70 PRINT INSTR(A$,B$)
               80 PRINT INSTR(3,A$,B$)
               RUN
                1
                6
               OK


.CP15
17.12. funkciq MID$ dlq formirowaniq podstrok simwolow.

     funkci MID wybirae podstrok simwolo i kakoj-lib simwolxno 
stroki.
format:   /<peremennaq tipa simwolxnoj stroki>=/
          MID$(<argument>,<poziciq>,<dlina>).
i<argument move byt wyravenie i simwolxny strok peremenno tip 
simwolxno strok il konstanto tip simwolxno stroki i eg zna~eni 
wybiraetsq podstroka simwolow.
     zna~eni <poziciq opredelqe simwo  <argumente> na~ina  kotorog 
dolvn formirowatxs stroka danno zna~eni dolvn levat mevd   25 
wkl`~itelxno.
     paramet <dlina opredelqe dlin wybiraemo podstrojk simwolow o 
takv dolve levat mevd   25 wkl`~itelxno esl |to paramet n zadan 
t  podstrok simwolo perenosqts ws simwol d konc simwolxno strok 
<argument>.
     parametr <poziciq  <dlina mogu byt celym wyraveniqmi celym 
peremennymi ili celymi konstantami.
     funkciq imeet tip "simwolxnaq stroka".

prime~anie:
     esl  simwolxno strok <argument spraw o ukazannog parametro 
<poziciq menx{ simwolow ~e opredelen parametro <dlina il paramet 
<dlina n zadan t  podstrojk simwolo perenosqts ws simwoly esl 
ukazanno parametro <poziciq mest nahodits wn zadanno simwolxno 
stroki, to formiruetsq pustaq simwolxnaq stroka.

primer:        10 P$=MID$("simwolxnaq stroka",8,4)
               20 PRINT P$
               30 P$=MID$("simwolxnaq stroka",8)
               40 PRINT P$
               50 P$=MID$("simwolxnaq stroka",13)
               60 PRINT "<";P$;">"
               RUN
               KETT
               KETTE
               OK


.CP15
17.13. instrukciq MID$ dlq zame}eniq podstrok simwolow w simwolxnoj stroke.

     funkciq operiru`}a  simwolxnym strokami MID ispolxzuets  lewo 
storon operetor priswaiwaniq pozwolqe razme}at kaku`-lib simwolxnu 
strok  l`bo drugo simwolxno stroke na~ina  predwaritelxn zadanno 
pozicii simwola.
format:   MID$(<simwolxnaq stroka 1>,<poziciq>/,<dlina>/)=
          <simwolxnaq stroka 2>
     <simwolxna strok 1 move byt peremenno tip simwolxno strok il 
konstanto tip simwolxno stroki  ne proizwodits zamen simwolo 
simwolam <simwolxno strok 2> na~ina  <pozicii> pr |to paramet 
<dlina> opredelqet maksimalxnoe koli~estwo zamenqemyh simwolow.
     parametr <poziciq  <dlina mogu byt celym wyraveniqmi celym 
peremennymi ili celymi konstantami, ih zna~eniq mogut levatx mevdu 1 i 255.
     esl zada paramet <dlina> t zanosits stolxk simwolo <simwolxno 
strok 2> skolxk pozwolqe dlin simwolxno strok 1 esl <simwolxna 
strok 2 sodervi stolxk simwolow  protiwno slu~a tolxk stolxk 
simwolow skolxk pozwolqe <simwolxna strok 2> esl zada paramet 
<poziciq> t leva}i wn <simwolxno strok 1> t proishodi soob}eni o 
o{ibke.
prime~anie:
     maksimmalxn zame}a`ts stolxk simwolow ~tob n izmenqlas dlin 
<simwolxnoj stroki 1>.

primer:        10 SI="DAS IST ELNE ZEICHENKETTE"
               20 MID$(SI$,9,4)="LENE"
               30 PRINT SI$
               RUN
               DAS IST LENE ZEICHENKETTE
               OK


.CP15
17.14. funkciq LEN.

     funkci LEΠ ukazywae dlinu t.e koli~estw simwolo kakoj-lib 
simwolxnoj stroki.
format:   /<INTEGER-peremennaq>/ LEN(<argument>)
     <argument move byt l`by wyravenie i simwolxny strok peremenno 
tipa simwolxnoj stroki ili konstantoj tipa simwolxnoj stroki.
     funkciq imeet tip INTEGER.

primer:        30 A="BASIC"
               40 PRINT LEN(A$)
               RUN
               5
               OK


.CP15
18.  standartnye ~islowye funkcii w qzyke bejsik.

     ob}ij format |tih funkcij imeet wid:
     [<~islowaq peremennaq>=]<kl`~ewoe slowo>(<argument>)
      ka~estw <argumenta move zadawatxs wyravenie peremenna il 
konstanta  ob}e slu~a funkci ukazywaets spraw o znak priswoeniq 
il on qwlqets sostawno ~astx wyraveni il on sodervits  spisk 
operatoro wywoda esl <argument funkci dolve imet cely tip  
zadaets <argument we}estwennog tipa t pere obrabotko proizwodits 
okruglenie.
     pr頠 ispolxzowani頠 funkciꠠ  uslowiq蠠 bejsik-interpretatora 
wozwra}aemye zna~eniq ime`t celyj tip ili we}estwennyj oby~noj to~nosti.


.CP15
18.1. funkciq  ABS

     funkci ABӠ wozwra}ae absol`tnu weli~in zadannog ~islowog 
argumenta.
format:  [<~islowaq peremennaq>=] ABS (<argument>)
     <argument move byt ~islowym wyraveniem, ~islowoj peremennoj  
~islowoj konstantoj, ime`}ej ti celyj we}estwenny oby~no to~nost  
we}estwennyj udwoennoj to~nosti.
     zna~enie funkcii imeet tip celyj ili we}estwennyj oby~noj to~nosti.

primer:        10 PRINT ABS(8*(-3))
               RUN
               24
               OK


.CP15
18.2. funkciq FIX
     
     funkci FIؠ opredelqe celu ~ast zna~eniq zadannog ~islowog 
argumenta oby~noj to~nosti.
     format:   [<celaq peremennaq>=] FIX (<argument>)
     <argument move byt ~islowym wyraveniem, ~islowoj peremennoj il 
~islowoj konstantoj, prinima`}ej zna~eniq oby~noj to~nosti.
     zna~enie funkcii imeet celyj tip.

prime~anie:
     funkciq realizuet wy~islenie wyraveniq
               SGN(X)*TNT(ABS(X))

primer:        10 A!=-57.85: B!=5: C!=-5.8
               20 PRINT FIX(A!);FIX(B!);FIX(C!)
               RUN
               -57  5  -5
               OK

.CP15
18.3.  funkciq INT

     funkciq INT wypolnqet (matemati~eskoe) okruglenie.
format:   [<celaq peremennaq>=] INT (<argument>)
     <argument move byt ~islowym wyraveniem ~islowoj peremennoj il 
~islowoj konstantoj, prinima`}ej zna~eniq oby~noj to~nosti.
     zna~enie funkcii imeet celyj tip.

primer:        10 Z!=88.88
               20 PRINT INT(Z!)
               30 PRINT INT(-Z!)
               RUN
                88
               -89
               OK


.CP15
18.4. funkciq SGN

     funkci SGΠ opredelqe zna weli~in zadannog ~islowog wyraveni 
oby~noj to~nosti.
format:  [<celaq peremennaq>=] SGN (<argument>)
     <argument move byt ~islowym wyraveniem, ~islowoj peremennoj il 
~islowoj konstantoj, prinima`}ej zna~eniq oby~noj to~nosti.
     zna~enie funkcii imeet celyj tip i prinimaet sledu`}ie zna~eniq:
          =+1, esli weli~ina argumenta bolx{e nulq;
          = 0, esli weli~ina argumenta rawna nul`;
          =-1, esli weli~ina argumenta menx{e nulq.

primer:        10 INPUT "EINGABEWERT";X%
               20 ON SGN(X)+2 GOTO 40,60,80
               30 GOTO 100
               40 PRINT "EINGABEWERT NEGATIV"
               50 GOTO 10
               60 PRINT "EINGABEWERT NULL"
               70 GOTO10
               80 PRINT "EINGABEWERT POSITIV"
               90 GOTO 10
               100 END


.C15
18.5. funkciq SQR

     funkci SQҠ opredelqe zna~eni kwadratnog korn i zadannog 
~islowog wyraveni oby~no to~nosti.
format:    [<~islowa peremennaq>= SQ(<argument>)     
     <argument move byt ~islowoj peremennoj ~islowym wyravenim il 
~islowoj konstantoj. weli~ina argumenta ne movet bytx otricatelxnoj.
     zna~enie funkcii imeet tip we}estwennyj oby~noj to~nosti.

primer:        10 FOR I%=1 TO 5
               20 PRINT I%, SQR(I%)
               30 NEXT
               RUN
                1    1
                2    1.41421
                3    1.73205
                4    2
.CP15           5    2.23607
18.6.  funkciq EXP

     funkci EX opredelqe zna~eni |ksponencialxno funkci o zadannog 
~islowogo wyraveniq oby~noj to~nosti.
format:   [<~islowaq peremennaq>=] EXP (<argument>)
     <argument move byt ~islowym wyraveniem ~islowoj peremennoj il 
~islowoj konstantoj. zna~eni argument n move byt bolx{ weli~in 
87.3365.
     zna~enie funkcii imeet tip we}estwennyj oby~noj to~nosti.

primer:        10 Z!=10
               20 PRINT EXP(Z!-7)
               RUN
                 20.0855
               OK

prime~anie:
     esl naibolx{e dopustimo zna~eni argument bude prewy{eno t 
wydaets  soob}eni o o{ibk OVERFLO (perepolnenie) funkci prinimae 
zna~enie rawno naibolx{em predstawimom ~isl  prawilxny znakom 
wypolnenie programmy prodolvaetsq. 


.CP15
18.7. funkciq LOG

     funkci LO wy~islqe naturalxny logarif weli~in zadannog ~islowog 
wyraveniq oby~noj to~nosti.
format:   [<~islowaq peremennaq>=] LOG (<argument>)
     <argument move byt ~islowy wyraveniem ~islowo konstanto il 
~islowoj peremennoj.
     zna~enie funkcii imeet tip we}estwennyj oby~noj to~nosti.

primer:        10 A!=77
               20 B!=8
               30 PRINT LOG(A!/B!)
               RUN
                2.26436
               OK                     


.CP15
18.8. funkciq SIN

     funkci SI opredelqe zna~eni sinus zadannog ~islowog wyraveni 
oby~noj to~nosti.
format: [<~islowaq peremennaq>=] SIN (<argument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowoj konstantoj, zadannoj w radianah.
     zna~enie funkcii imeet tip we}estwennyj oby~noj to~nosti.

primer:        10 A!=0.9
               20 B!=0.7
               30 PRINT SIN(A!+B!)
               RUN
                   .999574
               OK


.CP15
18.9. funkciq COS

     funkci CO opredelqe zna~eni kosinus zadannog ~islowog wyraveni 
oby~noj to~nosti.
format:  {<~islowaq peremennaq>=] COS(<argument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowoj konstantoj, zadannoj w radianah.
     zna~enie funkcii imeet wid we}estwennoj oby~noj to~nosti.

primer:        10 X!=2*COS(4)
               20 PRINT X!
               RUN
                 -1.30729


.CP15
18.10.  funkciq TAN

     funkci TA opredelqe zna~eni tangens zadannog ~islowog wyraveni 
oby~noj to~nosti.
format:  [<~islowaq peremennaq>=] TAN (<argument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowoj konstantoj, zadannoj w radianah.
     zna~enie funkcii imeet tip we}estwennyj oby~noj to~nosti.

primer:        10 A!=1.9
               20 PRINT TAN(A!/2)
               RUN
                 1.39838
               OK


.CP15
18.11. funkciq ATN

     funkci ATΠ wozwra}ae zna~eni arktangens zadannog ~islowog 
wyraveniq w interwale ot -PI/2 do PI/2 (glawnoe zna~enie).
format:   [<~islowaq peremennaq>=] ATN (<argument>)
     <argument move byt ~islowy wyraveniem ~islowo peremenno il 
~islowoj konstantoj tipa we}estwennyj oby~noj to~nosti.
     zna~enie funkcii imeet tip we}estwennyj oby~noj to~nosti.

primer:        10 X!=3
               20 PRINT ATN(X!)
               RUN
                 1.24905
               OK


.CP15
18.12. funkciq RND

     funkciq RND wozwra}aet psewdoslu~ajnoe ~islo w interwale ot 0 do 1.
format:  [<~islowaq peremennaq>=] RND (<argument>).
     ime`}ijs  bejsik-interpretator generato psewdoslu~ajny ~ise move 
byt ispolxzowa  pomo}x funkci RND wozmovnost dostup  nem 
uprawlq`ts  pomo}x parametr <argument> argumento move byt ~islowo 
wyravenie ~islowa peremenna il ~islowa konstanta prinima`}a 
we}estwenny zna~eni oby~no to~nosti esl argumen zadae weli~in 
menx{u nulq t generato psewdoslu~ajny ~ise inicializiruetsq esl 
argumen zadae weli~inu rawnu nul` t zna~enie funkci qwlqets 
predydu}e psewdoslu~ajno ~islo esl argumen zadae weli~inu bolx{u 
nulq, to wydaetsq sledu`}ee psewdoslu~ajnoe ~islo.

primer:        10 FOR I%=1 TO 3
               20 PRINT RND(I%);                  'argument > 0
               30 NEXT
               40 PRINT: PRINT
               50 X!=RND(-6)                      'argument < 0
               60 FOR I%=1 TO 3
               70 PRINT RND(I%);                  'argument > 0
               80 NEXT
               90 PRINT: PRINT
               100 RANDOMIZE 888                  'RANDOMIZE
               110 X!=RND(-6)                     'argument < 0
               120 FOR I%=1 TO 3
               13 PRIN RND              'to v |ffekt,ka pr arg  0
               140 NEXT
               150 PRINT: PRINT
               160 FOR I%=1 TO 3
               170 PRINT INT(RND(0)*100)
               180 NEXT
               RUN
                 .245121    .305003    .311866
                 .709808    .658938    .639327
                 .709808    .658938    .639327
                 63         63         63
               OK
            

.CP15
18.13 operato RANDOMIZ dl opredeleni startowog zna~eni generator 
        slu~ajnyh ~isel

      qzyk bejsi imeets  rasporqveni generato slu~ajny ~isel 
operato RANDOMIZ opredelqe slu~ajnu startowu to~k posledowatelxnost 
psewdoslu~ajnyh ~isel.
format:  RANDOMIZE (<argument>)
     argumento move byt ~islowo wyravenie ~islowa peremenna il 
~islowa񠠠 konstantᠠ celog tipa opredelq`}a startowuࠠ to~k 
posledowatelxnost psewdoslu~ajny ~isel dopustim l`by ~isl  diapazon 
o -3276 d 32767 esl argumen n  zadan t programm wydae soob}eni 
"RANDO NUMBE SEE (zadajt proizwolxno ~islo (-3276 t (do 32767)?  
ovidae wwod startowo to~ki te samym pr kavdo wypolneni programm 
mogut bytx ispolxzowany velaemye startowye to~ki.
.CP8
primer:        10 RANDOMIZE 3
               20 FOR I%=1 TO 3
               30 PRINT RND;
               40 NEXT
               RUN
                 0.88598  0.484668  0.586328  0.119426  0.709225
               OK

prime~anie:
     esli naprimer dolvn byt polu~en slu~ajny ~isl  interwal o  
d 1 t |t wozmovn wypolnit  sootwetstwi  operatoro 17 i primer  
predydu}em punkte.



.PA
19. prostye uprawlq`}ie operatory i funkcii w qzyke bejsik

19.1. operator LET dlq obozna~eniq operatorow priswoeniq

     s pomo}x` LET mogut bytx specialxno wydeleny operatory priswoeniq.
format:  [LET] <identifikator peremennoj>=<wyravenie>
     operator LET w ob}em slu~ae movet otsutstwowatx.

primer:   obe sledu`}ie programmnye stroki wypolnq`t odno i to ve:

               10 LET Z!=Z!%+Z!
            i
               10 Z!=Z!%+Z!

prime~anie:
     programmy napisanny n stary wersiq bejsika obqzatelxn soderva 
operator LET. |ti programmy mogut ispolxzowatxsq bez izmenenij.

.CP15
19.2. operator REM

     format:  REM <kommentarij>
              ili
                ' <kommentarij>
     kommentari  programm mogu razme}atxs  l`bo mest堠 wnutr 
programm n bejsike kommentari n okazywa` wliqni n wypolneni 
programmy n wyda`ts wmest  tekstom n mest kl`~ewog slow RE move 
takv ispolxzowatxs apostro "'" nome stro  operatora GOTO sootw 
GOSUB, mogut takve ukazywatx na stroki kommentariew.

primer:        100 GOSUB 150
                    . . .
               150 REM podprogramma 1
                    . . .
               180 RETURN  'konec p/p 1
                    . . .
               210 H3!=25*A!/B !:   ZZ#=H3!*ZZ#:  REM  ko|fficient

prime~anie: bejsik-kompilqtorom kommentarii obhodqtsq.


.CP15
19.3.  operator END dlq okon~aniq bejsik-programmy

     po operatoru END proizwoditsq zawer{enie bejsik-programmy.
format:  END
     pr dostiveni operator EN zakrywa`ts ws otkryty fajly o~i}a`ts 
oblast bufero  ustanawliwa`ts  ishodno sostoqni rabo~i oblast 
bejsik-interpretatora interpretato perehodi  sostoqni wwod koman  
ovidae sledu`}e komandy esl  bejsik-programm operato EN otsutstwuet 
t standartn ishodq i togo ~t operato EN nahodits posl posledne 
programmnoj stroki. operator END movet nahoditxsq w l`bom meste programmy.
     ukazanie:
     pr ispolxzowani bejsik-kompilqtora p dostiveni |tog operator 
zakrywa`ts ws fajl  sledue wozwra  operacionnu sistemu esl 
operator EN net t kompilqto prinimaet ~t o nahodits posl posledne 
programmnoj stroki.


.CP15
19.4. operator STOP dlq wyzowa programmnogo prerywaniq

     operator STOP prerywaet wypolnenie programmy.
format:   STOP
     operato wyzywae wyda~ soob}eni "BREA I (prerywani w <nome 
stroki>" teku}e sostoqni obrabotk  programm sohranqetsq li{ 
interpretato perehodi  sostoqni koman  ovidae wwodᠠ komandy 
wypolneni programm move byt prodolven  pomo}x komand CON (sm punk 
5.5.) so stroki programmy, neposredstwenno sledu`}ej za operatorom STOP.

primer:        10 FOR I%=0 TO 4
               20 FOR J%=1 TO 2
               30 PRINT I%+J%
               40 NEXT
               50 STOP
               60 NEXT
               RUN
                 1  2
               BREAK IN 50
               OK
               CONT
                 2  3
               BREAK IN 50
               OK

ukazanie:
     pr頠 ispolxzowani bejsik-kompilqtor operato STOР sootwetstwue 
operator END odnak pr wozwrat  operacionnu sistem wydaets soob}eni 
 {estnadcateri~no adrese gd wypolnqets operato STOP esl 
zadejstwowany opcii /D, /X ili /E, to dopolnitelxno soob}aetsq nomer stroki.


.CP15
19.5. funkciq FRE

     funkci FRŠ soob}ae  koli~estw dostupnog mest  pamqt dl 
peremennyh i programmy.
format:  FRE (O)
      ili
         FRE (X$)         
     pr ispolxzowani perwog format funkci wozwra}ae zna~eni ob'em 
pamqti dostupno dl ~islowy peremenny  programmy  t wremq ka pr 
ispolxzowani wtorog format wozwra}aets zna~eni ob'em pamqti dostupno 
dlq strokowyh peremennyh.

primer:        350 PRINT FRE(O); FRE (A$)

prime~anie:
     esl funkci wyzywaets  ispolxzowanie  ka~estw argument pusto 
strok (t.e FRŠ ( ")) podobny wyzo obespe~iwae pere opredelenie 
swobodnog ob'em oz wypolneni ta nazywaemog "sbor musora" ~t 
ozna~ae reorganizaci oblast dl zapominani strokowy zna~eniꠠ  
oswobovdeni neispolxzuemog bole mest  pamqti podobna reorganizaci 
oby~n proizwodits li{ pr perepolneni oblast pamqt dl stro (ta 
nazywaemog neuporqdo~ennog massiwa  move dlitxs d polutor minut pr 
wyzow FRŠ ( " reorganizaci proizwodits ranx{  proishodi po|tom 
zna~itelxno bystree.