Basic abc-doar


enuntul FIELD intr-o zona de tampon pentru acces aleator (pla-



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

enuntul FIELD intr-o zona de tampon pentru acces aleator (pla-

seaza o variabila intr-o fereastra de ecran).

-forma LSET(var sir)=(expresie sir)

-exemplu 100 FIELD#1,2 AS NORD$,33 AS NUME$

.......

110 LET N%=CVI(NORD$)

120 LSET X$=MKI$(N%) (afiseaza sirul in fereastra)

-expresii asociate;

FIELD MKD$,MKI$,MKS$,RSET
MERGE -comanda

-Citeste programul sau fisierul specificat prin (specificator

fisier si il suprapune in memorie peste programul existent

astfel incit pentru liniile cu acelasi numar vor ramine cele

din programul nou iar cele numerotate diferit se adauga la cele

existente (functie XOR).

-forma MERGE(specificator fisier)

-exemplu MERGE "A:CAT 1\CAT 11\FISIER1"

-expresii asociate;nu sint
MID$ -functie

-Selecteaza din sirul (sir) un subsir de lungime specificata

prin (lungime) si care incepe de la pozitia (start) a sirului.

Cei trei parametri se vor specifica astfel incit sa nu depaseasca

lungimea maxima a unui sir =255 caractere.Daca se solicita o

lungime mai mare decit cea a sirului se vor citi caracterele

existente dupa pozitia specificata prin (start).Daca lungimea

specificata este 0 atunci se va afisa un sir NULL.

-forma MID$(sir),(start),(lungime)

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

20 PRINT MID$(X$,4),MID$(X$,4,3)

10 LET X$="BUNA DIMINEATA"

20 FOR x=2 TO 10

30 FOR y=3 TO 5

40 PRINT MID$(X$,x,y)

50 NEXT y:NEXT x

-expresii asociate;

LEFT$,LEN,RIGHT$

-127-

MID$ -enunt

-Din sirul specificat prin (sir) se extrage subsirul de lungime

(lungime) incepind cu pozitia (start) si este inlocuit cu subsirul

specificat in expresie prin (subsir).Se utilizeaza mai ales pentru

corectarea sau modificarea unor texte sau pentru inlocuirea unor

ecuatii dintr-un lant de operatii.

-forma MID$(sir),(start),(lungime)=(subsir)

-exemplu

10 LET a$="Ziua buna se cunoaste de dimineata"

20 MID$(a$,11,11)="incepe tot "

30 PRINT a$
-expresii asociate;

LEFT$,LEN,RIGHT$
MKDIR -comanda

-Creaza un nou catalog la capatul caii (traseu)(expresie de tip sir)

-forma MKDIR (traseu)

-exemplu MKDIR "A:FISIER1"

-Observatie;la unele variante de program functia MKDIR este asig-

nata (destinata) la o tasta functionala (Fx) si este afisata pe

ultima linie a ecranului permanent.In acest caz nu mai trebuie

specificata calea de acces dacit daca se schimba unitatea curenta

cu o alta unitate de memorie.De exemplu pentru a deschide un fisier

nou pe unitatea B trubuie specificata calea prin B: si apoi numele

fisierului nou creat.

-expresii asociate;

RMDIR
MKD$ -functie

-Converteste o expresie numerica reprezentata in dubla precizie

intr-un sir de opt octeti.

-forma MKD$(expresie reala in dubla precizie)

-exemplu 10 LET E#=7.5832

20 FIELD #1,8 AS D$

30 LSET D$=MKD$(E#)

-expresii asociate;

CLD,CVI,CVS,MKI$,MK$
MKI$ -functie

-Converteste o expresie intreaga la un sir de doi octeti.

-forma MKI$(expresie intreaga)

-exemplu 10 LET I%=17

20 FIELD#1,2 AS A$

30 LSET A$=MKI$(I%)

-expresii asociate;

CVD,CVI,CVS,MKD$,MKS$

MKS$ -functie

-Converteste expresia reala (simpla precizie) intr-un sir de

patru octeti.

-forma MKS$(expresie reala in simpla precizie)

-exemplu 10 LET S=7.83:FIELD#1,4 AS G$

20 LSET G$=MKS$(S)

-expresii asociate; CVD,CVI,CVS,MKD$,MKI$

-128-

NAME -comanda

-Schimba numele unui fisier (specificator fisier 1) cu un alt nume

(specificator fisier 2).Comanda nu modifica numele unitatii de

memorie pe care se gaseste fisierul.

-forma NAME (specificator fisier 1) AS (specificator fisier 2)

-exemple NAME "FISIER 1" AS "ARHIVA DE DATE"

sau NAME "GW-BASIC" AS "PROGRAM SURSA"

-expresii asociate;nu sint
NEW -comanda

-Inchide toate fisierele si sterge programul curent cu toate

variabilele sale anulind orice comanda executabila si elibereaza

memoria pentru alt program sau aplicatie.

-forma NEW

-exemplu NEW dupa orice program apoi LIST

-expresii asociate;

TROFF
OCT$ -functie

-Calculeaza si afiseaza valoarea in cod octal pentru expresia

numerica (valoarea corespunzatoare in cod octal-vezi tabelul de

corespondenta a codurilor zecimal-octal).Functia accepta valori

cuprinse intre -32768 la 65535 (ca si la codul hexazecimal) vezi

si corespondenta octal-hexazecimal si functia HEX$.

-forma OCT$(expresie numerica)

-exemplu PRINT OCT$(32)

10 FOR x=1 TO 255

20 PRINT x:PRINT OCT$(x):PRINT HEX$(x)

30 NEXT x

-expresii asociate;

HEX$
ON COMn GOSUB

-enunt

-Apeleaza subrutina(subprogramul) situat la linia de adresa cu

numarul specificat prin (numar linie) daca pe canalul de comuni-

catie desemnat prin (n) apare un semnal pozitiv.

-forma ON COM (n) GOSUB (numar linie)

-exemplu ............

100 ON COM(1)GOSUB 500

110 COM(1) ON

120 END

..............

500 PRINT "START subprogram"

510 FOR x=1 TO 10

520 PRINT x

530 NEXT x

540 RETURN

-Observatie;iesirea din subprogram se face cu return ca la orice

comanda GOSUB.Daca se specifica n=0 atunci intreruperea este

dezactivata (in exemplul de mai sus se adauga 115 LET COM(1)=COM(0))

Intreruperea poate fi inactivata si prin COM(x)OFF (in exemplul de

mai sus se adauga 115 COM(1)OFF.

-expresii asociate;COMn OFF,COMn ON,COMnSTOP

-129-

ON ERROR GOTO

-enunt

-In cazul unei erori transfera executia la linia de adresa

indicata prin (numar linie) (in mod normal in caz de eroare

se intrerupe programul si se afiseaza un mesaj de eroare).

Comanda permite executarea unui program si dupa intilnirea unei

erori.Daca (nr.linie) nu se specifica sau este 0 atunci programul

se intrerupe in caz de eroare si se afiseaza mesaj de eroare.

-forma ON ERROR GOTO (numar linie)

-exemplu 10 ON ERROR GOTO 100

20 INPUT N

30 LET M=LOG(N)

40 PRINT M

50 REM-Daca argumentul este negativ apare eroare

..........

100 REM-Rutina de tratare a erorii

110 IF ERR=5 THEN PRINT "Numar negativ!...alt numar!"

120 RESUME 20

-Observatie;rutina de tratare a erorii permite revenirea in

program si reluarea programului cu corectarea erorii.

-Observatie;exista variante de program la care instructiunile GOTO

se scriu despartit (GO TO) dar pentru majoritatea forma este GOTO.

-expresii asociate;

ERL,ERR,ERROR,ON COMn,GOSUB,RESUME
ON...GOSUB

-enunt

-Executa salt la subprogramul aflat la adresa indicata prin

(lista numere linie) daca se intilneste parametrul indicat prin

(expresie numerica).In cazul unei instructiuni repetate saltul se

poate face succesiv la adrese diferite.

-forma ON(expresie numerica)GOSUB(lista numere linii)

-exemplu 10 FOR x=1 TO 4

20 ON x GOSUB 100,110,120,130

30 NEXT x

40 END

100 PRINT "Subprogram 1":RETURN

110 PRINT "Subprogram 2":RETURN

120 PRINT "Subprogram 3":RETURN

130 PRINT "Subprogram 4":RETURN

-Observatie;daca se folosesc mai multe subprograme apelate succesiv

se va avea in vedere ca revenirea din subprogram cu RETURN sa nu

determine un ciclu inchis de operatii (este comod daca revenirea

prin return se face la linia care contine enuntul NEXT).In exemplul

de mai sus introduceti cite un mic subprogram (4-5 linii 101-105 etc)

pentru fiecare subprogram dupa care adaugati RETURN pentru a obtine

o suita de patru programe.

-expresii asociate;

ON....GOTO
ON...GOTO -enunt

-Executa salt la linia de adresa indicata prin (lista de

numere linii) daca se indeplineste conditia (parametrul)

din (expresie numerica).Daca valoarea expresiei numerice

-130-

este zero sau daca depaseste numarul de ordine (cardinalul) ce

defineste linia de adresa,atunci executia continua cu secventa

urmatoare.

-forma ON(expresie numerica)GOTO(lista de numere linii)

-exemplu 10 FOR x=1 TO 4

20 ON x GOTO 100,110,120,130

30 NEXT x

40 END

100 PRINT "TEXT 1"

110 PRINT "TEXT 2"

120 PRINT "TEXT 3"

130 PRINT "TEXT 4"

-expresii asociate;

ON...GOSUB
ON KEYn GOSUB

-enunt

-La apasarea tastei functionale (programabile) se executa subrutina

(subprogramul) desemnat pentru tasta respectiva.Prin (n) se speci-

fica numarul tastei iar prin (numar linie) adresa la care se face

saltul pentru intrarea in subprogram.

chei functionale F1-F10 n=1-10

cursor in sus n=11

cursor stinga n=12

cursor dreapta n=13

cursor jos n=14

chei definite de utilizator n=15

Dopa definirea unei key(taste) aceasta trebuie activata prin enuntul

KEY(n) ON iar inactivarea tastei se face cu enuntul KEY(n) OFF.

-forma ON KEY(n) GOSUB (numar linie)

-exemplu 10 KEY 1,CHR$($H4)

20 REM-se atribuie semnul "caro" pentru tasta F1"

30 KEY(1) ON

40 ON KEY(1) GOSUB 100

50 FOR x=1 TO 10000:NEXT x

60 REM-linia 50 intirzie programul pina tastati F1

70 END

100 FOR x=1 TO 10

110 PRINT x:PRINT "Subprogram"

120 NEXT x

130 RETURN

-expresii asociate;

KEYn OFF,KEYn ON,KEYn STOP
ON PLAYn GOSUB

-enunt

-In timpul executarii unei instructiuni PLAY (vezi PLAY) determina o

intrerupere a executiei si salt la subrutina situata la adresa indi-

cata prin (numar linie) dupa care se revine prin RETURN si se conti-

nua executia instructiunii PLAY care a fost intrerupta.

-forma ON PLAY(n)GOSUB(numar linie)

-exemplu 10 PLAY ON:ON PLAY(6)GOSUB 100

100 PRINT "Subprogram pt PLAY":RETURN

-expresii asociate;PLAY,PLAY OFF,PLAY ON,PLAY STOP

-131-

ON TIMERn GOSUB

-enunt

-Determina apelarea subrutinei de la adresa specificata prin (numar

linie) dupa scurgerea unui interval de timp (n) (n poate lua valori

de la 1 la 86400) secunde.Instructiunea TIMER se activeaza prin

enuntul TIMER ON (in caz contrar intreruperea nu se executa) si se

inactiveaza prin TIMER OFF.

-forma ON TIMER (n) GOSUB (numar linie)

-exemplu 10 ON TIMER (180) GOSUB 500

20 TIMER ON

.............

500 PRINT "Program test"

510 FOR x=1 TO 10

520 PRINT x:NEXT x

530 SAVROW=CSRLIN:REM-memoreaza rindul curent

540 SAVCOL=POS(0):REM-memoreaza coloana curenta

550 LOCATE 23,20

560 PRINT TIME$

570 LOCATE SAVROW,SAVCOL:REM-repozitionare cursor

580 PRINT "x"

590 RETURN

-expresii asociate;

TIMER OFF,TIMER ON,TIMER STOP
OPEN -enunt

-Deschide un fisier desemnat prin (specifricator fisier) si

identificat prin (mod 1=cuvint cheie) sau (mod 2=variabila sir).

Fisierul va fi expoloatat in zona desemnata prin (numar canal=

numar de la 1 la 255) si are o lungime de (lungime inregistrare).

Lungimea poate fi intre 1 si 32767.Daca lungimea fisierului

depaseste spatiul de memorie de operate atunci fisierul va trebui

sa fie fragmentat pentru citire si executie.

Cuvintele cheie utilizate pot fi;

(mod 1) (mod 2) SEMNIFICATIE

INPUT "I" - acces secvential la intrare,cu pozitio-

nare la inceputul fisierului existent

OUTPUT "O" -inceput de fisier creat cu aceasta

ocazie pentru pozitionarea cursorului

APPEND "A" -acces secvential cu pozitionare la

sfirsitul fisierului,eventual nou creat.

- "R" -acces aleator

-OBSERVATII;a) numarul maxim de fisiere deschise nu poate depasi

valoarea parametrului /F(nr.fisiere) de la lansarea sub MS-DOS

a interpretorului GW-BASIC (implicit 3)

b)Accesul aleator la fisiere pentru imprimantele

LPT1;LPT2;LPT3 inseamna ca fiecare comanda CR(carriage return) nu

va fi obligatoriu urmata de LF(line feed) respectiv programul nu

citeste obligatoriu linia urmatoare ci asteapta o instructiune

de citire cu specificarea datelor solicitate.

c)Informatiile de control pentru periferice (drivere)

sint scrise de enuntul GW-BASIC IOCTL si citite cu IOCTL$.

d)Fisierele fizice pot fi deschise secvential atit ca

fisiere secventiale (se citesc in ordine) cit si ca fisiere cu

acces aleator.Fisierele secventiale nu pot fi deschise aleator.

-132-

-forma OPEN(specificator fisier)FOR(mod1)AS[#](numar canal)LEN

(LEN=lungime inregistrare)

-exemplu

10 REM-Deschide fisier pentru intrare format 1

20 OPEN "\CATAL1\CATAL11\STOC.DAT" FOR INPUT AS #3

sau 10 REM-Deschide fisier pentru intrare in format 2

20 OPEN "I",#3,"\CATAL1\CATAL11\STOC.DAT"

sau 10 REM-Deschide imprimanta cu driver GW-BASIC

20 OPEN "LPT:" FOR OUTPUT AS 2

sau 10 REM-Deschidere imprimanta cu driver MS-DOS

20 OPEN "\DEV\LPT1" FOR OUTPUT AS 2

-expresii asociate;

IOCTL,IOCTL$,OPEN COM
OPEN COM

-enunt

-Deschide si initializeaza liniile de comunicatie (COM) pentru

operatii de intrare iesire.(n) specifica linia COM iar parametrii

optionali (viteza=constanta cu valori 75,110,150,300,600,1200,1800,

2400,4800,9600 sau implicit 300)stabileste viteza,(paritate=literal

cu N-fara paritate,E-paritate para,M-marca,O-paritate impara,S-spa-

tiu,sau implicit 6),cu un numar de biti de date pentru protocol

specificat prin(bit dat=nr 5-8 implicit 7) si respectiv prin (stop=

un nr de la 1,1 la 5,2 implicit 1 pentru viteze > de 150 bauds)

Alte optiuni sint;

RS -suprimare RTS

CS(t) -controlare CST

cu (t) -milisecunde "time out" (implicit 13)

DS(t) -controlare DSR(Data send Ready)

cu (t) -milisecunde "time-out"(implicit 1000)

CD(t) -controleaza CD(Curier Detect)

cu (t) -milisecunde "time-out"(implicit 1000)

BIN -deschidere in mod binar (implicit)

ASC -deschidere in mod caracter (ASCII)

LF -indica trimiterea unui (LF) dupa un (CR)

(optiune anulata de optiunea BIN)

-Dispozitivul de comunicatii are un numar de canal (numar canal) iar

deschiderea se face potrivit unui (mod) reprezentat prin cuvinte

cheie: INPUT-fisiere secventiale de intrare

OUTPUT-fisiere secventiale de iesire

Daca nu se specifica se considera implicit -fisiere deschise aleator

Operatiile de intrare iesire se desfasoara pe o (lungime de inregis-

trare=2 pt tampon de emisie si 128 pt tampon de receptie) care nu

poate depasi valoarea /C:(buf siz) din comanda GW-BASIC de lansare

din MSDOS.

-forma OPEN "COM (n):(viteza),(paritate),(bit dat),(stop)[RS],[CS],

(t),[DS](t),[BIN],[ASC]

[LF]" FOR (mod) AS#(numar canal)

-exemplu

10 REM-Viteza 1200 BAUDS,fara paritate,7 bits date,1 bit stop, binar

20 OPEN "COM 1:1200,N,7,1 BIN" AS #1

-expresii asociate;

OPEN

-133-

OPTION BASE

-enunt

Defineste prin (n=0 sau n=1) limita inferioara pentru indicii

de tablouri definite prin DIM (valoare implicita=0)

-forma OPTION BASE (n)

-exemplu 20 DIM A%(10)

30 OPTION BASE 1

40 FOR i%=1 TO 10

50 LET A%(i%)=i(%)

60 NEXT i%
OUT -enunt

-Transmite un octet (octet) la portul cu numarul(port=nr.0-65535)

reprezentind un caracter ASCII (0-255) pentru o linie de comuni-

catii.

-forma OUT(port)(octet)

exemplu 10 OUT 135,254
PAINT -enunt

-Determina colorarea sau tapetarea unei arii grafice cu o culoare

specificata prin (tapet=nr 0-3) sau un model predefinit prin o

expresie de tip sablon.Marginea se traseaza cu (contur=nr 0-3) iar

modelul se desemneaza prin (fond= expresie sir).Colorarea incepe

din punctul desemnat prin coordonatele x si y sau prin salt deter-

minat de optiunea STEP.Sablonul este reprezentat din 1-64 octeti

ce reprezinta mastile a 8 bits.Automat are loc rotarea bits masca

pentru a asigura alinierea pe axa y dupa formula;

bit masca-sablon=y MOD lungime sablon

-forma PAINT [STEP] (x),(y),(tapet),(contur),(fond)

-exemplu 10 SCREEN 1

20 COLOR 0,0,1,0

30 CIRCLE (256,128),130,2

40 PAINT (256,128),1,2

50 LINE (251,123)-STEP(10,10),2,BF
-expresii asociate;

COLOR
PEEK -functie

-Citeste si afiseaza un octet din memorie al carui continut se

afla la o deplasare specificata prin (ecart=numar cuprins intre

-32768-65535) fata de segmentul curent definit prin DEF SEG.

-forma PEEK(ecart)

-exemplu 10 LET A=PEEK(&H5A00)

20 PRINT A

-Observatie;adresa de memorie se poate specifica in cod zecimal,

ASCII,octal sau hexazecimal (ca in exemplul de mai sus).Pentru

BASIC liniile de memorie sint numerotate hexazecimal si vor fi

apelate ca atare.Semnul &H specifica faptul ca este o adresa

in cod hexazecimal iar 5A00 este codul propriu zis-vezi tabelul

de corespondente a codurilor BASIC-ASCII-HEXAZECIMAL.Atentie la

utilizarea comenzilor care acceseaza memoria de sistem!

-expresii asociate;

DEF SEG,POKE,VARPTR

-134-

PLAY

-enunt

-Executa melodia reprezentata prin caracterele din expresia sir.

Sirul poate contine si monoinstructiuni muzicale,alcatuite din

comenzi specifice.

A-G[#]+[-]-Se cinta notele din gama A-G (Do-Si) cu note ascutite

(sufixe # ori T) sau cu note plate (sufix "-").

O(n)-Stabilirea octavei curente la (n) care poate fi o expresie

intreaga cu valori de la 0-6.

>(n)-Trecere in octava superioara la fiecare executie a notei (n),

pina ce s-a ajuns in octava 6 care ramine octava notei.

<(n)-Trecere in octava inferioara la fiecare executie a notei (n)

pina ce s-a ajuns in octava 0 care ramine octava notei.

N(n)-In cele 7 octave posibile se executa una din cele 84 note

nominalizate cu (n) (n=nr intreg iar 0 inseamna pauza)

P(n)-Specifica o pauza pentru nota (n) cu durata specificata prin

optiunea L(n)

L(n)-Lungimea fiecarei note ce urmeaza este (n) semnificind inversul

valorii notei (poate avea valori de la 1-64)

-Scalarea cu 3/2 a duratei notei ce urmeaza(fata de cea din L)

T(n)-Tempoul(numarul de intervale de cite patru note/minut) este

stabilit la (n) -expresie intreaga cu valori 32-255 si cu

valoare implicita de 120.

MB- Determina calificativul de muzica "in fundal",atit pentru PLAY

cit si pentru instructiunea SOUND.

MF- Stabilirea calificativului de muzica efectiva (executata nota

cu nota).

MN- Stabileste caracterul de normalitate pentru muzica,deci fiecare

nota executata intr-un timp de 7/8 din cel specificat prin L

ML -Muzica "legato",pe toata durata data de comanda L

MS -Muzica "staccato",fiecare nota se executa la 3/4 din durata

indicata de comanda L.

X(sir)-Se executa un sir
-forma PLAY(expresie sir)

-exemple 10 PLAY "T 180 02"

20 PLAY "C O2"

30 PLAY "B O2"

40 PLAY "A O3"
10 PLAY " C O2 B A C E A O3 C B A B C O1 E B A"

20 PLAY " C O3 DAC BEA A O2 GGG AGA C B O3 E AA"
10 PLAY "O3 G A B B A G"
-expresii asociate;

PLAYn,PLAY OFF,PLAY ON,PLAY STOP

PLAYn -functie

-Furnizeaza numarul de note din tamponul melodiei de fond.

valoarea este zero daca muzica executata este efectiva.

-forma PLAY(argument fictiv)

-exemplu IF PLAY(0)=5 GOTO 310

-expresii asociate;

PLAY,PLAY OFF,PLAY ON,PLAY STOP


-135-

PLAY OFF -enunt

-Inhiba intreruperea provocata de atingerea unei limite in

continutul zonei tampon de melodii de fond

-forma PLAY OFF

-exemplu PLAY OFF

-expresii asociate;

ON PLAYn GOSUB,PLAY n PLAY ON,PLAY STOP
PLAY ON -enunt

-Activeaza intreruperea provocata de atingerea unei limite

in continutul zonei tampon de melodii de fond.

-forma PLAY ON

-exemplu PLAY ON

-expresii asociate;

ON PLAYn GOSUB,PLAYn PLAY OFF,PLAY STOP
PLAY STOP -enunt

-Suspenda actiunea enuntului PLAY ON

-forma PLAY STOP

-exemplu 10 FOR x=1 TO 10

20 READ a$

30 PLAY X(a$)

40 PLAY ON

........

100 PLAY STOP

110 NEXT x

-expresii asociate;

ON PLAY n GOSUB,PLAY n,PLAY OFF
PMAP -functie

-Determina coordonata unui punct in functie de valoarea specificata

prin (n).(localizeaza un punct pe o harta)

(n) poate fi;

0-(coordonata) este o abscisa in coordonate universale,pentru

care se determina echivalentul fizic

1-(coordonata) este o ordonata in coordonate universale,pentru

care se determina echivalentul fizic

2-(coordonata) este o abscisa in coordonate fizice pentru care

se determina coordonatele universale

3-(coordonata este o ordonata in coordonate fizice pentru care

se determina coordonatele universale

-forma PMAP (coordonata),(n)

-exemplu 10 SCREEN 2

20 WINDOW SCREEN (80,100)-(200,200)

30 LET X1=PMAP(80,0)

40 PRINT X1

50 LET Y1=PMAP(200,1)

60 PRINT Y1

70 LET X2=PMAP(119,2)

80 PRINT X2

90 LET Y2=PMAP(100,3)

100 PRINT Y2

-expresii asociate;

SCREEN,VIEWPORT SCREEN,WINDOW SCREEN

-136-

POINT -functie

-Determina pozitia unui punct (un argument) sau pozitia si

culoarea unui element de imagine (doua argumente) prin coordo-

natele absolute x si y si in functie de valoarea expresiei (n)

unde ;

n=0 -abscisa fizica curenta

n=1 -ordonata fizica curenta

n=2 -abscisa curenta in coordonate univers,daca exista un

enunt WINDOW anterior(altfel la fel ca si POINT(0))

n=3 -ordonata curenta in coordonate univers,deca exista un

enunt WINDOW anterior(altfel la fel ca si POINT (1))

-forma POINT (arg)

cu argument::=x,y|n

-exemplu 10 SCREEN 1

20 LET K%=0

30 FOR I=1 TO 320

40 FOR J=1 TO 200

50 IF POINT(I,J)=3 THEN LET K%=K%+1

60 NEXT J:NEXT I

70 PRINT "Culoarea 3 este pe ";K%;" PUNCTE"

-expresii asociate;

nu sint

POKE -enunt

-Scrie un octet in memorie la adresa data de o deplasare cu

ecart= nr dela 0-65535) fata de segmentul curent definit prin

un enunt DEF SEG anterior.

-forma POKE(ecart),(octet)

-exemplu POKE &H5A00,&HFA

(scrie valoarea 250 la adresa 5A00)

exprimarea este in cod hexazecimal-vezi tabelul

de corespondenta a codurilor

-Observatie;atentie la datele introduse in memorie (este bine

sa se verifice initial ce date se gasesc la adresa solicitata

cu o comanda PEEK si apoi sa se introduca date noi (eventual este

bine ca modificarile sa fie notate undeva pentru a putea fi

refacute la nevoie datele initiale).

-expresii asociate;

DEF SEG,PEEK
POS -functie

-Determina abscisa curenta a cursorului (valori in intervalul

1-40 sau 1-80).Argumentul fictiv are rolul de a pastra atributul

de functie.

-forma POS(argument fictiv)

-exemple 10 IF POS (0)>72 THEN BEEP
sau 10 FOR x=1 TO 20

20 PRINT TAB(x)x

30 PRINT POS(x)

40 NEXT x
-expresii asociate;

CSRLIN

-137-

PRESET -enunt

-Deseneaza pe ecran in punctul de coordonate x,y sau la distanta

x,y de pozitia curenta daca este prezenta optiunea STEP,un punct

sau o imagine grafica (specificata printr-un subprogram) in

culoarea desemnata prin (culoare=numar 0-3)

-forma PRESET[STEP](x),(y),(culoare)

-exemplu PRESET (15,60),3

sau 10 SCREEN 1

20 CLS

30 FOR I=1 TO 100

40 PRESET (I,I),2

50 NEXT I

60 END

-Observatie;instructiunea nu este recunoscuta pentru modul

text de ecran grafic (screen 0) si trebuie initiat SCREEN 1.

-expresii asociate;

COLOR,PSET
PRINT -enunt

-Afiseaza valorile din (lista de expresii).

Daca expresiile sint despartite prin punct si virgula (;) atunci

valorile se afiseaza una in continuarea celeilalte iar daca sint

separate prin virgula (,) atunci se afiseaza valorile aliniate

in subzone de cite 14 caractere dupa care se trece la linia

urmatoare.Pentru numerele negative semnul (-) apare inaintea

numarului si se utilizeaza precizia simpla pentru numere cu peste

sapte cifre sau precizia dubla pentru numerele care depasesc

sasesprezece cifre.Daca (terminatorul=(;) sau (,)) este omis

se executa automat salt la linia urmatoare dupa fiecare expresie

afisata.

-forma PRINT (lista de expresii),(terminator)

cu (lista de expresii) poate fi formata din mai multe expresii

de afisat separate intre ele prin (;) sau (,) de genul;

(lista expresii)=(expresie)(lista expresii)(separator)(expresie)

-separatorul ca si terminatorul poate fi punct si virgula sau

virgula cu aceeasi semnificatie pentru tiparire

-exemplu 10 LET A$="BASIC"

20 LET B=1

30 LET C$="ianuarie"

40 LET D=2002

50 PRINT A$,B,C$,D

60 PRINT A$;B;C$;D

70 PRINT A$,B;C$,D

80 PRINT B,A$+B$,D

-Observatie;pentru cifre variabilele se desemneaza prin litere sau

litere si cifre iar pentru caractere alfanumerice variabilele vor

desemnate prin litere si semnul dolar sau litere si cifre si semnul

dolar iar expresiile de memorat vor fi incluse intre ghilimele.

Pentru expresiile numerice formate din cifre si din operatii mate-

matice se va evectua initial calculul si se va afisa direct rezul-

tatul operatiei (exemplu PRINT (33*7-22*5)/3).Expresiile alfanume-

rice pot fi adunate (tiparite in continuare ca in exemplu linia 80).

-expresii asociate;

LPRINT,LPRINT USING,PRINT USING,PRINT#,PRINT#USING

-138-

PRINT USING

-enunt

-Expresiile sau valoarea expresiilor din (lista de expresii) vor

fi afisate pe ecran conform specificatiei de format din (format).

Caracterele care determina formatul(aspectul grafic) se numesc

caractere de formatare si sint cele prezentate la instructiunea

LPRINT (vezi LPRINT).

-forma PRINT USING (format);(lista de expresii)(terminator)

pentru separator si terminator se aplica aceleasi reguli ca si

la instructiunea PRINT

-exemple 10 LET A$="BUCURESTI"

20 PRINT USING "!";A$

sau PRINT USING "-####.###";-35739.7799321
sau 10 FOR x=1 TO 100

20 PRINT USING "-##.#####"

30 PRINT SQR(x)

40 NEXT x

-Observatie;notiunea de format se refera in acest caz la modul de

afisare pe ecran a datelor,similar cu cel pentru tiparire la impri-

manta.A nu se confunda cu notiunea de format al datelor care se

refera la cu totul altceva (desemneaza citi biti se combina si cum

pentru a forma un caracter interpretabil ca informatie distincta)

-expresii asociate;

LPRINT,LPRINT USING,PRINT,PRINT#,PRINT#USING
PRINT# -enunt

-Determina expedierea datelor in format text la un port de

comunicatie desemnat prin #(numar canal) care a fost deschis

anterior prin OPEN.Pentru a fi mai usor de citit si interpretat

la destinatie este recomandabil ca datele sa fie fragmentate

prin separatori sau chiar prin spatii goale intre ghilimele sau

prin caractere speciale desemnate prin functia CHR$.Procesoarele

moderne transmit miliarde de biti de date/secunda si o singura

eroare de poarta logica poate altera complet toate datele .In

plus,spatiile goale permit introducerea de functii INPUT,permit

preluarea textului pe procesoare diferite si permit diverse

variante de paginare a aceluiasi text.

-forma PRINT#(numar canal),(lista de expresii)

-exemplu 10 OPEN "COM 1:1200,N,7,1,ASC" AS#1

..............

100 LET A$="NUME SI PRENUME"

110 LET B$="VIRSTA"

120 REM -Codul pentru citire este alfanumeric

130 PRINT #1,CHR$(34);A$,B$;CHR$(34)

140 REM-Mesajul trimis este intre ghilimele

150 INPUT#1,A$,B$

.................

-Observatie;instructiunea se poate utiliza si pentru a transmite

un mesaj pe port paralel (pe fiecare port se transmite o linie

de date iar acestea se sumeaza in procesorul de destinatie)

-expresii asociate;

LPRINT,PRINT USING,OPEN,PRINT,PRINT USING

PRINT# USING,WRITE#

-139-

PRINT# USING

-enunt

-Trimite in fisierul de iesire (numar canal) deschis prin OPEN

valoarea expresiilor din (lista de expresii) folosind pentru scriere

formatul desemnat prin optiunea (format).Caracterele de formatare

sint cele descrise la LPRINT.Se recomanda utilizarea separatorului

(;)intre expresii sau a altor separatori intre expresii (eventual

caractere speciale desemnate prin CHR$() sau KEY n) pentru ca acestea

sa poata fi regasite si citite usor la destinatie.

-forma PRINT #(numar canal),USING(format);(lista de expresii)

-exemplu .............

100 LET A=3.25437:LET B=34.763452:LET C=123.83542

110 PRINT#1,USING "$$###.##";A;B;C

-expresii asociate;

LPRINT,LPRINT USING,OPEN,PRINT,PRINT USING,PRINT#
PSET -enunt

-Provoaca iluminarea in culoarea (culoare=numar 0-3) a punctului

sau elementului de imagine situat la coordonatele x,y sau la

distanta de x,y de pozitia precedenta daca se utilizeaza STEP.

-forma PSET[STEP](x,y),(culoare)

-exemplu 10 SCREEN 1

20 FOR x=1 TO 100

30 PSET (x,x)

40 NEXT x

-Observatie;daca nu se specifica culoarea se va utiliza implicit

cerneala grafica pentru scriere.Instructiunea nu este recunoscvuta

in modul text de ecran (SCREEN 0) si trebuie initiat ecranul

pentru grafica prin SCREEN 1 sau SCREEN 2.

-expresii asociate;

COLOR,PRESET
PUT -enunt

-Transfera din memorie in tamponul de comunicatie deschis prin

OPEN COM cu numarul (numar canal) un numar de octeti de lungime

desemnata prin (lungime) de unde vor fi trimisi la destinatie.

Lungimea mesajului (nr de octeti) nu poate fi mai mare decit

spatiul de memorie pentru fisierul de comunicatie desemnat prin

parametrul LEN al comenzii OPEN COM.

-forma PUT[#](numar canal),(lungime)

-exemplu ..............

50 PUT#1,80 :REM-Scrie 80 octeti in fisierul COM
PUT -enunt

-Transfera fisierul cu numarul (numar de inregistrare) din memorie

in fisierul de iesire pentru comunicatii cu numarul (numar canal)

deschis anterior prin OPEN.Numarul de inregistrare a fisierului

este numarul sub care este gestionat de sistemul MS-DOS si poate fi

un numar cuprins intre 1-16777215 (numarul maxim de fisiere MS-DOS).

Practic citeste si transmite un fisier.

-forma PUT[#](numar canal),(numar inregistrare)

-exemplu 10 OPEN "R",#3,"CATAL1\CATAL11\STOC.DAT" FOR INPUT AS #3

20 PUT#3,"FISIER1"

-expresii asociate;FIELD,LSET,OPEN,RSET

-140-

PUT -enunt

-Transfera pe ecran intr-un dreptunghi(fereastra) descris prin

coordonata coltului de NV(stg-sus) desemnat prin x si y ,imaginea

stocata in tabloul de octeti denumit (masiv)(tip numeric) iar

interactiunea cu imaginea de pe ecran se rezolva conform cu

optiunile specificate prin (verb)

verb poate avea valorile;

PSET-transfer punct cu punct,respectarea culorii din

momentul salvarii imaginii(cu enuntul GET);

PRESET-se transfera punct cu punct reversul imaginii stocate

in momentul salvarii sale(cu enuntul GET);

AND-se efectueaza operatia logica "si" intre elementul exis-

tent pe ecran si cel salvat in (masiv) (adica se suprapun)

OR-se efectueaza o supraimprimare a imaginii salvate peste

cea existenta (una sau cealalta -eventual sclipire periodica)

XOR-se efectueaza operatia "SAU EXCLUSIV" intre elementul de

pe ecran si cel nou (elementul nou inlocuieste complet imaginea

de pe ecran care eventual revine dupa un interval de timp prin

procedeele de animatie)

-forma PUT (x,y),(masiv),(verb)

-exemplu 10 SCREEN 2

20 CLS

30 DIM M(80,80)

40 LET M=77

50 PSET (M,M)

60 GET (31,74)-(41,62),M

70 PUT (45,70),M,XOR

-Observatie;instructiunea este mult utilizata pentru animatie si

pentru jocuri pe calculator (prin "masiv" se transfera o imagine

care este apoi deplasata pe ecran).

-expresii asociate;

GET
RANDOMIZE

-enunt

-Activeaza generatorul de numere aleatoare (la intimplare) care

produce si afiseaza numere cuprinse intre 0 si 1.Pentru generarea

numerelor se utilizeaza un numar de la care pornesc operatiile de

extragere a unei functii,numar ce se numeste "RANDOM NUMBER SEED"

adica "saminta de numere aleatoare" (de exemplu se aleg citeva

zecimale ale numarului PI).Valoarea numarului obtinut va fi luata

in considerare la aparitia enuntului RND.

-forma RANDOMIZE(expresie numerica)

-exemplu 10 RANDOMIZE (7)

20 FOR I=1 TO 5

30 PRINT RND;

40 NEXT I

-Observatie;daca nu se precizeaza argumentul programul solicita

numarul saminta prin mesajul "Random Numer Seed (-32768 to 32767)?"

Se va introduce un numar din intervalul specificat sau se va adauga

si argumentul dorit la enunt.La unele variante de program si numarul

saminta se extrage tot aleator si nu mai trebuie precizat.

-expresii asociate;

RND

-141-

READ -enunt

-Pentru fiecare variabila din lista de variabile se atribuie o

valoare citita din unul sau mai multe blocuri de date definite

prin DATA,incepind cu pozitia curenta a cursorului si respectind

cu strictete concordanta de tip (la variabile numerice se citesc

valorile numerice iar pentru variabilele alfanumerice se citesc

datele alfanumerice.Restabilirea cursorului pe un masiv de date

(si citirea lor in mod repetat) se poate face cu enuntul RESTORE.

-forma READ (lista de variabile)

-exemple 10 FOR x=1 TO 10

20 READ Mx

30 PRINT Mx

40 NEXT x

50 DATA 4,10,2,8,3

60 DATA 2,13

70 DATA 7,5,11

sau 10 FOR X=1 TO 4

20 READ AX,AX$

30 PRINT AX;AX$

40 DATA 1,"ianuarie",2,"februarie",3,"martie",4,"aprilie"

50 NEXT x

-expresii asociate;

DATA,RESTORE
REM -enunt

-Nu este o instructiune executabila ci doar permite inserarea

unor comentarii (remarci) cu privire la program.Textul care urmeaza

dupa REM nu este afisat in timpul executiei programului si nu este

vizibil pentru utilizator.Textul apare doar la listarea programului

cu LIST si de obicei prezinta indicatii pentru depanare.

-forma REM (comentarii)

-exemple 10 REM-Program conceput de xxxxx yyyyy

-Observatie;a nu se confunda cu comanda de sistem cu aceeasi

prescurtare dar cu semnificatie diferita (REM=read and execute

memory) care este echivalenta cu comanda RUN din GW-BASIC.

-expresii asociate;

nu sint
RENUM -comanda

-Permite renumerotarea liniilor de adresa din program (de exemplu

dupa adaugarea de linii de adresa noi,pentru a face loc pentru

noi linii de adresa).Renumerotarea se face incepind cu (numar

linie vechi) care devine (numar linie nou) si se renumeroteaza cu

un pas precizat prin (increment)(din atit in atit).Daca nu se

specifica incrementul este implicit 10.

In GW-BASIC programul opereaza automat si modificarile necesare

pentru redestinarea apelurilor de tip ELSE,ERL,GOTO,GOSUB,THEN

ON...GOTO,ON...GOSUB,RESTORE si RESUME dar solicitarile de tip

PEEK,POKE vor avea un rezultat diferit.

-forma RENUM(nr linie nou),(nr linie vechi),(increment)

-exemplu RENUM 10,50,10 (50 devine 10 si din 10 in 10)

RENUM 250,,20 (10 devine 250 si din 20 in 20)

-expresii asociate;

nu sint

-142-

RESET -comanda

-Se inchid toate fisierele de date deschise de pe toate suportu-

rile de memorie si se reinitializeaza programul.In cazul fisie-

relor de iesire disc se asigura scrierea in memorie a blocurilor

de date ramase in memorie (datele selectate pentru a fi expediate

nu se pierd).Se pierd toate datele nesalvate pe nici un suport

de memorie inclusiv cele receptionate pe un port de comunicatie.

Calculatoarele noi au un buton care realizeaza toate aceste

operatii prin activarea functiei RESET.La unele programe acest

procedeu permite modificarea parametrilor de citire si interpre-

tare a datelor receptionate.
RESTORE

-enunt

-Restabileste pozitia curenta intr-un bloc de date (definit prin

DATA si citit prin READ) la numarul de linie indicat sau la prima

linie de adresa care contine un enunt DATA.

-forma RESTORE (numar linie)

-exemple 10 READ A,B,C

20 PRINT A;B;C

30 RESTORE

40 READ D,E,F

50 DATA 11,17,14

60 PRINT D,E,F

( a doua instructiune READ va citi aceleasi date)

10 READ a,b,c

20 FOR x=1 TO 5

30 READ y

40 PRINT a,b,c

50 PRINT y;

60 DATA 1,2,3,4,5

70 RESTORE 60

80 DATA 6,7,8,9,10

90 NEXT x

(se reciteste linia 60 pina la epuizarea comenzii)

-expresii asociate;

DATA,READ

RESUME -enunt

-Determina reluarea executiei programului GW-BASIC dupa ce a

avut loc tratarea printr-o rutina utilizator a unei intreruperi

provocata de o eroare sau un eveniment semnificativ(exemple;

mesaj pe un port de comunicatii,actionarea unei taste speciale,

atingerea unei limite la un domeniu definit strict etc).

Revenirea se face;

-0(implicit) la enuntul care a provocat intreruperea

-NEXT la linia imediat urmatoare celei care a provocat

intreruperea

-(numar linie) la linia specificata prin numar linie

-forma RESUME [NEXT](punct reluare)

-exemplu 10 ON ERROR GOTO 100

70 INPUT "Introduceti parola";A$

1000 IF (ERR=230) AND (ERL=90) THEN PRINT "Eroare"

1010 RESUME 70

-expresii asociate;nu sint

-143-

RIGHT$ -functie

-Selecteaza un subsir format din numarul de caractere precizat

prin (lungime) si reprezentind extremitatea dreapta a sirului

de caractere alfanumerice desemnat prin (sir).Lungimea poate

fi de la 1 la 255 si daca depaseste lungimea sirului sursa

acesta va fi afisat in intregime.Numaratoarea caracterelor incepe

cu cel mai din dreapta caracter.

-forma RIGHT$(sir),(lungime)

-exemplu 10 LET X$="PROTOPOPESCU"

20 PRINT RIGHT$(X$,7)

-expresii asociate;

LEFT$,LEN,MID$
RMDIR -comanda

-Desfiinteaza catalogul sau subcatalogul de selectat cu conditia

sa nu mai contina date.(initial se sterg datele si apoi se sterge

catalogul care le contine)

-forma RMDIR(traseu)

-exemplu RMDIR "CATAL11":REM Sterge catalogul 11

-expresii asociate ;

CHDIR,MKDIR
RSET -enunt

-Atribuie valoarea din (expresie sir) unei alte variabile sir sau

unei variabile definite prin FIELD intr-o zona de acces aleator.

-forma RSET(variabila sir)=(expresie sir)

-exemplu 10 LET x$=SPACE$(30)

20 RSET y$=x$

30 PRINT y$,"A";"B"

-expresii asociate;

FIELD,LSET,MKD$,MKI$,MKS$
RND -functie

-Calculeaza si afiseaza un numar pseudoaleator distribuit uniform

in intervalul 0-1.Pentru generarea numarului se tine cont de

numarul saminta precizat prin RANDOMIZE si de optiunea (expresie

numerica) care poate fi;

-pozitiva(implicit);se furnizeaza urmatorul numar din sir

-negativa;se reseteaza generarea pornind de la saminta si

se furnizeaza primul numar din sir

-nula;se furnizeaza numarul curent din sir (de la ultima

invocare a functiei.

-forma RND (expresie numerica)

-exemplu 10 FOR x=1 TO 5

20 PRINT INT(RND*1000);

30 NEXT x

-Observatie;daca programul nu recunoaste comanda nu uitati sa

introduceti un RANDOMIZE si apoi reincercati.

-Observatie;functia RND se utilizeaza foarte mult pentru jocurile

pentru calculator prin intermediul sau realizindu-se factorul de

"intimplare" sau facorul de "noroc".Pentru a nu supraincarca

procesorul cu operatii inutile se recomanda utilizarea de multiplii

intregi obtinuti prin rotunjirea numerelor generate.

-expresii asociate;RANDOMIZE

-144-

RUN -comanda

-Determina executia programului din memorie,linie cu linie,incepind

cu linia cu numarul cel mai mic.Tot cu comanda RUN se poate incarca

in memorie un program pastrat pe o unitate de memorie,pastrind

eventual deschise fisierele de date ale programului precedent(cu

conditia ca liniile de adresa sa fie numerotate diferit).

-forma RUN (program)

cu program::=(numar linie)(specificator fisier)[R]

[R] specifica accesul aleator la fisiere (pastreaza fisierele

deschise la incarcarea unui nou program)

-exemple RUN

RUN 200 (executa un program de la linia 200)

RUN "A:\CATAL1\FISIER1" (executa programul din FISIER1

salvat pe unitatea A)

-Observatie;exista variante de program care permit variante

multiple pentru comanda RUN.Astfel,un program poate fi citit


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