Basic abc-doar


programarea cuprinzind un numar mare de variabile si un numar mare de



Yüklə 1,91 Mb.
səhifə13/20
tarix06.08.2018
ölçüsü1,91 Mb.
#67460
1   ...   9   10   11   12   13   14   15   16   ...   20
programarea cuprinzind un numar mare de variabile si un numar mare de

operatii este bine sa se procedeze sistematizat.Astfel fiecare grup

de operatii ce indeplinesc o functie mai complexa este bine sa fie

proiectata intr-un modul independent care sa fie arhivat separat.Pentru

realizarea programului, se vor combina doar, un numar mai mic sau mai

mare de astfel de module.Pentru depanarea sau modificarea unui program

va fi suficient sa se inlocuiasca un modul cu altul nou de pe discheta.

Procedeul poarta numele de programare modulara si este destul de mult

utilizat in practica.Valoarea unui program este data de suma valorilor

subprogramelor care il compun.Din acest punct de vedere se va observa

ca GW-BASIC contine un numar satisfacator de optiuni pentru programare.

Atit programul, cit si forma de prezentare si exemplele apartin altor

autori,care pot solicita dreptul de proprietate intelectuala exclusiva.

-93-

ABS -functie

-Calculeaza si afiseaza valoarea absoluta a expresiei.

-forma ABS(expresie numerica)

-exemple PRINT ABS(7*(3-9))

10 FOR x=3 TO -7 STEP -1

20 PRINT ABS(x-3.14)

30 NEXT x

-expresii asociate;

SGN
ASC -functie

-Afiseaza valaorea numerica a primului element dintr-un sir

alfanumeric corespunzatoare codului ASCII pt. elementul respectiv

(se va utiliza tabelul de corespondenta BASIC-ASCII,iar unele

programe au inclus si tabelul ASCII in functia HELP).

-forma ASC(expresie tip sir)

-exemple 10 LET a$="GW-BASIC"

20 PRINT ASC(a$)

-expresii asociate;CHR$
ATN -functie

-Calculeaza arctangenta expresiei numerice cu valori cuprinse

intre -90 de grade si +90 de grade.Valoarea se exprima in simpla

precizie.Daca se doreste exprimarea in dubla precizie,atunci la

lansarea programului se va selecta GW-BASIC/D (vezi GW-BASIC).

Ungiurile calculate se considera exprimate in radiani.

-forma ATN(expresie numerica)

-exemple PRINT ATN(1)

10 FOR x=1 TO 360 STEP 3.14/180

20 PRINT ATN(x)

30 NEXT x

-expresii asociate;

COS,SIN,TAN
AUTO -comanda

-Genereaza automat numarul liniei de adresa incepind cu numarul

specificat si facind salt intre linii atiti pasi cit se speci-

fica prin al doilea numar(increment).

-forma AUTO (numar de linie),(increment)

-exemple AUTO

AUTO 100,5

AUTO,20

-Observatie;Daca nu se specifrica nici un numar se vor genera

linii de la 0 la 65530 din 10 in 10.

Daca nu se specifica incrementul se vor genera

linii de la numarul specificat la 65530 din 10 in 10.

Daca se specifica doar incrementul (o virgula si

apoi incrementul se vor genera linii de la 0 la 65535 din

increment in increment.

Daca a existat o comanda anterioara AUTO,valorile

sale se pastreaza pina cind sint anulate prin o noua comanda.

-expresii asociate;

CTRL/BREAK-revenire in mod comanda

-94-

BEEP -Enunt

-Activeaza soneria (produce un sunet in difuzor)

-forma BEEP

-exemple 10 PRINT "Calculul radacinii patrate"

20 INPUT x

30 IF x>=0 THEN GOTO 50

40 BEEP:END

50 PRINT SQR(x)

-expresii asociate;nu sint
BLOAD -comanda

-Comanda echivalenta pentru LOAD.Incarca in memorie un program

in cod masina citit de pe un disc sau un alt suport de memorie.

Fisierele salvate cu comanda BSAVE vor fi incarcate in memorie

la adresa specificata prin comanda sau daca nu se specifica prin

parametrul (ecart) atunci se considera implicit 0 sau adresa

ultimului segment definit prin DEF SEG.

-forma BLOAD(specificator fisier),(ecart)

-exemplu 10 REM-Incarca un fisir la adresa 60:F000

20 BLOAD "A:Fisier",&HF000

-Observatie;se utilizeaza pentru comanda adresa hexazecimala,

se presupune ca discul a fost formatat cu un program care a

delimitat memoria in cod hexazecimal.Exista si posibilitatea de

a gestiona altfel spatiul de memorie iar BASIC poate fi compati-

bil si cu alte programe manager.

-expresii asociate;

BSAVE,CALL,DEF SEG
BSAVE -comanda

-Echivalenta cu comanda SAVE.Salveaza in memorie,la adresa indi-

cata un program sau un fragment de program,octet cu octet (linie

cu linie).Pentru identificre se utilizeaza un nume pentru fisier

(specificator fisier),adresa unde va fi salvat (ecart) si lungi-

mea programului in octeti (numarul de linii).Daca nu se specifi-

ca adresa de memorie atunci datele vor fi salvate in ultimul

segment definit prin DEF SEG sau incepind cu prima linie libera

din memorie.

-forma BSAVE(specificator fisier),(ecart),(lungime)

-exemplu 10 REM-Se salveaza Fisier1 la 6000:F000 cu 512 octeti

20 DEF SEG=&H6000

30 BSAVE "Fisier1",&HF000,512

-Observatie;pentru ca operatia sa se poata executa,discul trebuie

sa fie formatat iar memoria sa fie partajata in cod hexazecimal

astfel incit programul sa gaseasca adresa indicata.Pentru ince-

patori se recomanda sa utilizeze discuri gata formatate.Avansatii

pot utiliza ce format doresc dar daca doresc sa partajeze datele

si cu alti utilizatori este preferabil sa utilizeze codul hexa-

zecimal(nu este un delict sa utilizezi formate personalizate dar

este nepractic).Exista si variante de program in care spatiul

este gestionat in cod ASCII iar programul este codificat matrice-

al.Pentru citirea sau salvarea de date cu un astfel de program

este nevoie de un program intermediar,numit interpretor de BASIC.

-expresii asociate;

BLOAD,CALL,DEF SEG

-95-

CALL -enunt

-Se transfera controlul (iesire din program) la un alt program

sau subprogram existent in memorie la adresa indicata prin

(var num) la carese identifica prin (lista de variabile).Pentru

revenirea in program acesta va trebui reincarcat in memorie sau

daca este rezident permanent in memorie,revenirea se va face cu

o alta comanda CALL.

-forma CALL(var num)(lista de variabile)

-exemplu 200 LET FISIERTEXT=&HD000

210 CALL FISIERTEXT(x,y)

-Observatie;in exemplul de mai sus programul se va deplasa la

adresa &HD000 unde trebuie sa gaseasca fisierul text arhivat

anterior cu comanda BSAVE.Argumentele x,y,pentru fisierul indi-

cat sint optionale.

-expresii asociate;

BLOAD,CALLS,DEF SEG,USR
CALLS -enunt

-Transfera controlul la o subrutina externa la adresa indicata

prin (varnum) fata de segmentul curent.Optional se transmit si

argumentele indicate (lista de variabile) sub forma de adrese

segmentate.

-forma CALLS(varnum)(lista de variabile)

-exemplu 10 PRINT "Initializare disc C"

20 PRINT "Introduceti parola"

30 INPUT a$

40 CALLS "A:BATCHFILE XXX"

-Observatie;in exemplul de mai sus se face apel la unitatea de

discheta A pentru a furniza un fisier necesar procesului de

initializare a programului.In mod similar,doua sau mai multe

unitati de memorie pot schimba sau verifica diverse fisiere

inainte de a efectua o anumita operatie.Mai multe unitati de

disc pot colabora pentru a realiza o functie sau o operatie.

Se va utiliza cu maximum de prudenta deoarece intervine direct

asupra datelor din memorie (care se pot bulversa iremediabil).

Procedeele de colaborare dintre mai multe unitati de disc fac

deliciul programatorilor mai avansati.

-expresii asociate;

BLOAD,CALL,DEF SEG
CDBL -functie

-Converteste o expresie numerica din simpla precizie in dubla

precizie (creste numarul de zecimale pentru numerele reale

fractionale)

-forma CDBL(expresie numerica)

-exemple PRINT CDBL(1/3)

PRINT CDBL(SQR(3.14))
sau 10 FOR x=1 TO 360

20 PRINT CDBL(2*3.14*15/x);"pentru";x;"grade"

30 NEXT x

40 PRINT "lungimea arcului de cerc de x grade"

-expresii asociate;

nu sint

-96-

CHAIN -enunt

-Transfera controlul unui program memorat pe disc in fisierul

(specificator fisier) de la inceput,sau optional de la linia

avind numarul de linie specificat prin (numar linie) si din

care s-au eliminat liniile specificate prin (domeniu).Optiunea

MERGE actualizeaza efectiv programul curent,pastrind deschise

fisierele si conservind variabilele si functiile definite de

utilizator.Optiunea ALL transfera toate variabilele din pro-

gramul curent in programul tinta.

-forma CHAIN [MERGE](specificator fisier),(numar de linie)

[ALL],DELETE (domeniu)

-exemplu 200 CHAIN "FISIER1",200,ALL

-expresii asociate;nu sint
CHDIR -comanda

-Se schimba directorul curent cu cel indicat (devine activ

catalogul situat in capatul sirului din expresie)

-forma CHDIR(nume traseu)

-exemplu 10 CHDIR "A:\CATALOG1\CATALOG2

devine activ CATALOG2 situat in CATALOG1 pe unitatea A

-expresii asociate;

MKDIR,RMDIR
CHR$ -functie

-Furnizeaza caracterul ASCII al numarului de cod zecimal

specificat.Se foloseste mai ales pentru caracterele programa-

bile introduse de catre utilizator dar si pentru conversia de

coduri numerice (numere de telefon) in cod ASCII (un numar de

telefon format din 9 cifre poate fi codificat prin trei

caractere-de exemplu 104104104 va fi hhh-vezi tabelul de

corespondente).

-forma CHR$(numar intreg)

-exemplu 10 PRINT "Decodifica Alfabetul"

20 INPUT "Un numar da la 1 la 26";a

30 LET b=a+64

40 PRINT CHR$(b)

-expresii asociate;

ASC
CINT -functie

-Converteste valoarea expresiei numerice intr-o valoare intreaga

cu rotunjirea partii fractionare.

-forma CINT(expresie numerica)

-exemple PRINT CINT(83.27)

PRINT CINT(17.536)

10 FOR x=1 TO 20

20 PRINT CINT(x/3)

30 NEXT x

10 FOR x=1 TO 30

20 PRINT CINT(SQR(x))

30 NEXT x

-expresii asociate;

CDBL,CSNG,FIX,INT

-97-

CIRCLE -enunt

-Traseaza un cerc,un arc de cerc sau o elipsa cu centrul

situat in punctul de coordonate (abscisa,ordonata),avind o

raza de (raza),reprezentate in pixeli (pixel=cel mai mic

punct luminos distinct de pe ecran) si calculate de la

unghiul (start) si pina la unghiul (end) exprimate in radiani,

cu culoarea specificata prin (culoare) si cu un raport de

aspect desemnat prin (aspect).(pentru aspect valoarea impli-

cita este de 5/6 si are rostul de a corecta faptul ca un

pixel nu este patrat ci dreptunghiular iar prin utilizarea

expresiei ca atare cercurile au forma de ou).Prin conventie

solicitarea unui unghi negativ implica si trasarea razei.

Unghiurile vor fi in intervalul -2*PI la 2*PI sau multipli

lor.Coordonatele sint absolute sau relative(in optiunea STEP)

-forma
CIRCLE[STEP](abscisa)(ordonata),(raza),(culoare),(start),(end),

(aspect)

-exemplu 10 SCREEN 1

20 COLOR 0,0,3,0

30 CLS

40 CIRCLE(100,120),90

50 CIRCLE(150,130),120

60 CIRCLE(250,120),100

70 PAINT(180,120)

-expresii asociate;

COLOR,SCREEN,PAINT,POINT,PSET,PRESET
CLEAR -comanda

-Readuce la zero toate variabilele numerice,initializeaza cu

caracterul NULL toate variabilele de tip sir,inchide toate

fisierele deschise,elibereaza zonele tampon disc,anuleaza

variabilele comune.Optional se poate preciza si extensia maxima

a segmentului de date GW-BASIC la valoarea specificata prin

parametrul (memorie),precum si spatiul organizat ca stiva si

desemnat prin (stiva).Daca nu se specifica se considera implicit

valorile de 128,(memorie)/8.

-forma CLEAR(memorie),(stiva)

-exemple CLEAR

CLEAR,32768

CLEAR,,2000

CLEAR ,32768,2000

-Observatie;comanda CLEAR va elibera fie intreaga memorie de

program fie doar stiva indicata (un anumit subprogram).Comanda

CLEAR nu sterge toata memoria de operare a calculatorului ci

doar spatiul de memorie din programul BASIC destinat pentru

operatii si variabile.Dupa o comanda CLEAR toate expresiile si

functiile definite prin DEF FN,DEFDBL,DEFUSR revin la valoarea

zero.Se poate utiliza pentru operatii cu seturi diferite de

date care se prelucreaza prin aceleasi functii.
-expresii asociate;

DEF FN,DEFINT,DEFDBL,DEFSNG,DEFSTR,DEFSEG,DEFUSR

-98-

CLOSE -enunt

-Termina operatiile de intrare/iesire pentru fisierul sau

dispozitivul periferic asociat expresiei numerice specificata

prin (numar de canal).Enuntul END si comanda NEW efectueaza

aceeasi operatie dar pentru toate fisierele deschise si pentru

toate liniile de date de intrare/iesire.

-forma -CLOSE(lista nr.canale)

(lista numere canale)::=[#](nr.canal),(lista numere

canale),[#](nr.canal)

-exemplu 100 OPEN "A",#2,"Fisier1":REM-deschide fisier1

........

320 CLOSE #2:REM-inchide fisierul Fisier1

-expresii asociate;

END,NEW,OPEN
CLS -comanda

-Sterge ecranul sau respectiv umple cu culoarea de fond intreaga

arie a ecranului sau aria delimitata prin o fereastra de text

sau o proiectie grafica ce delimiteaza o arie inchisa.Argumentul

n specifica pentru n=0 intregul ecran,n=1 vizorul grafic sau

n=2 fereastra de text.Daca nu se specifica are efect implicit

asupra situatiei curente in ordinea;fereastra text,vizor grafic,

tot ecranul.

-forma CLS (n)

-exemple 10 CLS 0:REM-sterge ecranul

sau 10 CLS 1:REM-umpe vizorul grafic cu culoare de fond

10 CLS 2:REM-umple fereastra text cu culoarea de fond

10 SCREEN 1

20 COLOR 1,2,3,1

30 CIRCLE (100,100),50

40 PAINT (100,100)

50 CLS

60 GOTO 10

-expresii asociate;

SCREEN,VIEW,WIDTH
COLOR -enunt

-Defineste culoarea de fond (prin un numar de la 0 la 31 sau

modulo 15),culoarea pentru caractere,paleta coloristica (prin un

numar de la 0 la 255 sau modulo 2),culoarea desenelor (prin

parametrul color grafic=un numar de la 0 la 3),culoarea caracte-

lor de text(color text)(prin un numar de la 0 la 7) si culoarea de

fond grafic pentru vizorul grafic(fond grafic)(prin un numar de

la 0 la 3).Daca nu se specifica nici un parametru se considera

implicit urmatoarele valori;fond=0,paleta =1,fond grafic=0,color

grafic =3,color text =3.

-forma COLOR(fond),(paleta),(color grafic),(fond grafic),(color

text)

-exemplu

10 SCREEN 1,0

20 REM-Fondul este verde deschis,Paleta 1(cian,magenta,alb)

30 REM-Desenele se traseaza cu magenta pe fond negru

40 COLOR 10,1,2,0:CIRCLE (100,100),50

-expresii asociate; SCREEN

-99-

COLOR -enunt

-Defineste culoarea desenelor si a textului pe un anumit

fond grafic.Pentru desene(color grafic) se folosesc numere

de la 0 la 3 modulo 2 implicit 1,iar pentru caracterele de

text se aplica operatia XOR (sau exclusiv) in raport cu fondul

grafic.

-forma COLOR (color grafic),(fond grafic),(color text)

-exemplu 10 SCREEN 2

20 REM-Deseneaza cu verde pe fond negru

30 COLOR 1,2,3

40 CIRCLE (100,100),50

-Observatie;culorile se definesc diferit pentru fiecare mod

al ecranului specificat prin enuntul SCREEN

-expresii asociate;

SCREEN
COLOR -enunt

-Stabileste culoarea (color=numar de la 0 la 31) pentru carac-

tere grafice si respectiv pentru fond(fond=numar de la 0 la

15 modulo 8).Facultativ se adauga si argumentul (vid) pentru

compatibilitatea cu alte sisteme.Culorile sint:0-alb,1-albastru,

2-verde,3-cian,4-rosu,5-magenta,6-maron,7-alb,8-gris,9-albastru

aprins,10-verde aprins,11-cian aprins,12-rosu aprins,13-magenta

aprins,14-galben,15-alb intens.Adaugarea culorii 16 la aceste

culori provoaca clipirea culorii de baza

-forma COLOR (color),(fond),(vid)

-exemplu 10 SCREEN 0

20 COLOR 5,1,3

30 FOR x=1 TO 10:PRINT TAB(x)x:NEXT x

sau 10 COLOR 24,5

20 PRINT "Test culori editare"

30 PRINT "culori sclipitoare"

-expresii asociate;

SCREEN
COLOR -enunt

-Defineste culoarea implicita a desenelor(color grafic)(expresie

intreaga 0-3 modulo 2;implicit 1),a caracterelor alfanumerice

(color text)(expresie alfanumerica:0-video normal;1-video invers

>1 operatie XOR cu harta de alocare pe ecran)pe un (fond grafic)

(expresie numerica 0-1);implicit 0)

-forma SCREEN(color grafic),(fond grafic),(color text)

-exemplu 10 SCREEN 3

20 REM-Deseneaza cu negru pe fond alb cu video invers

30 REM pentru text

40 COLOR 0,1,0

50 PRINT "TEST PENTRU EDITARE"

-Observatie;modul ecran SCREEN 3 nu este prezent pentru toate

tipurile de procesor si nici pentru toate tipurile de display

sau de momitor color.Daca nu dispuneti de moduri ecran cu

valoare mai mare de 2 va limitati la cele trei moduri descrise

anterior (SCREEN 0-2).

-expresii asociate;

SCREEN

-100-

COM -enunt

-Activeaza prin ON sau dezactiveaza prin OFF intreruperea datorata

unui eveniment extern pe canalul (nr.canal)(expresie intreaga 1-4).

La unele placi de extensie exista si un intrerupator mecanic cu

acelasi scop;deschuderea sau inchiderea comunicatiilor pe un

anumit canal.Expresia STOP suspenda (amina) comunicatiile pe acel

port (semnalul va fi primit cu o intirziere prestabilita).

-forma COM (numar canal)[ON] sau [OFF] sau [STOP]

-exemplu 10 REM-activare intrerupere comunicatie pe canal 2

20 COM (2) ON

determina deschiderea canalului 2 de comunicatie

-expresii asociate;

ON COM...GOSUB
COMMON -enunt

-Desemneaza o lista de variabile numerice sau de tip sir care

vor fi comune pentru mai multe programe in limbaj GW-BASIC si

inlantuite prin CHAIN.Astfel(de exemplu) mai multi utilizatori

din retea pot utiliza aceeasi baza de date.Variabilele tip

masiv de date sint specificate prin '()'.Declaratia are loc

numai in programul apelant,care obligatoriu le va si initializa

dar in programul apelat se vor insera eventualele enunturi de

definire explicita a tipului de variabila (DEFINT,DEFSNG,DEFDBL,

DEFSTR).

-forma COMMON (lista de variabile)

-exemplu 10 REM PROG1

20 DEF DBL C

30 DIM A%(2)

40 COMMON A%(),B%,C

50 LET A%(1)=5

60 LET A%(2)=17

70 LET C=3.145967

80 LET B%=23

Yüklə 1,91 Mb.

Dostları ilə paylaş:
1   ...   9   10   11   12   13   14   15   16   ...   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