|
enuntul FIELD intr-o zona de tampon pentru acces aleator (pla-
|
səhifə | 17/20 | tarix | 06.08.2018 | ölçüsü | 1,91 Mb. | | #67460 |
| 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
Dostları ilə paylaş: |
|
|