|
programarea cuprinzind un numar mare de variabile si un numar mare de
|
səhifə | 13/20 | tarix | 06.08.2018 | ölçüsü | 1,91 Mb. | | #67460 |
| 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
Dostları ilə paylaş: |
|
|