CATEGORII DOCUMENTE |
PROGRAMAREA CALCULATOARELOR
Operatorul NOT sau negatia in fata parantezei transforma operatorul SI(AND) in SAU(OR) si invers.
De exemplu:
NOT (A si B)=NOT A sau NOT B
NOT (A sau B)=NOT A si NOT B
NOT(NOT(A si B)) = NOT(NOT A sau NOT B) = NOT(NOT A) si NOT(NOTB)=A si B
NOT(NOT(A sau B)) = NOT(NOT A si NOT B) = NOT(NOT A) sau NOT(NOTB)=A sau B
Sistemul de numeratie este format dintr-o multime formata din simboluri numite cifre impreuna cu o multime de reguli care se folosesc pentru reprezentarea numerelor.
Un sistem de numeratie este o algebra aplicata pe o multime.
Corespondenta cifrelor din sistemul Hexazecimal cu cifrele sistemului sistemului Binar:
a16 |
A |
B |
C |
D |
E |
F |
||||||||||
a2 |
Unitatile de masura a informatiei
OCTET-este cea mai mica unitate de masura a informatiei adresabila in calculatoare
1OCTET=8BITI=1BYTE
1KB=1KO=210octeti=1024octeti
1MO=1MB=210KO=220octeti=1024*1024octeti
1GO=1GB=210MO=220KO=230octeti
1TO=1TB=210GO=220MO=230KO=240octeti
Algoritmul e o succesiune de operatii cunoscute care executate intr-o anumita ordine si de un numar finit de ori duce la rezolvarea unei problemei.
Stabilirea algoritmului este cea mai importanta etapa in rezolvarea unei probleme cu calculatorul.
Caracteristici ale algoritmilor
Generalitate este propietatea algoritmului de a putea fi aplicat la toate problemele de acelasi tip.
Finitudinea este calitatea algoritmululi de a obtine solutia problemei intr-un numar finit de pasi. Algoritmii care au un numar infinit de pasi duc la un algoritm care bucleaza.
Claritatea este proprietatea algoritmilor de a stabili o ordine exacta a operatorilor.
Algoritmii se reprezinta cu ajutorul a patru tehnici de reprezentare:
scheme logice
- limbajul convetional
limbajul algoritmic sau pseudocod
- tabele de decizie.
Schemele logice reprezinta un mod intuitiv si schematic de prezentare a algoritmului.
Limbajul conventional si algoritmic inseamna explicarea algoritmului cu reguli sintactice.
Programele calculatorului (SOFTWARE)
Acestea se impart in 3 categorii:
1)Programe de baza(sisteme de operare)
-inscrise in memoria de tip ROM ,PROM, EPROM si RAM
2)Programe utilitare
-programe de seviciu de larga utilitate:
Microsoft Office,Excel,Norton Explorer,Internet Explorer
3)Programe de aplicatii
-destinate utilizatorilor pentru diverse scopuri realizate de informaticieni.
In cadrul programelor de aplicatii -sisteme de gestiune a bazelor de date: dintre cele mai cunoscute sunt SGBD ORACLE, SGBD SYBASE, SGBD DB2, etc.
-aplicatii propiu-zise
Limbajul de programare este un limbaj recunoscut de calculatoarele electronice. El preia algoritmii din proiectele informatice si ii traduce conform regulilor propii.
Orice limbaj de programare e format dintr-o multime de cuvinte rezervate numite vocabular si o multime de reguli numite gramatica. Vocabularul + gramatica definesc instructiunile.
Pentru prezentarea unui limbaj de programare de regula se foloseste un alt limbaj de descriere numit Metelimbaj
Metalimbajul prezinta instructiunile in format general cu toate posibilitatile lor. Fiecare limbaj poate avea metalimbajul sau propiu dar de regula exista un metalimbaj general care foloseste urmatoarele conventii.
1)Cuvintele scrise cu litere mari sunt Cuvinte rezervate. Cuvintele rezervate sunt expresii clare si scurte in limba engleza care exprima actiuni exacte.
De exemplu: ADD pentru adunare.
] Parantezele mari arata ca o parte din instructiune e optionala..
3) Ce se scrie intre acolade inseamna ca sunt mai multe optiuni si se poate alege intre ele.
Arata o repetitie posibila in cadrul instructiunii.
5)ADD Un cuvant scris cu litera mare si subliniat e un cuvant cheie. Cuvintele cheie sunt obligatorii in cadrul instructiunii, ele nu pot fi omise de programator deoarece exprima lucru esentiale pentru instructiunea respectiva.
6)Dintre
mai multe optiuni daca una este subliniata inseamna ca aceasta este valoarea
implicita si daca programatorul nu alege nici una dintre optiuni se va selecta
optiunea implicita.
Avem trei clase de limbaje de programare: PROCEDURALE, NEPROCEDURALE, SPECIALIZATE.
Limbajele procedurale sunt acelea in care se descrie operatia de executat si ordinea in care trebuie executate operatiunile. Astfel de limbaje sunt: FORTRAN, COBOL, ALGOL, PL/1, PASCAL.
Limbajele neprocedurale sunt de nivel foarte inalt in care se precizeaza mai mult problema care trebuie rezolvata si mai putin cum trebuie rezolvata. De exemplu limbajele gazda ale sistemelor de gestiune a bazelor de date.
Limbajele specializate sunt dedicate rezolvarii unor anumite categorii de probleme. De exemplu: JAVA, PHP, XML,(orientate obiect), LISP pentru editare, COBOL pentru probleme economice, FORTRAN pentru probleme stiintifice, etc.
CARACTERUL este cea mai mica unitate structurala a unui program.
CUVANTUL este o unitate structurala care are semnificatie pentru prelucrare.
CUVINTE CHEIE au semnificatia bine definita in regulile din instructiuni. Cuvintele cheie nu pot fi folosite ca NUME de DATA in program.
IDENTIFICATORI sau NUMELE DATA sunt nume de variabile, de atribute, de subrutine, de functii sau proceduri.
Cu ajutorul lor se pot face referiri la date.
OPERATORUL este format din caractere speciale sau identificatori care definesc operatii elementare.De exemplu:"*" sau MULTIPLY (inmultire), / sau DIVIDE pentru impartire, etc.
BLOCUL e o bucata dintr-un program in care este valabila o variabila locala.
Variabilele sunt de doua feluri:
-globale(la nivelul intregului program)
-locale (private)
PROCEDURA, MODUL SAU ROUTINA e o secventa de instructiuni care realizeaza o functie anume.
PROGRAMUL e o entitate structurala ce poate fi executata pe calculator printr-o singura lansare in executie.
PROGRAME SEGMENTATE sunt programe formate din mai multe segmente (module, notiune, etc.) care sunt astfel structurate incat sa poata fi incarcate separat in memoria centrala pentru executie.
PROCESUL reprezinta un program lansat in executie.
Variabila e un identificator al caror valori se cunosc numai in momentul executiei programelor.
Tip de data defineste felul si natura datelor.
Constanta e un identificator sau o valoare care nu poate fi modificata pe parcursul executiei programului.
Sirul e o multime de caractere. Numarul de elemente formeaza lungimea sirului. Operatia cea mai importanta cu siruri se numeste CONCATENARE.
Tabloul e o multime ordonata de acelasi tip de date. Numarul de indici folosit pentru identificarea unui element determina dimensiunea tabloului A(i)vector,A(ij) matrice,A(ijk) cub.
Lista e o secventa de elemente. Se compune din 2 parti: adresa de inlantuire si informatie utila.
STIVA
vizibil
sfarsit
inceput
Stiva e o colectie de date care se gestioneaza dupa principiul LIFO (Last Input First Output), adica ultimul intrat primul iesit.
Coada - se refera la coada de asteptare si este de tip FIFO primul intrat primul iesit. E o insiruire de date care se gestioneaza.
Compilatoarele sunt programe care traduc un program din limbaj de programare in limbaj cod-masina.
Forma programelor dupa traducere se numeste FORMAT EXECUTABIL si are in general extensia EXE
Interpretoarele sunt limbaje de programare care preiau instructiuni si pe care le executa imediat, furnizand rezultatul prelucrarii.
Mediile de programare realizeaza functii multiple. In cadrul mediilor de
programare se pot intalni compilatoare, interpretoare, sisteme de gestiune a
bazelor de date si alte sisteme software pentru programare.
Mediul Visual Fox admite urmotoarele tipuri de date:.
numerice (simplu, dublu, intreg, monetar)
sir de caractere
date pentru gestiunea timpului(date, time)
memo
general
logic(boolean)
Datele numerice reprezinta numere. Asupra datelor numerice se pot executa operatii aritmetice. Cele mai cunoscute operatii aritmetice sunt simbolizate astfel:
- ridicarea la putere
* - inmultire
: - impartire
- adunare
- scadere
mod n - restul impartirii la n
Datele numerice ca variabile constante impreuna cu dentificatorii cu valoarea variabila formeaza expresii numerice.
Asupra expresiei aritmetice se pot executa urmatoarele operatii relationale:<, >, = ,>=, <=, , !=, <>.
Gestioneaza data, ora, minute, secunde in calculator
Pentru definirea tipului de data se foloseste instructiunea
SET DATE TO "tip"
*admit urmatoarele tipuri de date.
Timpul |
Descrieri |
American |
ll/zz/aa |
British |
zz/ll/aa |
USA |
ll-zz-aa |
Modificarea formatului de data de la un format la altul se face prin SET DATE si se alege tipul.
Pentru a seta anul din DATE pe 2 sau 4 caractere se foloseste:
SET CENTER cu 2 optiuni ON an pe 2 caractere
OFF an pe 4 caractere
Alegerea delimitatorului care se va folosit intre elementele datei se face cu :
SET MARK TO "X " Unde "x" este delimitatorul dorit.
Exista clauze pentru pentru extragerea zilei, lunii sau anului din data, astfel:
DOW (DATE ( ))-extrage din data existenta in calculator ziua
din saptamana datei
CDOW (DATE ( ))-extrage din data existenta in calculator ziua
sub fotma de nume din saptamana datei
MONTH(DATE ( ))-extrage luna
YEAR(DATE ( ))-extrage anul.
Exista clauze pentru gestiunea TIMPULUI (ore, minute, secunde)
*clauze pentru: ore SET HOURS oo
minute SET MINUTE mm
secunde SET SECONDS ss
Conversii din Date sir de caractere si invers:
DTOC
CTOD
?ABS(a)-valoare absoluta a nr "a"
?SIGN(a)-semnul lui "a"
?INT(a)-aproximare la intreg a variabilei "a"
?INT 14,25=14
EXP(x)-exponential ex
LOG(x)-log(x)
LOG10(x)-lg(x)
SQRT-radical
*conversia din grade in radian
DTOR
*conversia din radian in grade
RTOD
Sin(x)
Cos(x)
Tan(x)
Asin(x)
Acos(x)
Atan(x)
Sirurile de caractere se mentioneaza intre apostroafe sau ghilimele.
Asupra sirurilor de caractere se pot efectua operatii de concatenare si de extragere de subsiruri. Avem concatenare simpla(+) si speciala.
Concatenarea simpla ataseaza sirurile unul langa celalalt
De exemplu: "SALUT"+"PRIETENI"=SALUT PRIETRNI
De exemplu: "salut_____"-"prieteni"-elimina spatiile de dupa primul sir.
Se pot face toate operatiile logice(operatori relationali) intre sirurile de caractere.
Functii referitoare la subsiruri de caractere
Forma generala:
?SUBSTR(sir, adresa, lungime)
Extrage dintr-un sir de caractere un subsir care incepe cu pozitia adresa si are lungimea "lungime".
De exemplu:
?SUBSTR(Raluca Enache 8,3)
raspuns: Ena
Forma generala:
?LEFT(sir,numar)
Extrage dintr-un sir de caractere un subsir care incepe cu primul caracter de la stanga si are o lungime de "numar" caractere.
De exemplu:
LEFT("LA MULTI ANI",2)
raspuns: LA
Forma generala:
RIGHTH(sir, nr)
Extrage dintr-un sir de caractere un subsir care incepe cu primul caracter de la dreapta sirului si are o lungime de "nr" caractere.
De exemplu:
RIGHTH("LA MULTI ANI",3)
raspuns: ANI
ALLTRIM(sir) - elimina toate spatiile de la inceputul si de la sfarsitul sirululi
LTRIM(sir) - elimina spatiile de la stanga sirului
RTRIM(sir) - elimina spatiile de la dreapta.
Forma generala:
PADC(sir, numar, caracter)
Instructiunea adauga la dreapta si la stanga sirului un numar de "numar" caractere din tipul "caracter"
De exemplu:
PADC("PAGINA","40","-")
40 "-"----- ----- ----PAGINA----- ----- -----40 "-"
Forma generala:
PADL(sir, numar, caracter)
Instructiunea adauga la stanga sirului un numar egal cu "numar" caractere de tipul "caracter"
De exemplu:
PADL("PAGINA","40","-")
40 "-"----- ----- -----PAGINA
Forma generala:
PADR(sir, numar, caracter)
Instructiunea adauga la dreapta sirului un numar egal cu "numar" caractere de tipul "caracter"
De exemplu:
PADL("PAGINA","40","-")
PAGINA----- ----- -----40 "-"
Exemplu pentru concatenarea simpla a sirurilor:
ADRESA:
STRADA
NUMAR
BLOC
APARTAMENT
"strada"+"numar"+"bloc"+"apartament".
Functii care realizeaza transformarea sirurilor de caractere
Forma generala:
LOWER (sir)
Transforma literele mari in litere mici.
Forma generala:
UPPER (sir)
Transforma litere mici in litere mari.
Forma generala:
PROPER (sir)
Prima litera din cuvant va fi litera mare si restul mici.
Forma generala:
PROPER "ionescu andrei"
Literele de la inceputul cuvantului vor fi mari iar celelalte miciIonescu Andrei.
Functii :
Evaluarea unui sir:
VAL(sir) - evalueaza valoarea unu sir
Sir=123 VAL("123")123
Evaluarea unei expresii:
EVALUATE-evalueaza o expresie si returneaza valoarea ei
EVALUATE(expresie)
A=121
Nume=a
EVALUATE(NUME+VAL("7")128
Evaluarea minimului:
MIN( )- exprima valoarea minima a unei multimi sau a unei expresii.
MIN(7,6,4,3)
MIN(A,TETA,ZI)
Evaluarea maximului:
MAX( )-exprima valoarea maxima a unei multimi sau expresii.
Verificarea incadrarii intr-un interval:
BETWEEN(nr1,nr2,nr3)
Se verifica daca nr1 se incadreaza intre nr2-nr3.
Daca DA .T.
altfel.F.
Sunt date care nu se memoreaza in tabela in care sunt scrise ci in alta tabela pentru a mari performanta si a economisi spatiu.
Tehnologia cu ajutorul careia se gestioneaza aceste tipuri de date se numeste OLE(Object Linking and Enbedded), legare si incorporare obiecte.
Pentru campurile descrise cu tipul de date "MEMO" se dezvolta automat cate o tabeli separata pentru fiecare camp MEMO, tabela cu numele "nume_camp".FTP.
Astfel daca vorbim despre tabela ANGAJATI.DBF in care campul ADRESA este tip MEMO atunci se va genera o tabela separata ADRESA.FTP care va memora mai economic numele din ADRESA. Legaturile intre cele doua tabele sunt gestionate automat.
tabela -ANGAJATI .DBF.
atribute-MAIRICOL
FUNCTIE
NUME
ADRESA
ADRESA *MEMOADRESA .FTP.
Adresa1 Bulevardul 1 decembrie 1918
adresa2 Ion Creanga 7
adresa3 Ion Buteanu 17
adresa4 Trandafirilor 43
Sunt informatii care au fost create de alte produse in alte aplicatii si vor fi prelucrate in acest camp descrise de tip general.
Structuri de prelucrare posibila
Structura secventiala
a=b
c=7 se executa in aceasta ordine
d=9
Structura ramificata
Cu o singura ramura
IF conditie <instructiuni>
ENDIF
Bloc cu 2 ramuri
IF conditie
<instructiuni1>
ELSE
<instructiuni2>
ENDIF
Cu mai multe ramuri
DO CASE
CASE condtie 1
<instructiuni 1>
CASE conditie2
<instructiuni 2>
CASE conditie n
<instructiuni n>
OTHERWISE
Instructiune n+1
ENDCASE
Instructiunea functioneaza astfel:
Se verifica conditia 1 daca este .T. se executa instructiuni 1
.F, se verifica conditia 2
Daca conditia 2 este .T. se executa instructiuni 2
.F. se verifica conditia 3
Daca nici o conditie nu este .T. atunci se executa Instructiuni n+1 de dupa OTHERWISE
De exmplu:
DO CASE
CASE TRIM=1
Sir=?ianuarie, februarie, martie
CASE TRIM=2
Sir=?aprilie, mai, iunie
CASE TRIM=3
Sir=iulie, august, septembrie
OTHERWISE
Sir=?"trimestru eronat"
ENDCASE
Instructiune repetitiva
a. cu numar cunoscut de pasi
FOR,ENDFOR
SCAN, ENDSCAN
b. cu un numa necunoscut de pasi
DO WHILE ENDDO si FOR
Forma generala:
FOR<variabila>=<valoarea initala> TO<valoarea finalaSTEP <pas>
<instructuni>
ENDFOR
Modul de functionare: "Variabila" ia valoarea initala si la fiecare ciclu de parcurgere a tuturor instructiuniilor pana la EDNFOR se aduna la "variabila" valoarea din pas. Ciclul se repeta pana cand variabila ajunge la valoarea finala.
De exemplu: Se dau primele 100 de numere naturale si se cere sa se scrie o secventa de program care sa realizeze suma acestora.
N=100
SUMA=0
FOR i=1 TO n STEP .1.
SUMA=SUMA+i
ENDFOR
Instructiunea SCAN se refera la tratarea unor tablouri sau domenii de date si se executa ciclul FOR.....WHILE pana cand se parcurge tot domeniul.
Forma generala:
SCAN[NOOPTIMIZE]
<domeniu> FOR <conditie 1> WHILE <conditie 2>
ENDSCAN
Instructiunea SCAN functioneaza ca si instructiunea FOR cu un ciclu controlat doar ca parcurge o tabela sau un fisier pentru toate articolele existente in tabela sau fisier . Instructiunele se executa pentru toate articolele care indeplinesc conditia 1. Prelucrarea se opreste la sfarsitul tabelei sau fisierului sau daca conditia 2 a devenit FALSA.
<domeniu> limiteaza aria de prelucrare cu urmatoarele optiuni:
ALL tot domeniul
NEXT n
REST
Scrieti o secventa care afiseaza salariile brute pentru toate salariatele din tabela de salariati a unei firme:
SCAN
FOR SEX="F"
?salar brut
ENDSCAN
Forma generala:
DO WHILE <conditie>
Instructiuni
ENDDO
Se executa secventa de instructiuni atata timp cat conditia este Adevarata, cand conditia este F se termina instructiunea si se continua dupa ENDDO.
De exemplu: 1)Sa se calculeze suma primelor p numere naturale care au sursa lor mai mica de 100(<100)
suma=0
p(numarul de numere)=1
DO WHILE suma<100
suma=suma+p
p=p+1
ENDDO
suma=suma-p
p=p-1
@ s-au adunat;"p"numere naturale
@ s-a obtinut "suma":suma
De obicei cand tratam fisier sau tabele exista o functie numita EOF (end of file) care controleaza sfarsitul de fisier. Utilizarea acestei functii se face astfel:
DO WHILE NOT (EOF)
instructiuni din ciclu
ENDDO
INSTRUCTIUNEA DIMENSION - pentru definirea masivelor de date
Forma generala:
DIMENSION Masiv1(expN1,expN2), . vezi anexa
Depanarea programelor foarte mari ridica probleme deosebite si e dificila. Pentru a inlatura acest neajuns s-a definit notiunea de modularizare. Modularizarea consta in gruparea unor instructiuni care realizeaza prelucrari bine definite. Aceste elemente de program numite module se regasesc sub forma de proceduri sau functii.
De exemplu ]ntre[inerea datelor dintr-o tabela se face realizand cele trei operatii posibile asupra oricarei inregistrari: adaugare, modificare, stergere. Controlul acestor operatii se poate realiza mai usor daca se modularizeaza programele si se foloseste tehnica procedurilor sau a functiilor.
O procedura e un grup de instructiuni care primeste de la programul apelant o lista de parametrii, realizeaza prelucrarile din procedura si preda inapoi controlul la programul apelant. Se defineste procedura si se scrie, apoi se apeleaza din toate punctele programului unde aceasta este necesara.
Format general:
Definirea procedurii:
PROCEDURA <nume procedura>
Instructiunile procedurii
ENDPROC
Apelarea procedurii se face cu DO nume procedura:
DO nume procedura
Prezentam ca exemplu intretinerea datelor dintr-o tabela.
INTRETINERE TABELE
A-adauga
ACT M-modifica
S-sterge
Instructiunile programului in secventa vor fi urmatoarele:
IF ACT ="A"
DO ADAUGARE
ELSE
IF ACT="M"
DO MODIFICARE
ELSE
DO STERGERE
ELSE ?"campul ACT este eronat" ACT.
La sfarsitul programului se definesc instructiunile celor trei proceduri apelate, astfel:
PROCEDURE ADAUGARE
Instructiuni adaugare
- care realizeaza adaugarea(introducere date, gestionarea campurilor cheie daca este cazul, scrierea articolului nou, etc.)
ENDPROC
PROCEDURE MODIFICARE
Instructiuni modificare
- care realizeaza modificarea(citirea articolului vechi, modificarea campurilor dorite, scrierea articolului modificat, etc.)
ENDPROC
PROCEDURE STERGERE
Instructiuni stergere
- care realizeaza stergerea (citirea articolului care trebuie sters, stergerea articolulului, etc.
ENDPROC
Functiile sunt un set de instructiuni care primesc de la programul principal niste parametrii pe care ii folosesc in calculele instructiunilor din functie si returneaza programului principal REZULTATUL.
Functiile se folosesc atunci cand avem instructiuni de mare generalitate care fac, de regula calcule, si care se folosesc in multe locuri intr-un program sau aplicatie.
Se defineste functia si se scrie, apoi se apeleaza din toate punctele programului unde aceasta este necesara.
Format general:
Definirea functiei:
FUNCTION <nume functie>
Instructiunile functiei
ENDFUNC
Apelarea procedurii se face prin simpla mentionare a numelui functiei respective:
nume functie
Apelare:<nume functie>
De exemplu: Se cere sa se elaboreze o secventa de program in limbajul Fox Visual care sa Cnk .
Cnk=
Se observa ca in aceasta formula trebuie calculate trei factoriale. In loc sa scriem un program obisnuit si sa repetam de trei ori modalitatea de calcul al factorialului dar cu alte date, mai usor este sa definim o functie de ex. FACT care face calcul pentru orice factorial.
Iata secventa de program obisnuita cu trei calcule de factorial:
n=6 ;k=3;
FACTORIAL 1=1
FOR i=1,n,1
FACT1=FACT1*i
ENDFOR
FACT2=1
FOR i=1,k,1pasul1
FACT2=FACT2*i
ENDFOR
FACT3=1
FOR i=1 ,N-K,1
FACT3=FACT3*1
ENDFOR
COMBINARI=FACT1/FACT2/FACT3
In cele ce urmeaza se prezinta secventa de program care foloseste o functie FACT pentru calculul factorialului:
n=6 ; k=3
COMBINARI=FACT(n)/(FACT (k)*FACT (n-k))
FUNCTION FACT
PARAMETERS FACTORIAL
FOR i=1,t,1
FACTORIAL=FACTORIAL*i
ENDFOR
RETURN FACTORIAL
Corespondenta intre parametrii trimisi functiei din programul principal si variabilele de lucru din intervalul functiei descrie in clauza PARAMETERS, se face prin corespondenta pozitiei fizice de 1 la 1 intre parametrii trimisi si primiti.
In cazul nostru functia FACT este apelata cu cate un singur parametru: n - in primul apel, k - in al doilea apel si n-k in al treilea apel. Fiecarui parametru la apelul functiei ii corespunde variabila FACTORIAL din lista de parametrii a functiei.
Iata un exemplu simplu de folosire atat a functiilor cat si a procedurilor:
CLEAR
Do cadru
?mesaj ()
FUNCTION mesaj
RETURN "lucram in FOX"
PROCEDURE cadru
@ 10,12,14 to BOX
ENDPROC
Corespondenta intre parametrii trimisi unei functii sau proceduri si variabilele acestora se face astfel:
1)Se stabilesc variabilele care sunt parametrii ce se trimit procedurii sau functiei.
2)Se face o corespondenta intre lista de parametrii trimisi si lista de variabile din cadrul procedurii sau functiei folosind corepondenta pozitionata..
3)Lista de variabile din procedura sau module trebuie sa aiba cel putin atatea elemente cate elemente are lista de parametrii trimisi din program.
4) In cazul in care nu se poate face corespondenta parametrilor se obtine un mesaj de eroare.
Tipuri de variabile:
Avem 2 feluri de variabilegenerale(publice)
locale(private)
Variabilele generale sunt active pe tot parcursul executiei programului astfel spus ele se pot folosi in proceduri, programe principale, functii, in tot timpul programului.
Variabilele locale sunt active numai in cadrul modulului unde au fost definite, sau in modulele care deriva structural din acestea.
Tabelele sunt o colectie de date omogene din punct de vedere a semnificatiei si al cerintelor de prelucrare.
Exemplu:
ANGAJATI.DBF(data base file)
Inreg1 CAMPURI 1 2 ........n
Inreg2
Inreg n
Orice tabela e formata din inregistrari sau articole.Referitor la fiecare inregistrare avem definite anumite caracteristici care se numesc campurei.Orice camp se defineste prin urmatoarele elemente:
nume
tip(N,C,D,L,D..)
lungime (cati octeti maximi sunt rezervati pentru campul respectiv)
numar zecimale (daca este cazul)
de exemplu: N(9,2) este un tip numeric cu noua octeti din care 2 zecimale.
Definirea accesului la tabel (deschiderea tabelei) se face cu instructiunea USE
Format general:
USE<tabela> IN <zona de lucru>[ALIAS nume]
De exemplu
USE angajati IN 1
USE clienti in 2
SELECT 1
Totdeauna e activa tabela din ultima instructiune USE sau SELECT.
Clauza Alias face o asociatie logica intre numele tabela si numele stabilit in clauza Alias. Daca nu se utilizeaza clauza ALIAS numele logic va fi tocmai numele tabelei.
USE angajati in 2 ALIAS SALARIAT
?SALARIAT SALAR
USE ANGAJATI in 2
?ANGAJATI SALAR
Acestia se refera la numarul unei anumite inregistrari din tabela. Gestionarea indicatorului de inregistrare se face de catre programator folosind RECNO() pentru a afla inregistrarea curenta, respectiv GOTO TOP pentru a se deplasa indicatorul pe prima inregistrare, GOTO BOTTOM pentru a se deplasa cursorul pe ultima inregistrare, GOTO <numar inregistrare> pentru a deplasa indicatorul pe o inregistrare oarecare.
Formatul general:
RECNO ()
GO TO TOP (la inceput) [in zona de lucru]
GO TO BOTTOM(la sfarsit)[in zona de lucru]
GO TO <numar inregistrare>[in zona de lucru]
De exemplu:
USE angajati
GO TO 7
?RECNO ()
Instructiunea USE fara parametrii inchide toate tabelele.
Formatul general:
RECCOUNT (tabela)
Arata cate inregistrari sunt in tabel
Formatul general:
SKIP <nr inregistrari>[in zona de lucru]
Deplaseaza indicatorul de inregistrari peste "nr.inregistrari".
Exemple:
?RECNO ( )
SKIP 5
?RECNO ( )
SKIP 5
?RECNO ( )
Exista 3 metode pentru crearea tabelelor
1)Creare de tabele cu definirea interactiva a campurilor
CREATE <nume tabela [DBF]>
] <camp2>[]
Camp 1, camp2, - reprezinta criteriile de sortare
Instructiunea executa ordonarea fizica a tabelei (deschisa curent) active. Operatia de sortare se executa pentru tabela curenta si rezultatul se depune fizic in <tabela sortata> (scriem un nume).
Campurile de dupa clauza ON definesc criteriile de sortare. Sortarea dupa camp2, camp3 n se face numai atunci cand pentru camp1 avem acelasi valori.
Optiunile A/D au urmatoarea semnificatie:
A-ascending (crescator)
D-discending (descrescttor)
Criteriul de sortare camp1, camp2 pot fi si expresii.
Exemple:
SORT to <angajati> on <nume>
SORT to <angajati> on <nume+prenume>
USE ANGAJATI
SORT TO ANGAJATI SAL ON SALAR_BRUT /D
USE ANGAJ. SAL
BROWSE
Criteriul de indexare e un camp, mai multe campuri sau o expresie. INDEXAREA este o tehnica prin care vedem inregistrarile din tabele in ordinea criteriului de indexare desi fizic inregistrate sunt in forma initiala.
Filozofia indexarii
Pe langa tabela de date se creaza o tabela ajutatoare numita TABELA DE INDEX care are campuri ordonate dupa criteriile de indexare. Langa fiecare camp din tabela de index aferent unui criteriu de indexare se mai afla cate un camp care se refera la informatia de adresa a inregistrarii fizice respective. Vezi exemplul de mai jos unde informatia de adresa a inregistrarii fizice se gaseste in Nr.Inregistrare.
Angajati DBF (fisier)
Nr inregistrat NUME PRENUME SALAR BRUT
Popa Mihai 1.216.000
Constantin Ion 1.679.000
Dumitrescu Ioana 3.530.000
Dumitrescu Andrei 867.000
Vlad Ioan 2.130.000
Amariei Vasile 956.000
Petrescu Paul 879.000
ANGAJATI CDX (indexul)
Nr. Inregistrare Salar brut
867.000
879.000
956.000
1.216.000
1.679.000
2.130.000
3.530.000
Dupa indexare utilizatorul vede pozitia unei inregistrari conform locului din tabela de index pentru criteriul respectiv. In fisierul index se pot inregistra mai multe criterii de indexare. Indecsii sunt de 2 feluri:
-simplii(au un singur criteriu de indexare nume cu extensia IDX)
-compusi(sunt tabele de index cu mai multe tabele de indexare si ii gasim cu nume CDX).
Indecsii compusii sunt gestionati automat de sistemul FOX si ei nu trebuie inchisi si deschisi de programator. Numele criteriului de index se numeste ETICHETA DE INDEX.
Se poate face dupa mai multe criterii:
Clasificarea indecsilor dupa felul cum trateaza articolele cu chei multiple, avem:
Indecsi normali
Indecsi unici
La indecsii normali inregistrarile multiple sunt admise in tabelul de date dar prin index se vede numai prima inregistrare din cele multiple.
La index unic sistemul nu permite inregistrarea celui de-al doilea articol cu aceeasi cheie.
Clasificarea indecsilor dupa valoarea relatiilor dintre tabele:
Candidati-e ca si indexul unic
Cheie primara-asigura unicitate de legatura intre 2 tabele
De exemplu daca definesc index unic sau cheie primara numele de familie nu este corect pentru ca este posibil sa existe mai multe nume identice.
Crearea indecsilor
1)Metoda meniurilor
2)Metoda comenzilor FOX
Metoda meniurilor este o varianta interactiva si se foloseste atunci cand trebuie sa realizam imediat indexarea. Cu ajutorul meniurilor se deschide fereastra TABELE, apare o fereastra INDEXES si apoi o fereastra FIELDS.
Campurile sunt:order-tip de ordonare
nume-eticheta de index N
Expresie de indexare -criteriul de indexare
Conditie Fields - se refera la restrictionarea de submultimi.
Metoda comenzilor FOX se utilizeaza atunci cand se realizeaza aplicatii informatice si operatia de indexare trebuie realizata in contextul unor prelucrari mai complexe de date.
Format general al instructiunii de indexare
INDEX ON Nume camp TO fis-index
Expresie TAG-etich-index
[OF<CDX index>] [FOR <conditie>]
[] [] [ADITIVE
Clauza ADITIVE-arata ca sunt lasate deschise mai multe indexuri simultan.
Definirea unui criteriu de indexare ca si criteriu activ se face cu instructiunea SET ORDER.
Format general:
SET ORDER TO <nume -eticheta- index> [IN<tabela>].
Exemple: Sa se indexeze tabela ANGAJATI.DBF dupa salarul brut, apoi dupa nume si in final dupa salar brut iar daca sunt mai multi angajati cu acelati salar brut ordonarea sa fie dupa nume.
USE ANGAJATI
INDEX ON SALAR_BRUT TO ANGAJATI.CDX (CDX index complex)
USE ANGAJATI
INDEX ON NUME TO ANGAJATI.CDX (CDX index complex)
USE ANGAJATI
INDEX ON SALAR_BRUT+NUME TO ANGAJATI.CDX
Indexarea este o operatie care se realizeaza fizic dar inregistrarile in baza de date raman in forma initiala.
Dina G., - VISUAL FOX PRO, Editura Teora, Bucuresti, 2003
Lixandroiu D.,- Bazele informaticii economice, Ed.Infomarket, Brasov, 2000
Nitchi S., s.a., Bazele prelucrarii informatiilor si tehnologie informationala, Ed.
Intelcredo, Deva, 1996
Vaduva I.,s.a., - Programare structurata, Ed. Tehnica, Bucuresti, 1978,
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1939
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved