Basic abc-doar



Yüklə 1,91 Mb.
səhifə15/20
tarix06.08.2018
ölçüsü1,91 Mb.
#67460
1   ...   12   13   14   15   16   17   18   19   20

-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

Yüklə 1,91 Mb.

Dostları ilə paylaş:
1   ...   12   13   14   15   16   17   18   19   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