Basic abc-doar


-forma DEFREAL (lista de litere)



Yüklə 1,91 Mb.
səhifə7/20
tarix06.08.2018
ölçüsü1,91 Mb.
#67460
1   2   3   4   5   6   7   8   9   10   ...   20

-forma DEFREAL (lista de litere)

-exemple 10 DEFREAL n

20 LET numar=PI

30 PRINT numar

sau 10 DEFREAL n

20 LET numar=33.77

30 LET seif=10000.57

40 DEFINT c

50 LET casa=146.768

60 PRINT numar;"numar"

70 PRINT casa;"casa"
-Observatie;pentru ca expresia sa se aplice tuturor variabilelor

denumite prin litere vom utiliza forma DEFREAL a-z caz in care

toate variabilele numerice vor fi exprimate prin numere reale.

-expresii asociate:DEFINIT,DEFSTR
DEFSTR -comanda

-Variabila asupra careia se aplica functia este selectata dupa

prima litera din numele sau.Comanda poate fi urmata de un sir

de litere sau de intregul alfabet.Actoineaza la fel ca si

comenzile de mai sus dar se aplica pentru litere

-forma DEFSTR(lista de litere)

-exemple 10 DEFSTR n 10 DEFSTR k

20 let nume="BASIC" 20 let knume="ANA"

30 PRINT nume 30 PRINT knume

-Observatie;cu aceasta comanda se pot selecta intr-un program

un numar de variabile care indeplinesc o anumita conditie.

Se pot selecta deodata toate literele alfabetului.

-expresii asociate;DEFINT,DEFREAL

-41-

DEG -comanda

-Stabileste modul de calcul al unghiurilor in grade (degrade).

In mod curent functiile SIN,COS,TAN si ATN considera ca argu-

mentul care li se transmite este exprimat in radiani.Comanda

ramine valabila pina cind se utilizeaza comenzile RAD sau

NEW,CLEAR,LOAD,RUN etc

-forma DEG

-exemple 10 DEG

20 FOR x=1 to 360

30 PRINT SIN(x)

40 NEXT x

sau 1 CLS

10 DEG

20 FOR X=1 TO 360

30 PLOT 100*COS(x)+200,100*SIN(x)+200

40 NEXT x

-expresii asociate;

ATN,COS,RAD,SIN,TAN
DELETE -comanda

-Sterge o parte din program delimitata prin expresia din

paranteza (ansamblul de linii)

-forma DELETE (ansamblul de linii)

-exemple 10 PRINT "A"

20 PRINT "B"

30 PRINT "C"

40 PRINT "D"

50 DELETE 20-30

RUN apoi LIST si iar RUN

-expresii asociate;

CHAIN MERGE,RENUM
DERR -functie

-Raporteaza ultimul cod de eroare transmis de sistemul de

gestiune al dischetei.Valoarea lui DERR poate servi la con-

firmarea erorii descoperite.Se consulta lista cu coduri de

eroare sau mesaje de eroare.

-forma DERR

-exemple 10 NEXT

20 PRINT DERR

sau LOAD "abc"

scrieti C(cancel) la mesajul disc missing

ai apoi PRINT DERR

-expresii asociate;

ERL,ERR,ERROR,ON ERROR GOTO,RESUME
DI -comanda

-Dezactiveaza o intrerupere(alta decit ESC)pina cind este reacti-

vata prin comanda EI sau prin RETURN din GOSUB.Intrarea intr-un

program de intrerupere dezactiveaza automat intreruperile cu

prioritate egala sau mai mica.Se utilizeaza atunci cind progra-

mul trebuie sa se execute fara intrerupere (de exemplu atunci

cind sint in competitie doua subprograme pentru a folosi resurse-

le calculatorului-resurse grafice,discuri auxiliare,periferice)

-42-

DI(disable interrupt) se incearca si pentru depanarea unor

programe de BASIC defective care nici nu ruleaza functiile si

nici nu listeaza programul datorita unor intreruperi a caror

conditie nu poate fi indeplinita.

-forma DI

-exemple 10 FOR x=1 TO 1000

20 AFTER 2 GOSUB 80

30 PRINT x

40 NEXT x

80 CLS

90 RETURN

RUN si apoi adaugati 25 DI

RUN

OBS.RETURN revine in program in mijlocul

buclei FOR...NEXT si va genera mesaj de

eroare.DI anuleaza intreruperea din linia

20 prin GOSUB dar nu repara eroarea.

Adaugati si 27 EI si apoi RUN.

-expresii asociate;

AFTER,EI,EVERY,REMAIN
DIM -comanda

-Dimensioneaza un tablou.Prin DIM se aloca spatiul necesar unui

tablou prin specificarea valorilor maxime de indici.Daca nu se

specifica nici o valoare se considera implicit valoarea 0.Un

tablou se identifica (denumeste) printr-o variabila indexata

(care poate fi o litera) si un ansamblu de indici,astfel incit

fiecare "element" al tabloului sa aiba propria sa valoare de

indice(locatie in tablou).O bucla FOR...NEXT poate servi la

controlul tabloului,prelucrind fiecare element al tabloului pe

rind.Valoarea minima a unui indice este 0 (tabloul nu poate

avea dimensiuni negative).Tablourile pot fi multidimensionale

si fiecare element este referit prin pozitia sa in tablou.De

exemplu,intr-un tablou dimensionat prin DIM pozitie(20,20,20)

un element al tabloului va fi de exemplu pozitie (4,5,6)

-forma DIM (lista de variabile indexate)

-exemple 10 DIM T(12,31)

20 INPUT "Numarul lunilor";L

30 INPUT "Numarul zilelor";Z

40 FOR x=1 TO L

50 PRINT "Luna";x

60 FOR y=1 TO Z

70 PRINT TAB(10)"Ziua";y

80 NEXT y

90 NEXT x

sau 10 DIM M(30,30)

20 LET a=25

30 LET b=29

40 FOR x=1 TO a

50 FOR y=1 TO b

60 LOCATE x,y

70 PRINT "*"

80 NEXT y

90 NEXT x

-43-

sau 5 CLS

10 DIM A(16,12,18)

20 LET a=15

30 LET b=10

40 LET c=15

50 FOR x=1 TO a

60 FOR y=1 TO b

70 FOR z=1 TO c

80 LOCATE x,y

90 PRINT "."

100 LOCATE y,z

110 PRINT "#"

120 LOCATE z,x

130 PRINT "O"

140 NEXT z

150 NEXT y

160 NEXT x

-expresii asociate;

ERASE
DRAW -comanda

-Traseaza o linie pe ecran intre pozitia cursorului(pozitie

grafica) si o pozitie absoluta specificata prin coordonatele

x si y.Coloarea (cerneala) de trasaj poate fi specificata intre

0 si 15.Tipul de cerneala (facultativ) determina interactiunea

dintre graficul afisat si cel existent pe ecran pe traseul

instructiunii dupa cum urmeaza;

0:Normala

1:XOR (SAU exclusiv)

2:AND (si)

3:OR (SAU)

-forma DRAW(coordonata x),(coordonata y),(cerneala),(tip cerneala)

-exemple 10 MODE 2:BORDER 10:PAPER 0:INK 0,5

20 LET x=rnd*600:LET y=RND*300:LET z=RND*15

30 DRAW x,y,z

40 GOTO 20

sau 5 CLS

10 FOR x=1 TO 600 STEP 20

20 FOR y=1 TO 200 STEP 20

30 DRAW x,y,1

40 NEXT y

50 NEXT x

sau 5 CLS

10 DRAW 100,100,1

20 DRAW 100,200,1

30 DRAW 200,200,1

40 DRAW 200,100,1

10 DRAW 100,223,1

20 DRAW 200,223,1

30 DRAW 200,100,1

-expresii asociate;

DRAWR,GRAPHICS,PEN,MASK

-44-

DRAWR -comanda

-Traseaza o linie pe ecranul grafic pornind de la cursorul

grafic si pina la pozitia specificata de x si y.Culoarea

poate fi de la 0 la 15 iar tipul de cerneala (facultativ)

de la 0 la 3 0:Normal

1:XOR(SAU exclusiv)

2:AND(SI)

3:OR(SAU)

-forma DRAWR(deplasare x),(deplasare y),(cerneala),(tip cerneala)

-exemple 10 CLS:PRINT "Scara"

20 MOVE 0,350:FOR n=1 TO 8

30 DRAWR 50,0

40 DRAWR 0,-50

50 FOR x=1 TO 300

60 NEXT x

70 NEXT n:MOVE 348,0

80 END
sau 10 CLS

20 LOCATE 100,100

30 FOR x=10 TO 200 STEP 10

40 MOVE 10,100

50 DRAWR x,100

60 DRAWR 200,x

70 NEXT x
-expresii asociate;

DRAW,GRAPHICS PEN,MASK
EDIT -comanda

-Afiseaza linia de program desemnata precum si cursorul pregatit

de editare.Orice modificare in linia de program,dupa apasarea

tastei ENTER devine definitiva.Se utilizeaza pentru modificarea

sau corectarea programelor.

-forma EDIT (numar de linie)

-exemple 10 PRINT "BASIC"

apoi EDIT 10

sau in orice program

solicitati LIST alegeti un numar de linie

dintre cele existente si apoi

scrieti EDIT (numarul ales)

-expresii asociate;

AUTO,LIST
EI -comanda

-Activeaza o intrerupere dezactivata de DI.Intreruperile dez-

activate printr-un subprogram sint automat restabilite prin

comanda RETURN la sfirsitul subprogramului

-forma EI 10 FOR x=64 TO 200 Adaugati 21 DI

20 AFTER 1 GOSUB 100 RUN

-exemple 30 IF x=200 GOTO 10 Apoi 22 EI

40 PRINT CHR$(x) RUN

100 CLS:RETURN

-expresii asociate;AFTER,DI,EVERY,REMAIN

-45-

ELSE -operator conditional pentru comanda IF

-Stabileste operatia ce urmeaza a fi executata in cazul in

care conditia pentru functia IF nu este indeplinita

(vezi expresia IF)
END -comanda

-Termina executia programului si restabileste modul direct.

Un program poate sa contina mai multe instructiuni END cu

conditia sa existe operatii de salt conditional peste linia

de adresa care contine comanda END (programul contine mai

multe variante alternative).Obisnuit fiecare program se

va termina cu comanda END.

-forma END

-exemple 10 FOR x=1 TO 10

20 PRINT x

30 NEXT x

40 INPUT "Introduceti un numar"

50 IF a<5 GOTO 70

60 END

70 GOTO 10

-expresii asociate;STOP
ENT -comanda

-Defineste anvelopa de tonalitate specificata printr-un numar

intre 1 si 15 utilizata pentru comanda SOUND.Fiecare sectiune

din anvelopa poate sa contina 2 sau 3 parametrii si anume

(parametrul 1)=numarul de pasi,(parametrul 2)=amplitudinea

pasului,(parametrul 3)=durata pasului.

Numarul de pasi-poate sa varieze de la 0 la 239 si determina

o variatie de tonalitate pentru o nota data.

Amplitudunea pasului poate lua valori cuprinse intre -128 si

127.Pasii negativi maresc inaltimea notei iar cei pozitivi

o coboara.Perioada sonora minima este 0.

Durata pasului se masoara in unitati de 0,01 secunde.Poate

avea valori intre 0 si 255.

Daca se folosesc doar doi parametri atunci acestia sint:

Parametrul 1=perioada sonora=exprima inaltimea sunetului si

poate lua valori de la 0 la 4000.

Parametrul 2=durata sunetului=ca mai sus.

Durata pasilor (tremoloului) nu trebuie sa depaseasca durata

sunetului deoarece in acest caz sunetul se termina inainte de

a epuiza fiecare pas(se mai numeste SOUNDBLASTER).Daca durata

sunetului este mai mare decit numarul de pasi atunci sunetul

va fi constant in portiunea sa finala.

Comanda ENT poate fi insotita de 5 sectiuni de anvelopa dife-

rite (fiecare dintre ele alcatuita din 2 sau 3 parametrii).

Fiecare comanda ENT noua anuleaza pe cele precedente.O comanda

ENT fara parametri (fare sectiune de anvelopa) anuleaza toate

specificatiile precedente.

-forma ENT(numar de anvelopa),(sect.anv),(sect.anv),(sect.anv),(

sect.anv),(sectiune de anvelopa)
-exemple 10 ENT 1,10,-50,10,10,50,10

20 SOUND 1,500,200,10,1

-46-

exemplu 10 ENT 1,230,-127,250

11 ENT 2,10,120,20

20 SOUND 1,200,20,12

30 ENT 3,200,120,20

40 SOUND 1,100,100,12

50 ENT 3,50,50,10

60 SOUND 1,150,50,10

70 GOTO 10

-expresii asociate;

ENV,SOUND
ENV -comanda

-Defineste anvelopa de volum pentru anvelopa de sunet utilizata

pentru comanda SOUND.(alti parametri pentru precizarea caracte-

relor sunetului-are importanta mai mare pentru definirea frec-

ventelor din domeniul ultra si infrasunetelor (cele care nu se

aud).Poate sa contina 2 sau 3 parametri;

Parametrul 1=numarul de pasi este de maximum 127 (de exemplu un

sunet de 10 secunde se poate imparti in 10 pasi de o secunda).

Parametrul 2=amplitudunea pasului-face sa varieze volumul de la

0 la 15 in raport cu pasul precedent.Are valori intre -128 si 128

Parametrul 3=durata pasului=durata in unitati de 0,01 secunde.

poate avea valori de la 1 la 255.

Daca se specifica doar 2 parametri acestia vor fi considerati ca;

Parametrul 1=anvelopa fizica-specifica valoarea ce trebuie trimi-

sa la registrul de anvelopa cuprins in generatorul sonor.

Parametrul 2=perioada anvelopei-valoarea de trimis la registrele

de perioada ale anvelopei din generatorul sonor.

Poate sa contina 5 sectiuni de anvelopa cu cite 2-3 parametri

fiecare.Primul pas al anvelopei se executa imediat.O noua anve-

lopa o anuleaza pe precedenta. O anvelopa fara sectiune de

anvelopa anuleaza toate valorile precedente.

-forma ENV(nr.anvelopa),(sect.anv),(sect.anv),(sect.anv),(sect.anv),

(sectiune de anvelopa)

-exemple 10 ENV 1,15,-1,10,15,1,10

20 SOUND 1,200,300,15,1

sau 10 ENV 1,20,12,5

20 SOUND 1,250,50,10 eventual adaugati si

30 ENV 2,50,-50,20 11 ENT 1,20,50,10

40 SOUND 1,100,10,10 31 ENT 2,10,100,20

50 ENV 3,100,-120,100 51 ENT 3,30,10,50

60 SOUND 1,150,15,10

70 GOTO 10

-expresii asociate;

ENT,SOUND

EOF -functie

-Verifica daca un fisier este deschis (end of file).Daca conditia

este adevarata returneaza -1 si daca este falsa returneaza 0.

-forma EOF

-exemple 10 WHILE NOT EOF

20 PRINT "a"

30 WEND

-47-

exemplu 1 CLS

10 DIM A(10,20)

20 FOR x=1 TO 10

30 FOR y=1 TO 20

40 LOCATE x,y

50 PRINT "O"

60 NEXT y

70 NEXT x

80 IF EOF THEN 100

90 END

100 LOCATE 30,40:PRINT "Sfirsit"

-expresii asociate;

OPENIN,CLOSEIN
ERASE -comanda

-Comanda de stergere pentru tablouri si fisiere.Se foloseste

atunci cind un tablou sau un fisier nu mai este necesar si

se elibereaza memoria de operare pentru alte fisiere.Se va

utiliza cu atentie (se pot sterge din greseala fisierele

de lucru ale programului care va deveni inoperant)

-forma ERASE(lista de variabile)

-exemple 10 DIM a(100),b(100)

20 READ a,b

30 PRINT a,b

40 DATA 1,2,3,4,5,6,7,8,,9

50 DATA 9,8,7,6,5,4,3,2,1,0

60 ERASE a,b
-expresii asociate;DIM
ERL -functie

-Returneaza numarul de linie al unei erori (ERROR LINE).

-forma ERL

-exempu 10 PRINT "AUTODEPANARE"

20 ON ERROR GOTO 40

30 GOTO 100

40 PRINT "EROARE IN LINIA=";ERL

50 PRINT "verificati sintaxa"

60 PRINT "rescrieti linia"

100 PRINT "START"

110 GOTO
-expresii asociate;

DERR,ERR,ERROR,ON ERROR GOTO,RESUME

ERR -functie

-Returneaza numarul ultimei erori intilnite.Se verifica in

lista de mesaje de eroare

-forma ERR

exemple GOTO 500

iar la mesajul LINE DOES NOT EXIST

PRINT ERR va returna 8

-expresii asociate;DERR,ERL,ERROR,ON ERROR GOTO,RESUME

-48-

ERROR -comanda

-Returneaza mesajul de eroare indicat prin numarul care

insoteste comanda (de la 1 la 32).Mesajul va fi cu acelasi

text ca si pentru erorile reale.Utilizind numere de la 33

la 255 ERROR se poate utiliza pentru a crea mesaje de

eroare cu textul dorit de utilizator si cu aparitie condi-

tionata de instructiunea dorita.

-forma ERROR (numar intreg)

-exemple 10 IF INKEY$=" " THAN 10 ELSE ERROR 17

ERROR 1

ERROR 2....ERROR 32

10 ON ERROR GOTO 100

20 INPUT "Introduceti un caracter";a$

30 IF LEN(a$)<>1 THEN ERROR 100

40 GOTO 20

100 IF ERR=100 THEN 110 ELSE 130

110 PRINT CHR$(7)

120 PRINT "Va rog UN caracter, nu mai multe "

130 RESUME 20

RUN si introduceti 13 sau un cuvint

10 INPUT "Parola?";a$

20 IF a$="NABUCODONOSOR" THEN 100 ELSE ERROR 22

100 PRINT "START "

-Observatie;instructiunea ERROR diferenteaza literele mici

de cele mari.In exemplul de mai sus daca vom scrie parola

cu litere mici vom receptiona un mesaj de eroare.

-expresii asociate;ERL,ERR,ON ERROR GOTO,RESUME
EVERY...GOSUB -comanda

-Apeleaza un subprogram la intervale regulate.Durata

cronometrului se specifica prin unitati de 0,02 secunde.

Numarul de cromometru (de la 0 la 3) specifica unul

dintre cele patru cronometre ce poate fi utilizat.Crono-

metrul 3 are prioritate superioara iar 0 inferioara.

Pentru fiecare cronometru se poate asocia un subprogram.

-forma EVERY(durata cronometrului),(numarul cronome-

trului) GOSUB (numar de linie)

-exemple 10 EVERY 50,1 GOSUB 30

20 GOTO 20

30 SOUND 1,20

40 RETURN

10 EVERY 100,3 GOSUB 100

20 FOR x=50 TO 200 STEP 10:IF x=200 GOTO 10

30 FOR y=10 TO 50 STEP 5

40 LOCATE x,y:PRINT "X"

50 SOUND 1,x,10

60 SOUND 1,y,10

70 LOCATE x/10,y/5:PRINT "O"

80 NEXT y

90 NEXT x

100 CLS:RETURN
-expresii asociate;

AFTER...GOSUB,REMAIN

-49-

EXP -functie

-Calculeaza "e" la puterea data prin (expresia numerica)

iar "e" se considera egal cu 2,7182818(aproximativ),numar

al carui logaritm natural este 1(ln e=1)

-forma EXP(expresie numerica)

-exemple PRINT EXP(6.876)

sau PRINT EXP(PI/2)

sau PRINT EXP (SIN(PI/4))

sau 10 FOR X=1 TO 30

20 PRINT EXP(X)

30 NEXT X

expresii asociate;

LOG
FILL -comanda

-Completeaza cu culoare o zona a ecranului,la alegere,ale

carei margini sint delimitate de liniile desenate cu

culoarea trasorului sau cu culoarea fondului ecranului al

carui numar este intre 0 si 15.Completarea porneste de al

pozitia cursorului grafic.Daca acesta se afla pe o margine

a zonei operatia nu are loc.

-forma FILL (cerneala)

-exemple 10 MODE 0

20 FOR n=1 TO 50

30 PRINT "O";

40 NEXT n

50 LET stylo=2+RND*13

60 FILL stylo

70 GOTO 50

sau 1 CLS

2 MODE 2:BORDER 10:PAPER 0:INK 0,0

10 FOR x=1 TO 500 STEP 10

20 FOR y=1 TO 400 STEP 20

30 DRAW x,y,INT(RND*10+1)

40 DRAW y,x,INT(RND*10+1)

50 NEXT y

60 NEXT x

70 FILL INT(RND*15+1)

Yüklə 1,91 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   ...   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