Variabile
O variabila este
un nume dat unei zone de memorie la care se afla stocata o data de un anumit
tip. Utilizarea variabilelor este o modalitate de a depozita si utiliza date intr-un
program. In FoxPro, tipul variabilei este atribuit unei date odata cu valoarea,
reiesind din context.
De exemplu, daca
se scrie x=7 inseamna ca x este o variabila de tip numeric. Daca in continuare
scriem x=”abracadabra”, tipul variabilei x se schimba, devenind de tip sir de
caractere. Variabilele de tip simplu nu necesita declarare.
Declararea
variabilelor, comenzi de atribuire
Initializarea unei variabile cu o valoare se poate face in doua moduri:
1) Declarare si initializare (atribuire):
<var>=<ex>
Exemple:
a=32
s='ion'
2) STORE <ex> TO
<lista_var>
Exemple:
STORE 23 TO a, b, c
S-au creat trei variabile a, b, c care au fost initializate fiecare cu valoarea
23
Citirea unei variabile
1) Comanda de citire INPUT -- permite crearea/ modificarea variabilelor
numerice. Comanda afiseaza (eventual) un mesaj pe ecran si asteapta
introducerea unei expresii.
INPUT [<mesaj>] TO <var>
Exemplu:
n=0
INPUT "Ce varsta aveti? …" TO n
2)
Comanda de citire ACCEPT -- permite crearea variabilelor de tip caracter. Are
acelasi format ca si comanda INPUT.
ACCEPT
[<mesaj>] TO <var>
Exemplu:
ACCEPT "Ce culoare va place ? …" TO
sir
In ambele situatii mesaj este un
text explicativ care se va afisa inaintea informatiei testate de utlizator.
Cele doua comenzi functioneaza identic, cu exceptia faptului ca variabila var
in cazul comenzii accept poate retine numai siruri de caractere in timp ce
comanda input poate retine valori numerice. In cazul comenzii input toate
sirurile se vor da intre apostroafe (ghilimele sau [] ) in timp ce valorile
numerice nu vor contine apostroafe (ghilimele sau [] )
3) Comanda @ SAY … GET cu sintaxa
@ linie,coloana [ SAY mesaj ] [GET
nume_var]
READ
Comanda are o
sintaxa mai complexa care va fi studiata ulterior
o
permite citirea unei date la o anumita pozitie(linia si coloana precizate)
pe ecran.
o
Mesaj este un text ajutator pentru utilizator
o
Activarea citirii variabilelor get se face prin comanda READ.
o
In cazul acestei comenzi variabila nume_var
trebuie initializata obligatoriu pentru a se preciza astfel tipul variabilei
o
Comanda poate fi utilizata pentru citire si/sau afisare
Exemplu
clear
s=space(15)
@ 12,3 say "tasteaza
un sir " get s
read
@ 14,3 say "ai tastat "+s
@16,3 say "sirul are
lungimea "+str(len(s))
4)
Comanda WAIT -- permite crearea unei variabile de tip sir de lungime 1.
WAIT [<mesaj>] [TO <car>]
Comanda permite o pauza in program pana cand
operatorul apasa o tasta. Caracterul corespunzator tastei este, eventual,
atribuit variabilei imediat ce a fost apasata tasta neasteptandu-se
certificarea introducerii prin tasta <enter> ca la celelalte tipuri de
citiri. Mesajul poate lipsi, in acest caz sistemul are un mesaj standard de
tipul: "Press any key to continue …".
Aceasta comanda permite afisarea mesajului
intr-o fereastra daca folosim clauza WINDOW.
O Exemplu:
WAIT [<mesaj>] WINDOW
Stergerea variabilelor
Se face:
-implicit, la iesirea din program sau din sesiunea de lucru
-explicit, prin comenzile:
o RELEASE lista_var/ ALL [
LIKE/ EXCEPT sablon ]
o CLEAR MEMORY sau CLEAR
ALL -- sterge toate variabilele din memorie
Exemple:
RELEASE alpha, beta - sunt sterse variabilele
specificate
RELEASE ALL LIKE a* - sunt sterse toate variabilele care incep cu 'a'
RELEASE ALL EXCEPT b? - sunt sterse toate variabilele cu exceptia celor al caror
nume este format din doua caractere, din care primul este 'b'
Macrosubstitutie
Utilizarea
continutului unei variabile intr-o comanda ca identificator se poate face prin
mecanismul de macrosubstitutie. Indicarea
acestei operatii se face prin simbolul & care preceda numele variabilei.
Exemple:
alpha=”c:\lucru\elevi.dbf"
use alpha
&& se va deschide fisierul alpha.dbf
use &alpha
&& se deschide fisierul elevi.bdf din locatia specificata
var_macro='2*3'
?var_macro
&& se va afisa 2*3
?&var_macro
&& se va afisa rezultatul expresie : 6
Probleme
propuse :
1.
Scrieti un program care sa afiseze o interfata
care sa permita introducerea unui nou articol in tabela ELEVI.dbf (nume, prenume,clasa, profil). Ex:
a)
Repetati operatia de doua ori
b) Realizati un formular care sa afiseze datele unui elev. Se va citi de la
tastatura numele elevului
c) Utilizand mecanismul de macrosubstitutie afisati ipe o linie datele unui elev al carui nume se
va citi de la tastatura
d) Stergeti doua variabile
e) Stergeti variabilele a caror
identificator incepe cu n
f) Stergeti toate variabilele mai putin
cele care incep cu p
g) Stergeti toate variabilele
h) Creati tabela vanzari avand campurile : denumire, cantitate, client. Utilizand
mecanismul de macrosubstitutie generati
o tabela avand aceeasi structura ca si tabela vanzari si ca denumire data_curenta.dbf
(in format italian, ex 12-01-05.dbf) in care se vor pastra vanzarile din data respectiva. Sa se
stearga tabela in care se pastreaza vanzarile de ieri (11-01-05.dbf)