|
|
səhifə | 14/20 | tarix | 06.08.2018 | ölçüsü | 1,91 Mb. | | #67460 |
| 90 CHAIN "PROG2"
100 END
10 REM PROG2
20 DEF DBL C
30 PRINT A%(2);B%;C
40 END
-expresii asociate;
DEF FN,DEF INT,DEF SNG,DEF DBL,DEF STR
CONT -comanda
-Reia un program intrerupt prin STOP sau CTRL/BREAK sau prin END
din punctul de intrerupere
-forma CONT
-exemplu 10 INPUT "Introduceti doua numere";x,y
20 LET PRODUS=x*y
30 STOP
40 PRINT "Produsul lor este=";PRODUS
50 GOTO 10
RUN si apoi CONT
-expresii asociate;
END,STOP
-101-
COS -functie
-Calculeaza cosinus din expresia numerica considerind valoarea
unghiului in radiani.
-forma COS(expresie numerica)
-exemple PRINT COS(3.14)
5 SCREEN 2:COLOR 5,15:CLS
10 FOR x=0 TO 13 STEP 6.3/360
20 LET A=INT(50*x)
30 LET B=COS(x)
40 LET C=INT(50*B)
50 PSET (A,-C)
60 NEXT x
-expresii asociate;
SIN
CSNG -functie
-Converteste valoarea argumentului numeric (partea zecimala) a
unei expresii numerice intr-un numar scris in simpla precizie (cu
mai putine zecimale)
-forma CSNG(expresie numerica)
-exemplu 10 LET A#=454.6700134277344
20 PRINT A#;CSNG(A#)
-expresii asociate;
CDBL,CINT
CSRLIN -functie
-Furnizeaza o valoare intreaga in domeniul 1-25 reprezentind
numarul liniei pe care se afla cursorul.(pentru SCREEN 0 )
-forma CSRLIN
-exemplu 10 REM Se va determina pozitia curenta a cursorului
20 REM Se va scrie un mesaj pe prima linie
30 REM Se va restaura apoi cursorul
40 LET x=CSRLIN
50 LET y=x+10
60 LOCATE 1,1
70 PRINT "Terminalul este la dispozitia d-voastra"
80 LOCATE x,y
90 PRINT "Sfirsit"
-expresii asociate;
LOCATE,POS
CVI -functie
-Converteste un sir de doua caractere intr-o valoare intreaga.
-forma CVI(char 2)
-exemplu 100 FIELD#1,2 AS X$
110 GET#1
120 LET x%=CVI(X$)
-102-
sau 10 LET A$="asdfghjk"
20 LET B$="a1234567FHK"
30 LET C$=A$+B$
40 LET x=CVI(C$)
50 PRINT x
-expresii asociate;
MKI,MKD,MKS,CVD,CVS
CVD -functie
-Converteste sirul de opt caractere numerice (char) intr-un numar
real in dubla precizie.
-forma CVD(char 8)
-exemple 100 FIELD#1,8 AS X$
110 GET#1
120 X#=CVD(X$)
sau 10 LET A$="1"
20 LET B$="3"
30 LET C$="9"
40 LET D$="13"
50 LET E$="7"
60 LET F$="5"
70 LET G$="11"
80 LET H$="12"
90 LET Z$=A$+B$+C$+D$+E$+F$+G$+H$
100 PRINT Z$
110 PRINT CVD(Z$)
-expresii asociate;
MKI,MKD,MKS,CVI,CVS
CVS -functie
-Converteste sirul de patru caractere numerice (char 4) intr-un
numar real in simpla precizie.
-forma CVS(char 4)
-exemple 100 FIELD#1,4 AS X$
110 GET#1
120 LET X=CVS(X$)
sau 10 LET A$="1"
20 LET B$="CJ"
30 LET C$="9"
40 LET D$="COM7"
50 LET W$=A$+B$+C$+D$
60 PRINT W$
70 PRINT CVS(W$)
-expresii asociate;
MKI,MKD,MKS,CVI,CVD
DATA -enunt
-Creeaza sau extinde un fisier format dintr-un numar de constante
care pot fi numere sau caractere alfanumerice.In unele variante
de program,constantele pot fi caractere grafice sau blocuri
numerice care definesc ariii grafice (se utilizeaza pentru desene
animate,jocuri pe calculator sau proiectare grafica).Datele din
fisier se citesc cu instructiunea READ care contine parametrii
utilizati pentru citirea datelor.Instructiunile(enunturile)DATA
-103-
pot fi situate in program la orice nivel,fie precedate,fie urmate
de instructiunea READ,se pot adauga oricind noi date (ajustind si
instructiunea READ pentru citirea lor) si pot fi citite de mai
multe ori intr-un program utilizind enuntul RESTORE.
-forma DATA (lista de constante)
-exemplu 10 PRINT "NUME","PRENUME","VIRSTA"
20 READ A$,B$,V%
30 DATA "DUMITRASCU,","LIVIU",40
40 PRINT A$,B$,V%
sau 10 DATA 1,56,7,4,3,33,66,25
20 FOR x=1 TO 8
30 READ a
40 PRINT a
50 NEXT x
sau 10 DATA 1,"CJ",7,"B",13,"OT",17,"CT",25,"BV"
20 FOR x=1 TO 5
30 READ A
40 READ A$
50 PRINT A,A$
60 NEXT x
70 END
-Observatie;pentru cifre variabila se defineste cu o litera oare-
care in timp ce pentru caracterele alfanumerice grafice se vor
utiliza pentru identificarea variabilelor litere+semnul $ iar in
instructiunea data se vor introduce intre ghilimele.Pentru a
adauga date noi la un fisier,se adauga in program o linie de
adresa cu enuntul DATE si datele dorite si se modifica si enuntul
READ atfel incit sa cuprinda si noile date pentru citire.
-expresii asociate;
READ,RESTORE
DATE$ -functie
-Afiseaza data din sistem sub forma unui sir de 10 caractere de
tip ll-zz-aaaa (luna-ziua-anul)
-forma (variabila sir)=DATE$
-exemple PRINT DATE$
10 LET x$=DATE$
20 PRINT x$
DATE$ -enunt
-Modifica data sistemului.Se introduce intre ghilimele sub forma
ll-zz-aaaa adica luna-ziua-anul.
-forma DATE$=(expresie sir)
-exemplu DATE$="01-01-2002"
verificati prin PRINT DATE$
-Observatie;unele variante de BASIC permit operatii cu datele
calendaristice de genul "Cite zile au trecut da la data 1 si
pina la data 2 ?" sau "ce data va fi peste 40 de zile ?" dar la
majoritatea trebuie scris un mic program pentru astfel de opera-
tii.Programele obisnuite calculeaza si ce zi a saptaminii va fi
in data de ll-zz-aaaa.
-expresii asociate;
nu sint
-104-
DEF FN -enunt
-Defineste o functie care se va identifica in continuare prin
o variabila (nume),care are o lista de argumente (argumente
formale)(variabila functiei) si o valoare a expresiei functiei
(expresie).Trebuie sa existe o concordanta intre numele functiei
si tipul de operatii pe care le executa (operatii cu numere sau
operatii cu caractere alfanumerice).Pentru desemnarea sirurilor
de variabile alfanumerice se vor utiliza litere+$.
-forma DEF FN(nume),(argumente formale)=(expresie)
-exemple 10 DEF FN A(x)=x*y
20 FOR n=1 TO 5
30 FOR y=3 TO 7
40 PRINT FN A(n);
50 NEXT y
60 NEXT n
sau 10 DEF FN TANG(x)=SIN(x)/COS(x)
20 LET A=0.785395
30 PRINT FN TANG(A)
sau
10 DEF FN a$(x)=B$+C$
20 READ B$+C$
30 DATA "abcde","XYZ"
40 PRINT FN a$(x)
50 PRINT FN a$(x)+FN a$(x)
DEF SEG -enunt
-Defineste segmentul curent folosit pentru memorarea datelor.
Adresa segmentului curent GW-BASIC este la valoarea 16*
(adresa)(expresie numerica intreaga de la 0 la 65535) iar
daca nu se specifica nici o valoare,implicit se considera
segmentul rezervat pentru date din programul GW-BASIC. Se
va utiliza cu maximum de atentie deoarece se pot introduce
datele la o adresa la care va sterge date din program si
va duce la defectarea programului.Pentru incepatori este
bine ca inainte de utilizarea ei sa se asigure ca au cel
putin o copie a programului si a datelor din memorie,in caz
de scriere la o adresa eronata.Inainte de a trimite date la
un anumit segmant este bine de verificat cu PEEK ce date se
gasesc la adresa respectiva.
-forma DEF SEG=(adresa)
-exemplu 10 LET A$=PEEK(&HB800)
20 PRINT A$
apoi 10 DEF SEG=&HB800
20 POKE &HB800,&HFA
apoi se poate verifica cu PEEK daca octetul a fost
scris la adresa indicata (exemplul este ales la
intimplare nu se recomanda a fi executat )
-Observatie;la toate operatiile la care se efectueaza opera-
tii asupra memoriei cu comenzi definite de utilizator se
recomanda maximum de prudenta pentru a nu modifica programul
neintentionat(copie de siguranta).
-expresii asociate;
BLOAD,BSAVE,CALL,DEF USR,PEEK,POKE
-105-
DEF USR -enunt
-Permite accesul la o subrutina definita de catre utilizator
in limbaj masina si denumita USR(n) unde n este un numar de
la 0 la 9 iar ecart este un numar de linie de la 0-65535
reprezentind adresa la care se va scrie subrutina dorita.
Pentru apelarea subrutinei se solicita doar functia si
numarul sau de identificare.
-forma DEF USR (n)=(ecart)
-exemplu
10 DEF USR 1=100
........
100 USR 1="00000000"
110 USR 2="00000000"
120 USR 3="00000010"
140 USR 4="00111100"
150 USR 5="01010100"
160 USR 6="01010100"
170 USR 7="00010100"
180 USR 8="00000000"
sau 100 DEF SEG=&H8000
110 DEF USR1=0
120 LET x=5
130 PRINT USR1(x)
-Observatie;pentru apelare se va utiliza USR(n) respectiv
USR 1 in exemplul de mai sus.
-expresii asociate;
USR
DEFINT -enunt
-Declara ca intreg variabilele al caror nume incepe cu litera
respectiva sau cu o litera din intervalul de litere precizat
prin instructiune.
-forma DEFINT(litera)
sau DEFINT (litera1-litera2)
5 DEFINT N
-exemple 10 LET NUMAR=3.14235
20 LET cifra=2.4
30 LET N=12.4567
40 LET NUMERIC=15.897
60 PRINT NUMAR,cifra,N,NUMERIC
70 DEFINT B-P
80 PRINT NUMAR,cifra,N,NUMERIC
-expresii asociate;
DEFDBL,DEFSNG,DEFSTR
DEFDBL -enunt
-Declara ca numar real exprimat in dubla precizie (cu maximum de
zecimala) variabila sau variabilele al caror nume incepe cu
litera specificata sau cu orice litera situata in interiorul
intervalului definit.
-forma DEFDBL(litera) sau DEFDBL(litera1-litera 2)
-exemplu idem ca mai sus dar fara DEFINT si cu 5 DEFDBL B-P
-expresii asociate;DEFINT,DEFSNG,DEFSTR
-106-
DEFSNG -enunt
-Declara ca numar real in simpla precizie variabilele al
caror nume incepe cu litera specificata sau cu o litera din
intervalul specificat.
-forma DEFSNG (litera)
DEFSNG (litera1-litera2)
-exemplu 10 REM Defineste ca reale simpla precizie
20 REM variabilele al caror nume incepe cu F,G,H
30 DEFSNG F-H
40 LET G=3.14
50 PRINT G
-expresii asociate;
DEFINT,DEFDBL,DEFSTR
DEFSTR -enunt
-Declara ca variabile tip sir orice variabila al carei nume
incepe cu litera specificata sau respectiv cu o litera din
intervalul de litere specificat.
-forma DEFSTR (litera)
DEFSTR (interval de litere)
-exemplu 10 REM Defineste ca variabila sir toate variabilele
20 REM al caror nume incepe cu M,N,O,P,Q
30 DEFSTR M-Q
40 LET P=3.14*7/3
50 PRINT P$
-expresii asociate;
DEFINT,DEFDBL,DEF SNG
DELETE -enunt
-Determina stergerea din program a liniei cu numarul specificat
sau a liniilor din intervalul specificat.
-forma DELETE (linie)
DELETE (interval)
-exemple DELETE -60 Sterge liniile pina la 60 inclusiv
DELETE 75 Sterge linia 75
DELETE 120-130 Sterge intervalul 120-130 inclusiv
DELETE 165- Sterge toate liniile dupa linia 165
-expesii asociate;
nu sint
DIM -enunt
-Specifica un tablou de elemente denumit (nume tablou) care are
dimensiunile desemnate prin (lista limite),fiecare dimensiune
avind o limita superioara.Limita inferioara este data de un anunt
OPTION BASE(implicit 0).Elementele numerice sint initializate cu
0 iar elementele sir cu caracterul NULL.
-forma DIM (nume tablou)(lista de limite)
-exemplu 10 OPTION BASE 1:DIM A%(10,10)
20 FOR x=1 TO 10:FOR y=1 TO 10
30 LOCATE x,y:PRINT "*"
40 FOR w=1 TO 500:NEXT w
50 NEXT y:NEXT x
-expresii asociate;
DEFINT,DEFDBL,DEFSNG,DEFSTR,OPTION BASE
-107-
DRAW -enunt
-Traseaza o imagine specificata prin comenzile GML (expresie sir)
-forma DRAW (expresie sir)
Comenzile limbajului GML:
U[n] -Deplasare spot in sus cu (n*factor scara) puncte
D[n} -Deplasare spot in jos cu (n*factor scara) puncte
L[n] -Deplasare spot la stinga cu (n*factor scara) puncte
R[n] -Deplasare spot la dreapta cu (n*factor scara) puncte
E[n] -Deplasare spot SV-NE cu (n*factor scara) puncte
M x,y -Deplasare spot intr-o pozitie exprimata prin x si y
sau exprimata relativ la x si y daca acestea sint
precedate de semnul (+) sau (-)
B -Deplasare fara trasare
N -Deplasare in pozitia initiala
A(n) -Rotatia figurii cu n*90 de grade unde n=un nr.(0-3)
TA(n) -Rotatia figurii cu n grade,unde n este un numar intreg
cuprins intre -360 si 360
C(n) -Stabilirea culorii prin n= 0-3 pentru rezolutie medie
si 0-1 pentru rezolutie mare si foarte mare
S(k) -Stabileste un factor de scara egal cu 1/4 din k unde
k ste un numar intreg intre 1 si 255
P n,m -Alegerea unei culori pentru interiorul figurii (n) si
a unei culori pentru contur (m).n si m sint numere 0-3
pentru rezolutie medie si 0-1 pentru rezolutie mare
X(expresie subsir) -Executarea comenzilor GML din subsir.
In limbajul GML exista urmatoarele exprimari:
(comanda GML)(valoare numerica)[;]
(comanda GML)=(nume variabila);
-exemplu
10 REM Trasare patrat
20 SCREEN 1
30 LET X=30
40 DRAW "U=X;R=X;D=X;L=X";
10 REM Traseaza un triunghi
20 SCREEN 1
30 DRAW "BM10,10M35,60M60,5M10,10"
-expresii asociate;
SCREEN
EDIT -comanda
-Permite modificarea liniei cu numarul specificat.Fie se
rescrie intreaga linie,fie se adauga sau se sterg din
caractere si apoi se confirma modificarile apasind
tasta ENTER.Daca nu se opereaza modificari linia va
ramine neschimbata .Pentru stergerea completa a unei linii
intregi este mai simplu sa se editeze numarul de linie fara
nici un caracter si sa se apese ENTER.
-forma EDIT (numar de linie)
-exemplu EDIT 310
310 LET A=B*C
ENTER
se verifica editarea corecta cu LIST
-expresii asociate;
nu sint
-108-
END -comanda
-Determina terminarea executiei programului si revenirea la
nivelul de comanda.
-forma END
-exemplu 10 INPUT x
20 IF x<5 GOTO 30 ELSE END
30 PRINT "START PROGRAM"
-expresii asociate;
nu sint
ENVIRON -enunt
-Modifica tabelul sirurilor de definire a mediului GW-BASIC
potrivit expresiei sir(parametru) care este de forma:
a)identificator parametru=text(modificarile parametrului)
b)identificator parametru=; (sterge parametrul)
-forma ENVIRON (parametru)
-exemplu 10 REM Modifica accesul la un fisier
20 ENVIRON "PATH=A:SERVICIU;A:COLECTIV"
-Observatie;modificind ("personalizind") lista de comenzi a
programului (meniul) se pot pierde din functiile esentiale
ale programului.Este bine ca astfel de modificari sa nu se
faca la intimplare,sa se verifice daca exista spatiu suficient
pentru noile comenzi,sa se verifice rezultatul aplicarii lor
asupra datelor si mai ales sa se noteze undeva toate modifi-
carile facute pentru a putea reveni la forma initiala (este
bine sa se pastreze si o copie de siguranta a programului ).
-expresii asociate;
ENVIRON$
ENVIRON$ -functie
-Permite utilizarea de variabile sir pentru identificarea
unui parametru de mediu al sistemului (programului).Determina
regasirea valorilor lui prin (identificator parametru) sau al
parametrului de rang n (n este un numar de la 1-255).Termenul
de parametru de mediu se refera la parametrii sistemului DOS
(vezi sistemul DOS)
-forma ENVIRON$(identificator parametru)ENVIRON (n)
-exemplu 10 LET A$=ENVIRON$("PATH")
-expresii asociate;
ENVIRON
EOF -functie
-Sfirsit de fisier.Marcheaza sfirsitul unui fisier.La citirea sa
programul returneaza valoarea "adevarat"(1) daca s-a indeplinit
conditia de " sfirsit de fisier " sau un mesaj de eroare daca
se solicita operatii imposibile cum ar fi;
-fisiere secventiale:tentativa de citire dupa marca de fisier
-fisiere aleatoare:tentativa de citire dupa sfirsitul logic
-fisiere de comunicatii ASCII:caracter CTRL/Z citit
-fisiere de comunicatii binare:coada de intrare vida.
-Observatie;A nu se confunda cu END.Este absolut indispensabil
pentru operatiile cu fisiere (citire din memorie,copiere,rede-
numire,deplasare in alta zona de memorie etc.)Se poate utiliza
pentru a solicita salt peste limita unui fisier si citirea unui
-109-
alt fisier sau se poate utiliza pentru activarea unui program dupa
citirea unui fisier.
-exemplu 10 REM Citire valori din fisierul FISIER1
20 OPTION BASE 1
30 DIM M (20)
40 OPEN "I",2,"FISIER1"
50 LET I=1
60 IF EOF(2) THEN 250
70 ..........etc
-expresii asociate;
LOC,OPEN
ERASE -enunt
-Elibereaza spatiul utilizat pentru numele masivelor din (lista
de masive) ca si pentru elementele acestora.Cu alte cuvinte,
sterge un catalog(folder) sau un bloc de fisiere.
-forma ERASE (lista de masive)
-exemplu 10 DIM X(20,30),Y(45)
.....................
200 ERASE X,Y
210 DIM X(100),Y(10,30,5)
ERDEV -functie
-Furnizeaza o valoare intreaga ce contine codul de eroare
depistat de ultimul dispozitiv ce a semnalat o eroare.Bitii
superiori (13-15) sint biti atribute cuvint din blocul de antet
al dispozitivului,iar bitii inferiori (0-7) codul de intrerupere
X'24'MS-DOS.
-forma ERDEV
-exemplu se solicita unitatea B fara discheta FILES "B:"
apare "Disk not ready"
iar pentru PRINT ERDEV,ERDEV$
apare 2 B:
-Observatie;ERDEV retine codul de eroare generat de o intrerupere
in circuitul semnalului (INT 24)
5>
Dostları ilə paylaş: |
|
|