Basic abc-doar


LET y=INT(RND*300):MOVE 1,y



Yüklə 1,91 Mb.
səhifə12/20
tarix06.08.2018
ölçüsü1,91 Mb.
#67460
1   ...   8   9   10   11   12   13   14   15   ...   20

40 LET y=INT(RND*300):MOVE 1,y

50 FOR f=1 TO 640

60 MOVE f,y:PRINT a$:FRAME:NEXT f

70 GOTO 40

-expresii asociate;

TAGOFF
TAGOFF -comanda

-Anuleaza comanda TAG care se identifica prin acelasi numar de

canal ca si TAGOFF.Daca nu se specifica se considera implicit 0

si anuleaza comanda TAG#0.

-forma TAGOFF(#numar de canal)

-exemplu 10 MODE 2:TAG:REM-text cu coordonate grafice

20 LET anul=2001:FOR x=1 TO 640 STEP 60

30 MOVE x,400:DRAWR 0,-350

40 LET anul=anul+1:PRINT anul;:NEXT x

50 TAGOFF:REM-revenire la coordonate text

60 LOCATE 28,25:PRINT "cifre anuale"

70 GOTO 70

-expresii asociate;

TAG
TAN -functie

-Calculeaza tangenta expresiei numerice exprimata in grade sau

in radiani (prin functiile DEG si RAD)(intre -200000 si 200000)

-forma TAN(expresie numerica)

-exemple PRINT TAN(45)

10 RAD:FOR x=1 TO 100 10 DEG:FOR x=1 TO 100

20 PRINT TAN(x) 20 PRINT TAN(x)

30 NEXT x 30 NEXT x
-expresii asociate;

ATN,COS,DEG,RAD,SIN
-85-

TEST -functie

-Fixeaza cursorul grafic la pozitia definita prin x si y si

indica valoarea parametrului cerneala in acest loc.

-forma TEST(coordonata x),(coordonata y)

-exemple PRINT TEST(20,40)

sau 10 PAPER 2:PEN 4

20 PRINT TEST (20,40)

sau 10 FOR x=1 TO 12

20 PAPER x:PEN x+2

30 PRINT TEST(100,100)

40 NEXT x

-expresii asociate;

MOVE,MOVER,TESTR,XPOS,YPOS
TESTR -functie

-Fixeaza cursorul intr-un punct situat la coordonatele x,y de

pozitia initiala si citeste valoarea culorii in acel punct.

-forma TESTR(deplasare x),(deplasare y)

-exemple 10 MODE 0:FOR x=1 TO 15:LOCATE 1,x

20 PEN x:PRINT STRING$(10,143);:NEXT x

30 MOVE 200,400:PEN 1

40 FOR n=1 TO 15:LOCATE 11,n

50 PRINT "stilou";TESTR(0,-15):NEXT n

-expresii asociate;

MOVE,MOVER,TEST,XPOS,YPOS
THEN -operand al functiei IF

-vezi IF...THEN
TIME -functie

-Indica timpul scurs de la punerea sub tensiune a calculatorului

sau de la ultima comanda RESET.Pentru fiecare secunda corespund

300 de unitati.Pentru a afla timpul scurs in secunde se va soli-

cita TIME/300 iar pentru timpul scurs in minute se va solicita

TIME/18000.

-forma TIME

-exemple 10 PRINT TIME;"=Timpul absolut"

20 PRINT TIME/300;"=Timpul in secunde"

30 PRINT TIME/18000;"=Timpul in minute"
10 PRINT INT(TIME/18000)

20 IF INT(TIME/18000)>60 GOTO 40

30 END

40 PRINT "Este timpul sa faceti o pauza de 15 minute"
-expresii asociate;

AFTER,EVERY,WEND,WHILE

TO -delimitator al comenzii FOR...NEXT

-Delimiteaza domeniul de valori pentru operatiile definite prin co-

manda FOR...NEXT(valoarea maxima)

-vezi FOR...NEXT

-86-

TRON... -comanda

TROFF -Permite urmarirea executiei unui program prin afisarea

fiecarui numar de linie aflat in executie intre paranteze.

Se utilizeaza pentru depistarea si corectarea erorilor de

conceptie (sintaxa este corecta,operatiile sint executabile

dar rezultatul final este eronat),Se urmareste executia fiecarei

liniii si se corecteaza parametrii sau functia gresita.

Prin TRON se initiaza aceasta functie iar prin TROFF se

restabileste modul normal de executie.

-forma TRON respectiv TROFF

-exemple 10 TROFF:PRINT "TROFF"

20 FOR n=1 TO 8

30 PRINT "Linie test"

40 IF f=1 THEN END

50 TRON:PRINT "TRON"

60 LET f=1:GOTO 20

sau 10 LET x=INT(RND*300)

20 LET y=INT(RND*400)

30 DRAW x,y,14

40 FOR w=1 TO 1000:NEXT w

50 TRON:CLS

60 GOTO 10

-expresii asociate;nu sint
UNT -comanda

-Transforma un numar de adresa scrisa in cod hexazecimal intr-un

numar intreg scris zecimal cu valori cuprinse intre -32768 si

+32768

-forma UNT(linie de adresa)

-exemple PRINT UNT(&FF66)

PRINT UNT(&0FFF)

PRINT UNT(&68)

PRINT UNT(&FF00)

-Observatie;a se verifica valorile in tabelul de corespondenta

a codurilor ASCII,HEXA si zecimal

-expresii asociate;

CINT,FIX,INT,ROUND
UPPER$ -functie

-Recopiaza sirul de caractere alfanumerice indicat inlocuind cu

majuscule caracterele alfabetice de la A la Z atunci cind apar

cu litera mica.

-forma UPPER$(sir de caractere alfanumerice)

-exemple 10 LET a$="abc***ad***CCC***ff"

20 PRINT UPPER$(a$)
sau 10 LET a$="abcdefghijklmnoprstuvzx"

20 PRINT UPPER$(a$)
sau 10 LET a$="buna "

20 LET b$="ziua"

30 PRINT UPPER$(a$+b$)

-expresii asociate;

LOWER$

-87-

USING -operator al comenzii PRINT USING

-vezi PRINT USING
VAL -functie

-Afiseaza valoarea numerica inclusiv semnul negativ sau

punctul zecimal al primelor cifre dintr-un sir alfa numeric

pina la prima litera.Daca sirul incepe cu o litera va returna

implicit valoarea 0.Daca primul caracter este un caracter grafic

apare mesaj de eroare.

-forma VAL(sir de caractere)

-exemple 10 LET a$="99CJ1004"

20 PRINT VAL(a$)

sau 10 LET a$="-.25 VALOARE TOTALA"

20 PRINT VAL(a$)

-expresii asociate;

STR$
VPOS -functie

-Indica pozitia pe axa verticala a cursorului de text,pornind

de la marginea superioara a ferestrei de text.Parametrul(numar

de canal) este obligatoriu (in lipsa se considera implicit 0)

-forma VPOS#(numar de canal)

-exemple 10 MODE 1:BORDER 0:LOCATE 8,2

20 PRINT "Utilizati tastele sageti sus/jos"

30 WINDOW 39,39,1,25:CURSOR 1,1

40 LOCATE 1,13

50 IF INKEY (0)<>-1 THEN PRINT CHR$(11)

60 IF INKEY (2)<> -1 THEN PRINT CHR$(10)

70 LOCATE #1,3,24

80 PRINT #1,"cursor text";

90 PRINT #1,"pozitie verticala=";

100 PRINT #1,VPOS(#0):GOTO 50

-expresii asociate;

POS,WINDOW
WAIT -comanda

-Determina aparitia unui semnal la unul dintre porturile de

intrare iesire.Semnalul acceptat poate avea o valoare de la 0

la 255 si dupa operatiile de XOR,AND si cu parametrul de inver-

siune,rezultatul final trebuie sa fie diferit de 0.Aparitia

unui semnal lanseaza de obicei un program sau un subprogram.

La aceasta comanda programul asteapta pina cind conditia este

indeplinita (program pe linie de asteptare).Se va utiliza cu

prudenta si numai cu scop precis (semnale si mesaje sau actio-

nari si automatizari).

-forma WAIT (numar de port),(masca),(inversiune)

-exemplu WAIT FF34,20,25

-Observatie;pentru placile cu mai multe intrari si iesiri para-

lele este posibil ca mai multe porturi sa fie conectate si

semnalul de actionare sa fie primit pe alta adresa decit cea

programata.Are semnificatie doar cind se folosesc mai multe

comenzi WAIT in paralel (fiecare cu adresa sa) pentru a limita

intrarile la un anumit tip de semnal-poarta fizica "antivirus").

-expresii asociate;INP,OUT
-88-

WEND -comanda

-Indica iesirea dintr-o bucla WHILE.Basic recunoaste automat

comanda WHILE careia i se asociaza WEND

-forma WEND

-exemplu 10 CLS:REM-CEAS

20 INPUT "ORA";ora

30 INPUT "MINUT";minut

40 INPUT "SECUNDA";secunda

50 CLS:LET D=INT(TIME/300)

60 WHILE ora<13

70 WHILE minut<60

80 WHILE tic<60

90 LET tic=(INT(TIME/300)-D)+secunda

100 LOCATE 1,1

110 PRINT USING "##";ora;minut;tic

120 WEND

130 LET tic=0;LET secunda=0:LET minut=minut+1

140 GOTO 50

150 WEND

160 LET minut=0:let ora=ora+1

170 WEND

180 LET ora=1

190 GOTO 60

-expresii asociate;

TIME,WHILE
WHILE -comanda

-Repeta o sectiune din program atita timp cit o conditie data

este verificata (adevarata).WHILE indica inceputul secventei

de repetat iar expresia logica defineste conditia de verificat.

-forma WHILE(expresie logica)

-exemplu 10 CLS:PRINT "cronometru":LET t=TIME

20 WHILE TIME

30 FOR x=1 TO 1000:NEXT x

40 WEND:SOUND 1,50,30,12

50 IF TIME>t+300 THEN 10

-expresii asociate;

TIME,WEND
WIDTH -comanda

-Indica numarul de caractere de pe o linie in momentul iesirii

pe imprimanta.In absenta unei comenzi WIDTH,calculatorul adopta

implicit valoarea 132.

-forma WIDTH (numar de caractere)

-exemplu WIDTH 40

-Observatie;daca selectati un anumit numar de caractere prin

comanda WIDTH,verificati cu atentie daca numarul specificat

corelat cu modul grafic al ecranului determina un numar accepta-

bil de caractere pentru fiecare rind tiparit.
-expresii asociate;

POS

-89-

WINDOW -comanda

-Indica in mod text, dimensiunile unui canal de afisaj de pe

ecran (in caz particular o fereastra de ecran).Parametrii;

stinga,dreapta,sus,jos trebuie sa fie in limitele maxime ale

modului ecran selectat (sa nu depaseasca limitele ecranului).

Parametrul (numar de canal) daca nu se specifica se va consi-

dera implicit valoarea #0

-forma WINDOW(#numar de canal),(stinga),(dreapta),(sus),(jos)

-exemple 10 MODE 0:BORDER 0:REM-test ferestre

20 INK 1,25:INK 2,23:INK 3,21

30 PAPER 0:CLS

40 PAPER 1:WINDOW 2,4,2,8:CLS

50 PAPER 2:WINDOW 8,18,10,5:CLS

60 PAPER 3:WINDOW 2,15,15,18:CLS

pentru a reveni la ecran tastati PAPER 0 apoi MODE 1

-Observatie;in exemplul de mai sus,prin WINDOW se redimen-

sioneaza zona de afisaj de pe ecran.Daca nu se intervine cu

o alta comanda,programul se desfasoara in continuare in

ultima fereastra deschisa.

-expresii asociate;

WINDOW SWAP
WINDOW SWAP -comanda

-Inverseaza fereastra activa.Aceasta comanda permite

dirijarea mesajelor BASIC pe un canal dorit sau intr-o

fereastra de ecran selectata.Cele doua nunere de canal

care identifica cele doua ferestre trebuie sa fie prezente

obligatoriu.

-forma WINDOW SWAP (numar de canal),(numar de canal)

-exemplu 10 MODE 1:INK 1,24:INK 2,9:INK 3,6

20 WINDOW 21,40,13,25:PAPER 14

30 WINDOW #1,1,20,1,12:PAPER#1,2

40 CLS:PRINT "Fereastra nr.0"

50 CLS#1:PRINT "Fereastra nr.1"

60 LOCATE 1,6

70 PRINT "Fereastra rosie(0)"

80 LOCATE#1,1,6

90 PRINT#1,"Fereastra verde(1)"

100 FOR t=1 TO 1000:NEXT t

110 WINDOW SWAP 0,1:GOTO 60

-expresii asociate;

WINDOW
WRITE -comanda

-Afiseaza sau scrie date pe canalul indicat.Articolele diferite

se separa prin virgula iar sirurile de caractere se scriu intre

ghilimele.De exemplu pentru scrierea datelor pe o discheta se

va folosi comanda de scriere pe canalul 9.

-forma WRITE(#(numar de canal),(date de scris)

-exemplu 10 INPUT "Scrie un numar";a:REM-scrie pe discheta

20 INPUT "Scrie un sir de caractere";a$

30 OPENOUT "Fisier1"

40 WRITE #9,a,a$

50 CLOSEOUT:PRINT "Datele sint pastrate pe discheta"

-90-

pentru citirea datelor scrise cu secventa precedenta se va utiliza

o secventa de comenzi de genul;

10 REM-regaseste datele de pe discheta

20 OPENIN "Fisier1":INPUT #9,a,a$

30 CLOSEIN:PRINT "cele doua date sint:"

40 PRINT a:PRINT a$

-expresii asociate;

INPUT,LINE INPUT
XOR -operator pentru comanda IF

-Realizeaza bit cu bit operatia XOR(SAU EXCLUSV-inlocuieste o

variabila cu una distinct diferita) pentru comanda conditionala

IF.Valoarea parametrilor celor doua argumente trebuie sa fie

obligatoriu diferita (SAU exclusiv) spre deosebire de OR(sau)

la care cele doua argumente por fi egale (una sau cealalta)

-forma (argument)XOR(argument)

-exemple 10 FOR x=1 TO 20

20 FOR y=5 TO 10

30 PRINT x,y

40 IF x=7 XOR y=7 THEN PRINT "7 sapte"

50 NEXT y

60 NEXT x
sau 10 IF "alin"="bebe"XOR"catel"="pisica" THEN PRINT "adevarat"

ELSE PRINT "fals"

si apoi PRINT 1 AND 1

PRINT 1 AND 0

PRINT 0 AND 0
-expresii asociate;

AND,OR,NOT
XPOS -functie

-Indica pozitia pe axa orizontala a cursorului grafic

-forma XPOS

-exemplu 10 FOR x=1 TO 100

20 PLOT x,100

30 FOR y=1 TO 500:NEXT y

40 LOCATE 10,10

50 PRINT XPOS

60 CLS

70 NEXT x

-expresii asociate;MOVE,MOVER,ORIGIN,YPOS
YPOS -functie

-Indica pozitia pe axa verticala a cursorului grafic

-forma YPOS

-exemplu 10 FOR y=100 TO 200:PLOT 100,y

20 FOR x=1 TO 500:NEXT x

30 LOCATE 10,10

40 PRINT YPOS

50 CLS:NEXT y

-expresii asociate;

MOVE,MOVER,ORIGIN,XPOS


-91-

ZONE -comanda

-Modifica marimea tabulatiei desemnata prin virgula in comanda

PRINT (13 caractere).Marimea zonelor de afisaj poate lua astfel

orice valoare intreaga cuprinsa intre 1 si 255.Se foloseste

pentru a tabela siruri lungi de caractere.

-forma ZONE (numar intreg)

-exemple 10 CLS:FOR z=2 TO 20

20 ZONE z

30 PRINT "X","X ZONE=";z:NEXT z

sau 10 MODE 2

20 LET a$="abcdefghijklmnoprstuvxyz"

30 FOR x=1 TO 10

40 ZONE 35:PRINT a$,".......";

-expresii asociate;

PRINT

Se observa ca spre deosebire de GW-BASIC la programul BASIC AMSTRAD

nu se disting decit functii si comenzi (termenul de instructiuni a

fost introdus mai tirziu) dar comenzile descrise mai sus functioneaza

la fel ca si instructiunile din GW-BASIC,adica doar in modul program.

Din motive de comoditate am pastrat forma de prezentare a d-lui LIVIU

DUMITRASCU,a carui lucrare "Invatam microelectronica interactiva" din

1989 Editura Tehnica o recomand si pe aceasta cale.

O alta deosebire semnificativa o reprezinta si lista mesajelor de

eroare,mai scurta pentru BASIC AMSTRAD si care sint urmatoarele;

1 Unexpected NEXT 14 String space full

2 Syntax Error 15 String too long

3 Unexpected Return 16 String expresion too complex

4 Data exhausted 17 Cannot CONTinue

5 Improper argument 18 Unknown user function

6 Overflow 19 RESUME missing

7 Memory full 20 Unexpected RESUME

8 Line does not exist 21 Direct commnd found

9 Subscript out of range 22 Operand missing

10 Array already dimensioned 23 Line too long

11 Division by zero 24 EOF met

12 Invalid direct command 25 File type error

13 Type mismatch
Vocabularul BASIC AMSTRAD este;ABS,AFTER,AND,ASC,ATN,AUTO,BIN$,BORDER,

BREAK,CALL,CAT,CHAIN,CHR$,CINT,CLEAR,CLG,CLOSEIN,CLOSEOUT,CLS,CONT,

COPYCHR$,COS,CREAL,CURSOR,DATA,DEC$,DEF,DEFINT,DEFREAL,DEFSTR.DEG,

DELETE,DERR,DI,DIM,DRAW,DRAWR,EDIT,EI,ELSE,END,ENT,ENV,EOF,ERASE,ERL,

ERR,ERROR,EVERY,EXP,FILL,FIX,FN,FOR,FRAME,FRE,GOSUB,GOTO,GRAPHICS,HEX$,

HIMEM,IF,INK,INKEY,INKEY$,INP,INPUT,INSTR,INT,JOY,KEY,LEFT$,LEN,LET,

LINE,LIST,LOAD,LOCATE,LOG,LOG10,LOWER$,MASK,MAX,MEMORY,MERGE,MID$,MIN,

MOD,MODE,MOVE,MOVER,NEXT,NEW,NOT,ON,ON BREAK,ON ERROR GOTO,ON SQ,OPENIN,

OPENOUT,OR,ORIGIN,OUT,PAPER,PEEK,PEN,PI,PLOT,PLOTR,POKE,POS,PRINT,RAD,

RANDOMIZE,READ,RELEASE,REM,REMAIN,RENUM,RESTORE,RESUME,RETURN,RIGHT$,

RND,ROUND,RUN,SAVE,SGN,SIN,SOUND,SPACE$,SPC,SPEED,SQ,SQR,STEP,STOP,STR$,

STRING$,SWAP,SYMBOL,TAB,TAG,TAGOFF,TAN,TEST,TESTR,THEN,TIME,TO,TROFF,

TRON,UNT,UPPER$,USING,VAL,VPOS,WAIT,WEND,WHILE,WIDTH,WINDOW,WRITE,XOR,

XPOS,YPOS,ZONE

-92-

GW-BASIC pentru IBM-PC sub MS-DOS
-reprezinta o varianta de BASIC destinata penrtu calculatoare de birou

gen IBM-PC(inclusiv FELIX-PC),dotate cu procesoare si cu memorie de

operare mai performante.Se poate adapta pentru aproape orice necesitati

de programare.Programele scrise in BASIC-AMSTRAD sint fie compatibile

direct,fie usor de adaptat si transformat pentru a fi utilizate sub

GW-BASIC.Prezinta avantajul ca este compatibil cu sistemul DOS si res-

pectiv MS-DOS,este usor de incarcat sau copiat de pe un calculator pe

altul,este destul de redus ca spatiu pentru a fi incarcat complet in

memoria de operare,ocupa putin spatiu pentru arhivarea datelor,este

suficient de rapid pentru necesitatile muncii de birou uzuale.Cu alte

cuvinte este un program foarte util pentru un elev,student sau progra-

mator incepator.Pentru cei foarte avansati in utilizarea calculatoarelor

GW-BASIC reprezinta o resursa inepuizabila pentru dezvoltarea de noi

programe menite sa deserveasca necesitati complexe (trei,sase,noua sau

chiar mai multe-32,64 sau chiar 128-de programe rulate pe port paralel

in care fiecare program BASIC de pe fiecare linie de adresa realizeaza

o functie sau un algoritm-formind astfel un program destul de complex,

mult mai rapid si orientat pentru scopuri specifice).Limbajul sau este

usor de asimilat,maleabil si precis.O data cunoscut si indragit este

greu de inlocuit cu alt program sau mediu de programare.Utilizatorii sai

sint de obicei si partizani inversunati care refuza cu obstinenta toate

imbunatatirile mai mult sau mai putin semnificative ale programelor

aparute mai recent.Probabil ca in timp se vor adauga noi functii si

instructiuni (programul initial avea un vocabular format din citeva

cuvinte care au devenit aproximativ treizeci,apoi optzeci pentru ca in

varianta ce urmeaza sa fie prezentate aproximativ 200 de expresii.Poate

ca peste zece ani vor fi trei sute sau mai multe.Este bine de verificat

daca varianta de program pe care o detineti recunoaste si executa toate

aceste comenzi,instructiuni si functii.Pentru verificare,exemplele de

la fiecare expresie sint de obicei semnificative si suficiente.Nu este

bine sa utilizati o expresie logica sau o functie fara sa fi inteles

exact ce anume si cum face.In caz contrar se pot obtine rezultate ne-

scontate sau chiar mai grav,se pot deteriora datele si programele din

calculator,eventual si programele altor persoane care utilizeaza acelasi

calculator.Este bine ca pentru invatarea programului sa existe si un

supraveghetor sau cel putin o persoana competenta care poate fi consul-

tata la nevoie.Este recomandabil sa se inceapa cu secvente scurte de

program si algoritmi si abea opoi sa se inceapa exercitiile si programe-

le complexe cu multe linii de adresa si cu operatii complexe.Pentru


Yüklə 1,91 Mb.

Dostları ilə paylaş:
1   ...   8   9   10   11   12   13   14   15   ...   20




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin