p9b20bg
A. 1. Constructii sintactice elementare:
1.1. Constante;
1.2. Variabile;
1.3. Operatori;
1.4. Expresii;
1.5. Functii;
1.6. Instructiuni;
1.7. Comenzi;
2. Structura generala a unui program FOXPRO;
3. Utilizarea editorului de texte FOXPRO pentru crearea si corectarea unui program
propriu;
4.Instructiuni pentru scrierea programelor cu structura secventionala:
4.1.Instructiuni de intrare;
4.2.Instructiuni de iesire;
4.3.Instructiuni de atribuire;
5.Instructiuni pentru realizarea programelor cu structura alternativa:
5.1.Instructiunea IF ENDIF;
5.2.Instructiunea DO CASE;
6.Instructiuni pentru realizarea programelor cu structura repetitiva:
6.1.Instructiuni de prelucrare a tablourilor (masivelor-vectori, matrice) OR NEXT….END
FOR;
6.2.Instructiuni repetitive de tip DO WHILE, DO UNTIL.
B.Organizarea si prelucrarea fisierelor cu SGBD, FOXPRO
1.Descrierea si incarcarea unei baze de date:
1.1.Conceptul de baze de date - entitati si legaturi intr-o baza de date;
1.2.Structura unui fisier DBF;
1.3.Incarcarea datelor intr-un fisier DBF;
1.4.Vizualizarea si actualizarea structurii unui fisier DBF;
1.5.Copierea structurii unui fisier;
2.Actualizarea continutului unui fisier DBF:
2.1.Adaugari;
2.2.Modificari:
2.2.1.Modificari punctuale;
2.2.2.Modificari globale;
2.3.Stergeri:
2.3.1.Stergerea logica;
2.3.2.Stergerea fizica;
3.Vizualizarea continutului unui fisier DBF:
3.1.Vizualizarea globala;
3.2.Vizualizarea selectiva;
4.Exploatarea unei baze de date:
4.1.Modul de acces la un fisier DBF:
4.1.1.Accesul secventional - comanda LOCATE;
4.1.2.Accesul direct: a.accesul direct dupa RECORD NUMBER;
(organizarea relativa a fisierelor;) b.accesul direct dupa o cheie;
(organizarea indexata a fisierelor, comanda INDEX ON;)
4.2.Utilizarea facilitatilor relationale ale SGBD FOXPRO:
4.2.1.Relatii intre entitati;
4.2.2.Stabilirea legaturilor logice intre 2 fisiere—SET RELATION TO;
4.2.3.Concatenarea fizica a 2 fisiere, comanda JOIN
5.Rapoarte—REPORT, RIDER;
6.Ecrane de introducere—SCREEN, BUILDER;
7.Proiectarea unei baze de date pentru managementul afacerilor externe a unei
firme.
In evolutia limbajelor de programare, prima generatie au reprezentat-o limbajele
de programare. La scurta vreme au aparut limbajele de asamblare, care foloseau
pentru desemnarea instructiunilor abrevieri numite mnemonice. Ex: A-adunare; S-scadere;
St-store memory operanzilor. Lucram cu adresele memoranzilor, cu registrele microprocesorului
solicitand un nivel inalt de profesionalism si o foarte buna cunoastere
a componentelor Hard.
Dezvoltarea sistemelor de operare a dus la o simplificare in tehnica de
programare prin aparitia limbajelor de generatia 3, numite limbaje algoritmice:
C, FORTRAND, PASCAL, BASIC, COBOL.
Limbajele de generatia a 4-a incorporate in asa zisele sisteme de
gestiune a bazelor de date SGBD sunt reprezentate de BASE-IV, FOXPRO, PARADOX, ORACLE,
ACCESS. Ele folosesc instructiuni cu actiune complexa usurand foarte mult
munca de redactare a unui program.
Ex: intr-un limbaj de generatia 3 pentru realizarea unui raport pe imprimanta,
pentru centrarea titlului, trebuiau numarate numarul de caractere ale textului
si numarul de caractere ce trebuiau lasate libere la stanga. Titlul trebuia
scris doar cu caractere standard, etc , pe cand intr-un limbaj de
generatia 4 este suficienta o comanda de genul TITLE=”xxx” FONT *
SIZE xx CENTRE. Se apropie foarte mult de limbajul natural.
Orice limbaj de programare indiferent de generatia dispune de vocabular si este
guvernat de reguli de sintaxa. Cu ajutorul vocabularului se realizeaza constructii
sintactice recunoscute de limbaj.
In cadrul acestor constructii sintactice apar cuvinte rezervate si cuvinte,
expresii scrise de programator. Cuvintelerezervate desemneaza instructiunile limbajului,
sau parametrii necesari acestora. Programul este obligat sa foloseasca aceste
cuvinte rezervate numai in concordanta cu semnificatia lor.
1.Constructii sintactice elementare in FOXPRO
Constantele FOXPRO utilizeaza constructii numerice cu sau fara semn; alfanumerice
incadrate intre ghilimele sau apostrof si logice: TRUE sau FALS incadrate
intre puncte ( .T. si .F.).
Folosim constante de tip data calendaristica: zzallaaa sau llazzaaa.
Variabilele: Reprezinta zone de memorie ce se folosesc intr-un program pentru
memorarea temporara a unor date. Tipul variabilelor se stabileste in mod
implicit in momentul intalnirii primei instructiuni de atribuire.
Daca variabilei i se atribuie o variabila numerica va fi considerata de tip numerica.
O variabila are un nume compus dintr-un sir de caractere din care prima nu trebuie
sa fie numar sau caracterul special j.
I se asociaza un tip numeric, logic sau alfanumeric si o marime. Tipul si marimea
unei variabile pot fi declarate prin optiunea PICTURE pentru tip, SIZE pentru
lungime.
O mentiune speciala trebuie facuta pentru variabilele care se vor afisa.
Pentru aceste variabile se mai pot stabili stilul de scriere, fondul cu care se
scriu, optiuni de inlocuire a sau spatiilor nesemnificative. Includerea
unor caractere speciale de tiparire $, £ (lira sterlina). Aceste optiuni
se mai pot exprima in afara de sablonul PICTURE si prin sablonul FUNCTION.
Aceste sabloane (P si F) sunt optionale si pot fi puse sau nu in comenzile
de citire si respectiv de afisare a datelor.
Utilizati HELP-ul FOX, comanda SAY GET sau comanda ? pentru inventarierea optiunilor
FUNCTION si PICTURE.
Operatorii sunt: -operatori aritmetici +,-,*,%, xx pentru exponentiere;
-operatori relationali >, <, =, =, =, iar pentru diferit <>, $ tot
pentru diferit
-operatori logici NOT, AND, OR
-operatori de concatenare a sirurilor de caractere +.
Expresiile folosite de SGBD FOXPRO se realizeaza cu ajutorul operanzilor si parantezelor
rotunde. Operanzii pot fi constante, variabile sau campuri din inregistrarile
fisierelor. Operatorii sunt cei cunoscuti.
In functie de natura operanzilor se decide si tipul expresiei: numerice,
sir de caractere, logice ce incorporeaza si operatori relationali.
Functiile reprezinta o categorie sintactica specifica fiecarui limbaj FOXPRO;
admite functii matematice, statistice, functii pentru datele calendaristice, functii
pentru prelucrarea sirurilor de caractere, etc. O categorie speciala sunt functiile
pentru tastatura si ecran, functiile pentru echipament, functiile financiare,
etc.
Ex: functia matematica SQRT - radical de ordin 2.
Instructiunile au o sintaxa generala in structura careia regasim numele
instructiunii si parametrii. In descrierea unei sintaxe putem intalni
urmatoarele notatii:
-parametrii scrisi cu majuscule reprezinta cuvinte rezervate si trebuie scrisi
ca atare;
-parametrii intre paranteze unghiulare reprezinta cuvantul utilizator
<> - numele unei variabile, unui fisier;
-parametrii inclusi intre paranteze drepte reprezinta parametrii optionali,
daca nu se pun, sistemul presupune o variabila implicita.
Daca intr-o lista de parametrii, parametrii sunt separati cu slasuri inseamna
ca trebuie sa alegem < a a > unul dintre ei.
Instructiunile se regasesc in program si se executa in
momentul in care un program in intregul sau este lansat
in execuþie.
Comenzile : FOXPRO admite intre altele trei moduri de lucru (operare) modul
meniu, modul comanda ii modul program.
Modul meniu FOXPRO are un meniu principal care ofera o lista cu
instrucþiunile pe care le vom numi comenzi in sensul ca se
executa imediat ce au fost selectate. Aceste comenzi pot fi dactilografiate
individual intr-o fereastra de comenzi, acest mod de lucru se va
numi mod comanda.
In categoria comenzilor se regasesc cu prioritate acele instrucþiuni
de manipulare a datelor, de setare a sesiunii de lucru. Foarte rar se folosesc
instrucþiuni de prelucrare la nivel de camp in modul de lucru
comanda. Comenzile folosite in modul comanda se mai numesc
full screen .
2.Structura generala a unui program
Un program reprezinta un ansamblu de instrucþiuni care formeaza
un tot unitar. Execuþia unui program este posibila numai dupa
verificarea sintactica a modului de redactare numita compilare.
Comenzile de compilare si de executie ale unui program se regasesc in
meniul program din meniul principal. Programele FOXPRO se vor gasi sub
forma unor fisiere cu extensia PRG.
Un program FOXPRO contine pentru inceput o serie de instructiuni pentru
setarea modului de lucru; se fac cu instrucþiunea SET.
Ex: SET TALK OFF-efect anularea afisarii pe ecran a textului programului
atunci cand programul e lansat in execuþie.
Urmeaza instrucþiunile de citire a datelor de instr. pentru calcule,
instr. de afisare si inchiderea programului cu comanda RETURN. Orice program
are un nume, reprezentand numele fisierului cu extensia PRG. Lansarea in
executie a unui program se face cu comanda DO + nume program.
Comanda RETURN are ca efect revenirea in fereastra de comenzi dupa
terminarea programului.
3.Utilizarea editoriului propriu FOXPRO
Redactarea unui program se face cu ajutorul unui editor de texte simplificat incorporat
limbajului FOXPRO. Apelarea acestui editor se face cu comenzile:
-MODIFY COMMAND <nume program>
-MODI COMM <numele programului>
Editorul de texte deschide o fereastra in care se redacteaza
textul programului. Dupa terminarea redactarii textului program
se activeaza meniul program, se compileaza textul programului, iar
daca este corect se apasa tasta ESC. Actualizarea sau modificarea
textului programului se face cu aceeasi comanda MODI COMM<nume program>.
4.Instructiuni pentru scrierea (realizarea) programelor cu structura secventiala.
Instructiuni de intrare . O instructiune de intrare are ca efect oprirea programului si trecerea intr-o stare de asteptare in vederea introducerii
de la tastatura a datelor. Reluarea programului si sfarsitul instrucþiunii
se produce dupa apasarea tastei ENTER ( ).
Instructiunea INPUT a<mesaj>i TO <nume- variabila> si instructiunea
ACCEPT a<mesaj>i TO <nume -variabila alfanumerica>.
Instructiunea INPUT permite introducerea datelor numerice si alfanumerice.
Instructiunea ACCEPT se foloseste numai pentru date alfanumerice ce nu pot fi
folosite in calcul.
Mesajul este un text care se tipareste pe ecran avand caracter informativ
pentru operator.
Ex: PRET=0
CANT=0
INPUT TO PRET
INPUT “INTRODU CANTITATEA” TO CANT
………….
INTRODU CANTITATEA
(in absenþa mesajului nu tipareste nimic)
Instrucþiuni de afisare
Cea mai simpla instructiune este ? respectiv ??. Semnul intrebarii
(?) are ca efect tiparirea valorilor variabilelor aflate in <lista>
si avansul la randul urmator. ?? -are ca efect tiparirea valorilor
fara avans in prealabil pe randul urmator.
Lista - conþine variabilele separate prin virgula. Atat in
comanda INPUT cat si in ? pot fi prezentate optiunile PICTURE sau
FUNCTION.
Instructiunea complexa: @l,c SAY … GET
READ
-este o instructiune de intrare-iesire formatata a datelor. Secventa @,l,c plaseaza
cursorul pe linia l, coloana c. a1,25i-linii, a1,80i-coloane.
Secventa SAY “mesaj” este comanda de afisare a unui mesaj sau variabila,
sau constanta.
GET este comanda de citire a valorilor de la tastatura si introducerea valorilor
in variabila precizata in cadrul instrucþiunii <nume-variabila>.
Comanda READ este comanda prin care o suita de instrucþiuni @, l,
c..SAY…GET devin active.
Instructiuni de atribuire servesc pentru evaluarea unei expresii si plasarea rezultatului intr-o variabila. Sunt 2 instrucþiuni:
STORE <expr.> TO <nume-var.> nume variabila = <expresie>
Ex: STORE A+B TO C
STORE S TO D
STORE SPACE(20) TO TITLU
A = 7
STORE 0 TO ,I, J, K
SF = SI+I-E
DATE I:SI,I,E
DATE E:SF
VAR.1 VAR.2
MODI COMM P1 MODI COMM
SET TALK OFF SET TALK OFF
INPUT “SI=” TO SI NOTE INITIALIZARI
INPUT “INTR=” TO I STORE 0 TO SI, SF, I, E
INPUT “IESIRI=” TO E CLEAR
SF=SI+I-E @5,20 SAY “DATELE DE I”
? “STOC FINAL=”, SF @6,15 SAY “STOC INIT” GET I
RETURN @7,15 SAY INTRARI” GET I
@8,15 SAY “IESIRI” GET E
STORE (SI+I-E) TO SF
? “STOC FINAL=” , SF
RETURN
5.Instructiuni pentru realizarea programelor cu structura alternativa
Instructiunea IF ENDIF:
Sintaxa IF <expr.logica/conditie>
Instructiunea 1 Adev.
aELSEi
Instructiunea 2 Neadev.
ENDIF
IF are doua ramuri:
-daca expresia este adevarata se executa instructiunea 1;
-daca expresia nu este adevarata se executa instructiunea 2.
Ramura ELSE este optionala
Ex: E= 1, x=0, y? 1
2, x=0, y=1
3, x?0, y?1
4, x?0, y=1
SET TALK OFF
INPUT “x=” TO x citirea variabilelor
INPUT “y=” TO y
IF x=0
IF y=1
E=2
ELSE
E=1
ENDIF
ELSE
IF y=1
E=4
ELSE
E=3
ENDIF
ENDIF
? “E=”, E
RETURN
Instructiunea DO CASE -permite sa tastez o conditie cu valori multiple; nu este
limitata precum instructiunea IF la 2 valori adevarat si fals.
E= 1 , x<0
2 , x=0
3 , x>0
SET TALK OFF
INPUT “x=” TO x
DO CASE
CASE x<0
E=1
CASE x=0
E=2
OTHERWISE (-altminteri)
E?3
ENDCASE
6.Instructiuni pentru realizarea programelor cu structura alternativa
6.1.Instructiuni pentru prelucrarea tablourilor.
Un vector sau o matrice se declara cu instructiunea DECLARE (nume-vector)-numar
elemente sau DECLARE (nume-matrice)-numar linii, numar coloane.
Instructiunea de prelucrare repetitiva pentru vectori si matrici este instructiunea
FOR…ENDFOR
Sa se faca programul pentru determinarea mediei aritmetice a elementelor unui
vector de 10 componente.
SET TALK OFF
STORE 0 TO S, MED, I
DECLARE V(10)
FOR I=1 TO 10
? “PASUL” , I
INPUT “INTRODU VALOAREA ELEMENTELOR” TO V(I)
S=S+V(I)
ENDFOR
MED=S/10
? “MEDIA ARITMETICA=” , MED
RETURN