|
|
səhifə | 15/20 | tarix | 06.08.2018 | ölçüsü | 1,91 Mb. | | #67460 |
| -expresii asociate;
ERDEV$
ERDEV$ -functie
-furnizeaza un sir de 8 caractere ce reprezinta numele dispozi-
tivului caracter la care s-a semnalat ultima eroare,sau un sir
de 2 caractere ce reprezinta numele blocului nume dispozitiv
(daca dispozitivul este un disc denumit Sega-xxx de exemplu)
-forma ERDEV$
-exemplu vezi mai sus
-expresii asociate;
ERDEV
ERL -functie
-Restitue o valoare intreaga reprezentind numarul liniei la care
s-a depistat eroarea.(exemplu IF ERR THEN PRINT ERL)
-forma ERL
-exemplu 10 INPUT x,y:IF x>y THEN ERR
20 IF ERR THEN PRINT ERL
-110-
-expresii asociate;
ERR,ERROR,ON ERROR
ERR -functie
-Restitue un numar reprezentind numarul codului de eroare depistat
-forma ERR
-exemplu IF ERR=x THEN.....y
-Observatie;codul extins de mesaje de eroare are valori cuprinse
intre 1 si 255.
-expresii asociate;
ERL,ERROR,ON ERROR
ERROR -functie
-Simuleaza aparitia unei erori cu numarul specificat (coderoare)
Daca la numarul respectiv (de la 1 la 255) nu corespunde un
mesaj de eroare va apare mesajul "Unprintable error".
-forma ERROR (coderoare)
-exemple 10 INPUT x
20 IF x>20 THEN PRINT ERR 15
-Observatie;vezi tabelul cu lista de erori
-expresii asociate;
ERL,ERR,ON ERROR
EXP -functie
-Calculeaza e la puterea (expresie numerica) unde e=2,7182818 este
o constanta ce reprezinta baza logaritmilor naturali.
-forma EXP(expresie numerica)
-exemplu PRINT EXP(1)
sau 10 LET x=5
20 PRINT EXP(x-1)
-expresii asociate;nu sint
FIELD -enunt
-Defineste o inregistrare din memorie ce contine un numar de
cimpuri (suprafete grafice sau ferestre de ecran) care se
identifica prin o variabila tip sir denumita(lista cimpuri)
si care se situeaza intr-un fisier identificat prin (numarfis)
Fiecare cimp are o lungime specificata prin (lungime).Lungimea
totala nu trebuie sa o depaseasca pe cea definita prin enuntul
OPEN pentru deschiderea fisierului.
-forma FIELD[#](numarfis)(lista de cimpuri)
cu
(lista cimpuri)::=(cimp)|(lista cimpuri),(cimp)
(cimp)::=(lungime)AS(varsir)
-exemplu 10 REM Inregistrare de 32 octeti in FISIER
20 OPEN "R",#1,"A:FISIER1",32
30 FIELD#1,2 AS NrSAL$,30 AS FILLER$
40 FIELD#1,25 AS NUME$,7 AS RETRIB$
50 GET#1:REM-Citire inregistrare
60 LET NRPERS%=CVI(NrSAL$)
70 FOR I%=1 TO NRPERS%
80 GET #1,I%
90 PRINT NUME$,CVS(RETRIB$)
100 NEXT I%
-expresii asociate;GET,LSET,PUT,RSET
-111-
FILES -comanda
-Determina afisarea numelui complet al unor fisiere din cata-
logul curent sau specificat in mod explicit,utilizind expresiile
sir(specificator fisier)
-forma FILES(specificator fisier)
-exemplu afisare de fisiere de pe unitatea A
FILES "A:"
afisare fisiere tip BASIC in catalogul curent
FILES "*.BAS"
afisare subcatalog FILA10 din catalog FISIER
FILES"\FISIER\FILA10
-expresii asociate nu sint
FIX -functie
-Calculeaza partea intreaga trunchiata a argumentului real din
expresia numerica.
-forma FIX(expresie numerica)
-exemple PRINT FIX(67.512)
-expresii asociate;nu sint
FOR...NEXT -enunt
-Executa setul de enunturi ce urmeaza dupa FOR pina la NEXT
atit timp cit valoarea variabilei este cuprinsa in intervalul
definit prin variabila de control cu o valoare initiala si
o valoare finala,dupa care trece la instructiunile ce urmeaza
dupa NEXT.Se potmutiliza mai multe bucle FOR...NEXT cu condi-
tia ca fiecare bucla sa fie completa.Buclele FOR...NEXT pot fi
cuprinse una in cealalta cu conditia ca ultima bucla deschisa
sa se inchida prima,apoi penultima ,apoi celelalte in ordine
inversa celei prin care au fost deschise.Facultativ operatiile
se pot executa cu salt din valoare in valoare,salt care se
precizeaza prin STEP.Saltul poate fi si negativ (descrescator)
Daca nu se precizeaza (incrementul)se considera implicit 1.
-forma FOR(variabila control)=(valoare initiala)TO (valoare
finala)STEP(increment)
-exemplu 10 CLS:SCREEN 1
20 DIM A(20,20)
30 FOR X=1 TO 20
40 FOR Y=1 TO 20
50 LOCATE X,Y
60 PRINT X
70 LOCATE X,X
80 PRINT Y
90 LOCATE Y,X
100 PRINT Y
110 LOCATE Y,Y
120 PRINT X
130 FOR w=1 TO 500:NEXT w
140 NEXT Y
150 NEXT X
-expresii asociate;
nu sint
-112-
FRE -functie
-Afiseaza numrul de octeti liberi din memorie.Argumentul (vid)
se referea initial la memoria nescrisa si are ca scop pastrarea
caracterului de functie.La versiunile mai noi,spatiul de memorie
se citeste dupa diverse conventii de citire si nu are nici o
legatura cu memoria fizica reala.Se utilizeaza dupa scrierea
mai multor programe pentru a verifica spatiul ramas.
-forma FRE (vid)
-exemplu PRINT FRE(0)
-expresii asociate nu sint
GET -enunt(pentru fisiere de comunicatii)
-Citeste un numar de octeti egal cu (lungime) in zona tampon de
comunicatii asociata la (numar canal).Valoarea (lungime) nu poate
depasi pe aceea declarata la enuntul OPEN pentru fisierul (numar
fisier).
-forma GET[#](numar canal),(lungime)
-exemplu 10 REM Deschide canal comunicatii 1,viteza 9600,
15 REM 1 BIT STOP,8 BITI DATE in mod BINAR
20 OPEN "COM 1:9600,N,1 BIN" AS #2
30 GET#2,80
-Observatie;exemplul de mai sus va prelua pe canalul 2 un sir de
80 de octeti (80 de linii de adresa) reprezentate in
cod BINAR la care bitul de STOP este 1 (la citirea
valorii 1 in cod binar se opreste citirea).Se aseamana
cu comanda READ dar citeste rinduri intregi sau chiar
secvente de program si subprograme.
-expresii asociate;
OPEN(varianta COM)
GET -enunt(pentru fisiere aleatoare)
-Citeste inregistrarea cu numarul(numar de inregistrare) din
fisierul (numar de canal)intr-o zona tampon descrisa prin FIELD.
Daca este omis numarul de inregistrare (numar de la 1 la 16777216)
se citeste inregistrarea imediat urmatoare celei curante.Pentru
a afla continutul inregistrarii preluate se va utiliza FIELD,
INPUT# sau INPUT LINE#.Se recomanda si testarea conditiei de
sfirsit de fisier cu functia logica EOF.
-forma GET[#](numar canal),(numar inregistrare)
-exemplu 5 PRINT "NR.CRT","NUME-PRENUME","RETRIBUTIE"
10 OPEN "R",1,"PERS",32
15 FIELD 1,2 AS NRSAL$,30 AS FILLER$
20 FIELD 1,25 AS NUME$,7 AS RETRIB$
25 GET 1
30 LET NR=CVI(NRSAL$)
35 FOR J=1 TO NR
40 GET 1,J
50 PRINT J,NRSAL$,RETRIB$
60 NEXT J
65 CLOSE 1
70 END:REM citeste si afiseaza datele din fisierul R
-expresii asociate;
EOF,FIELD,INPUT,INPUT LINE,OPEN,PUT
-113-
GET -enunt(pentru imagini grafice)
-Permite transferul unor imagini grafice sub forma de dreptunghi-
uri cu laturile paralele cu marginile ecranului si localizate la
coordonatele x1,y1 pentru NE si x2,y2 pentru SV (delimiteaza
colturile dreptunghiului de imagine).Datele se preiau dintr-un
masiv (catalog)de tip intreg caracterizat astfel;
dimensiunea masivului in octeti este
4+INT((x*bpp+7)/8)*y
unde -bpp(biti per pixel)=1(rezolutie mare)
=2(rezolutie medie)
-x=dimensiunea in puncte pe orizontala
-y=dimensiunea in puncte pe verticala
Fiecare rind de elemente de imagine(fiecare octet) este
aliniat stinga la limita de octet (octetii se citesc de
la stinga la dreapta)
-forma generala
GET[STEP](x1,y1)-[STEP](x2,y2),(masiv)
-exemplu 290 DIM M(20)
300 GET(31,74)-(41,62),M
-Observatie;dupa citirea datelor din fisier,pentru executarea lor
si afisare se va utiliza PUT.
-expresii asociate;
PUT
GOSUB...RETURN
-enunt
-Transfera controlul la o subrutina care incepe la linia de adresa
specificata.RETURN determina iesirea din subrutina si revenirea
la linia imediat urmatoare enuntului GOSUB sau la o linie specifi-
cata prin RETURN(nr.linie) care nu face parte din subprogram (sa
nu se formeze o bucla inchisa de operatii).Inainte de aparitia
expresiei RETURN,toate operatiile pentru FOR...NEXT,WHILE,GOSUB
din subprogram trebuie sa fie rezolvate.
-forma GOSUB (numar de linie 1)
.........
RETURN (numar de linie 2)
-exemplu 10 GOSUB 40
20 PRINT "Revenire din subprogram"
30 END
40 PRINT "Intrare in subprogram"
50 FOR x=1 TO 10
60 PRINT x:NEXT x
70 RETURN
-expresii asociate;nu sint
GOTO -enunt
-Transfera controlul la linia indicata
-forma GOTO (numar de linie)
-exemplu 10 PRINT "Pentru oprire apasati q"
20 IF INKEY$="q" THEN END
30 FOR x=1 TO 10:PRINT x;:NEXT x:GOTO 40
40 FOR y=1 TO 10:PRINT "*";:NEXT y:GOTO 20
-expresii asociate;nu sint
-114-
GWBASIC -comanda DOS
-Initializeaza programul GW-BASIC.Optional se poate incarca
si executa doar un fisier din program identificat prin
expresia (identificator fisier) care incepe la adresa(stdin)
si se termina la adresa (stdout).Se poate fixa o limita
pentru numarul de fisiere deschise simultan (nr.canal)si
spatiul din memoria de RAM utilizat pentru citirea datelor
(max 128)si 32.767 octeti.Optiunea D indica incarcarea
rutinelor pentru functiile transcendente(ATN,COS,EXP,LOG,
SIN,SQR,TAN) in dubla precizie (consuma 3000 octeti supli-
mentari).Optiunea /I aloca spatiu suplimentar pentru operatii
cu fisiere (redenumire sau alipire sau deplasare de fisiere)
iar /M(high) aloca 64 de octeti de spatiu suplimentari pentru
a permite incarcarea datelor (high-incepind cu coltul stg,
sus a ecranului) iar (blocsize) rezerva spatiu suplimentar
pentru incarcarea de alte programe in BASIC prin intermediul
SHELL (implicit are valoarea &H1000).Argumentul (bufsiz) are
sens doar pentru comunicatii prin RS232(precizeaza zona de
tampon pentru cartela).In lipsa parametrilor se va incarca
programul cu parametrii impliciti (optimi).
-forma generala
GWBASIC(specificator fisier)(stdin)(stdout)
/F:(numar canal)/S:(maxbuf)/C:(bufsiz)
/M:(high),(blocsiz)/D/I
-exemplu pentru 4 fisiere si 32K memorie
A>GWBASIC/F:4/M:32768
-Observatie;desi este o comanda DOS, parametrii de citire
pentru sistemul DOS (citi biti se citesc pentru fiecare ca-
racter si cite caractere formeaza un rind) se precizeaza
prin alta comanda (daca sistemul DOS identifica titlul
programului se presupune ca parametrii alesi sint corecti).
Exista si variante de program care necesita o anumita confi-
guratie software si hardware dar acestea nu sint pentru uz
curent.Pentru uz curent se utilizeaza F pentru a caracteriza
fisierele si M pentru a caracteriza memoria utilizata.
-expresii asociate;
INPUT,LINE INPUT,PRINT,SHELL
HEX$ -functie
-Transcrie un caracter din cod zecimal in cod hexazecimal.In
prealabil are loc rotunjirea expresiei si in caz ca valoarea
este negativa are loc determinarea formei complementului fata
de 2.
-forma HEX$(expresie numerica)
-exemplu 10 INPUT "Introduceti un numar";n
20 PRINT n;"Zecimal este ";HEX$(n);" Hexazecimal"
30 GOTO 10
-Observatie;numerele negative acceptate trebuie sa fie mai mari
decit 32678 iar cele pozitive sa fie mai mici decit 65535.Se
observa ca domeniul de valori cuprinde de fapt numerotarea
(formatarea) memoriei programului (numarul maxim de linii de
adresa acceptate).(vezi tabelul de corespondente)
-expresii asociate;OCT$
-115-
IF...GOTO...ELSE
-enunt
-Evalueaza conditia care urmeaza dupa IF si deca este adevarata
executa saltul indicat prin GOTO iar in caz contrar executa
operatia indicata dupa ELSE.
-forma IF(conditie)GOTO(numar linie)ELSE(varianta)
cu (varianta)::=(lista enunturi)|(numar linie)
(lista enunturi)::=(enunt)|(lista enunturi):(enunt)
-exemplu 10 INPUT "Un numar";a
20 IF a=33777 GOTO 30 ELSE GOTO 10
30 PRINT "START PROGRAM"
-Observatie;ELSE este facultativa.Daca lipseste si conditia din
IF nu este indeplinita atunci programul trece la
instructiunea urmatoare.
-expresii asociate;
IF...THEN...ELSE
IF...THEN...ELSE
-enunt
-Evalueaza conditia precizata prin IF si daca este adevarata
executa operatia precizata prin THEN iar in caz contrar pe cea
precizata prin ELSE.ELSE este facultativa si in caz ca lipseste
si conditia din IF nu este indeplinita programul trece la linia
urmatoare.
-forma IF(conditie)THEN(varianta 1) ELSE (varianta 2)
-exemplu 10 FOR x=1 TO 5
20 INPUT "Introduceti un numar";n
30 LET y=3
40 IF n<10 THEN LET n=n+y ELSE LET n=n-y
50 CLS:PRINT "Numarul ales este;";n
60 NEXT x
-expresii asociate;
IF...GOTO...ELSE
INKEY$ -functie
-Permite introducerea de date de la tastatura.Daca se introduce
un caracter ASCII standard se restituie utilizatorului un sir
de 1 octet cuprinzind acel caracter.Daca s-a tastat o cheie
functionala,sau o combinatie de chei se restituie un sir de
doua(sau mai multe) caractere primul fiind NULL si urmatorul
codul extins al tastei.Daca nu s-a tastat nici un caracter se
returneaza un sir continind caracterul NULL.
-forma INKEY$
-exemple 10 LET A$=INKEY$
20 PRINT A$
30 GOTO 10
apasati orice tasta (ESC pt STOP)
sau 10 LET a$=INKEY$
20 FOR x=1 TO 1000:NEXT x
30 PRINT a$;
40 GOTO 10
RUN si scrieti un text
-expresii asociate;
KEY n
-116-
INP -functie
-Determina un octet citit de la poarta(port)(expresie numerica
intreaga pozitiva 0-65535)
-forma INP(port)
-exemplu 10 LET a=INP(3676)
20 PRINT a
-observatie;programatorii avansati pot utiliza functia pentru a
citi numarul de porti logice de intrare iesire si eventual functia
atribuita fiecarei porti logice din procesor(intocmirea unei
harti de procesor se numeste "mapping")
-expresii asociate;
OUT
INPUT -enunt
-Afiseaza un semn de intrebare si asteapta introducerea unui
numar sau sir de numere de la tastatura.Variabilele se introduc
separate de o virgula si in numar egal cu numarul de variabile
solicitat prin comanda (exemplu pentru INPUT x,y,z se vor in-
troduce trei valori separate prin virgula).Daca dupa enuntul
variabilei (prompt) se pune o virgula atunci nu se mai afiseaza
semnul intrebarii.Daca dupa expresia INPUT apare separatorul
punct-virgula(;) atunci la apasarea tastei ENTER programul
executa instructiunea pe aceeasi linie fara sa treaca la linia
urmatoare.
-forma INPUT[;](prompt;)(lista de variabile)
-exemplu 10 INPUT "Introduceti valoarea unghiului";a
20 PRINT "Sinusul unghiului este":PRINT SIN(a)
-expresii asociate;
INPUT#,INPUT$,LINE INPUT
INPUT# -enunt
-Permite introducerea datelor dintr-un fisier secvential iden-
tificat prin (numar de canal-desemnat printr-un enunt OPEN
anterior) pe care le utilizeaza pe post de variabile (lista de
variabile) ca si cum acestea ar fi fost introduse de la tasta-
tura.Datele pot sa provina si de la un port de comunicatie sau
un alt terminal dintr-o retea.Fisierul trebuie sa contina
datele conform cu solicitarea facuta (cifre pentru variabilele
numerice sau litere si cifre pentru variabilele alfanumerice).
-forma INPUT#(numar canal),(lista de variabile)
-exemplu 10 OPEN "FISIER1" FOR INPUT AS#1
20 INPUT#1,X$,Y$,Z$
deschide fisierul "FISIER1" si citeste primele trei
siruri alfanumerice pe care le memoreaza ca X$,Y$ si Z$
-Observatii;pentru date numerice se ignora caracterele initiale
tip spatiu,(CR),(LF),terminatorul fiind reprezentat de spatiu,
(CR),(LF),virgula.
Pentru date sir se ignora caracterele initiale tip
spatiu,(CR),(LF).Sint posibile doua situatii;
-caracterele sint intre ghilimele sub forma "propozitie" si
se citesc ca atare cu semne de punctuatie cu tot pina la
inchiderea ghilimelelor"
-caracterele nu sint intre ghilimele iar virgula este consi-
derata ca si separator de variabile.
-117-
In ambele situatii terminatorul de operatie este (CR),(LF)
si virgula.
-expresii asociate;
INPUT,INPUT$,LINE INPUT,OPEN
INPUT$ -functie
-Permite introducerea de caractere alfanumerice in numar de
(lungime) care se citesc de la tastatura sau din fisierul sau
portul de comunicatie (numar de canal).
-forma INPUT$(lungime),[#](numar canal)
-exemple 10 OPEN "A:",1,"FISIER1"
20 PRINT INPUT$(1,#1);
sau 10 INPUT A$,B$,C$
20 PRINT A$,B$,C$
RUN si scrieti trei cuvinte separate de virgula
-expresii asociate;
INPUT,INPUT#,LINE INPUT,OPEN
INSTR -functie
-Identifica un subsir dintr-un sir (un cuvint dintr-o fraza).
Parametrii definesc pozitia de la care se incepe cautarea (start)
sirul in care se cauta (sir) si subsirul cautat (subsir).Daca
este un cuvint sau o expresie care se repeta de mai multe ori in
acelasi sir prin start se desemneaza (un numar de la 1 la 255) al
citelea subsir de acel tip se cauta).
-forma INSTR (start),(sir)(subsir)
-exemplu 10 LET X$= "Un exemplu de subsir dintr-un sir"
20 LET Y$= "exemplu"
30 PRINT INSTR(2,X$,Y$)
40 LET Y$= "sir"
50 PRINT INSTR(1,X$,Y$)
60 PRINT INSTR(20,X$,Y$)
-Observatie;in exemplul de mai sus se observa ca programul
returneaza pozitia din sir a subsirului cerut (numarul de ordine)
numarind si spatiile libere).
-expresii asociate;nu sint
INT -functie
-Calculeaza cea mai mare valoare intreaga a expresiei numerice
prin rotunjire spre cel mai mic intreg
-forma INT(expresie numerica)
-exemple PRINT INT(-15.07)
PRINT INT(35.24)
PRINT INT(32.66)
10 LET a=3.14
20 LET b=2.718
10>
Dostları ilə paylaş: |
|
|