Prelucrari statistice si financiare
Scopul principal pentru care sunt create bazele de date în reprezinta obtinerea într-un timp cât mai scurt, a unor informatii cu privire la datele continute în tabele. Aceste informatii pot fi de natura diferita, mai detaliate sau mai sintetizate, sub forma de liste, tabele sau simple valori, informatii statistice, totalizatoare.
1.Numararea articolelor
COUNT [TO<var>][<domeniu>][FOR<cond>][WHILE<cond>]
Comanda numara articolele din tabela activa si, daca este prezenta clauza TO<var>, depune 737q164h rezultatul în variabila specificata.
Exemplu: Fie tabela ELEVI.DBF cu urmatorul continut:
Nume |
Cls |
Absm |
Absn |
P1 |
P2 |
Popescu mirel |
11b | ||||
Albulet geo |
11a | ||||
Popescu sile |
11c | ||||
Marinica marin |
11c | ||||
Ionesco marin |
11c | ||||
Albulet dino |
11a |
count to v && numarul total de elevi se calculeaza în variabila v
?v
2.Însumarea valorilor unor câmpuri
SUM[<lista-exp>][TO<lista-var>/TO ARRAY <tablou>] {<domeniu>][FOR <cond>] [WHILE <cond>]
Comanda permite însumarea valorilor existente în articolele selectate conform expresiilor precizate.
Exemplu:pentru acelasi exemplu, comanda SUM fara alte clauze determina afisarea pe ecran a sumei tuturor câmpurilor numerice
sum && comanda determina urmatorul rezultat
absm absn p1 p2
27.00 60.00 57.00
sum for cls='11a' absm+absn && comanda determina urmatorul rezultat
absm+absn
sum for cls='11a' absm+absn to x && sau rezultatul este atribuit unei variabile x
?x
3.Calcularea mediei aritmetice
AVERAGE [<lista-exp>][TO <lista-var>/TO ARRAY <tablou>] [<domeniu>] [FOR <cond>] [WHILE <cond>]
Comanda permite calculul mediei aritmetice a valorilor expresiilor din <lista-exp>, pentru articolele din tabela activa care se încadreaza în domeniul precizat si verifica conditiile din FOR si WHILE. Parametrul TO <lista-var> contine lista de variabile în care se vor depune valorile mediilor calculate.
average && în lipsa clauzelor se calculeaza media aritmetica a valorilor tuturor câmpurilor
go top
average absm for cls='11c'
go top && calculam media absentelor primilor elevi din clasa
average absm while cls='11c'
4.Calcule statistice si financiare
CALCULATE [<lista-exp>][TO<lista-var>/TO ARRAY <tablou>] [<domeniu>] [FOR<cond>][WHILE <cond>]
Comanda poate calcula valorile mai multor expresii si le depune într-o lista de variabile sau într-un tablou. În alcatuirea unei expresii pot intra urmatoarele functii:
AVG(<expn>) - calculeaza media aritmetica a expresiei <exp> ce poate contine câmpuri numerice ale tabelei active;
CNT() - permite numararea articolelor selectate din tabela activa;
SUM(<expn>) - însumeaza valorile expresiei <expn>, ce contine câmpuri numerice;
MAX(<exp>) - extrage cea mai mare valoare a expresiei <exp> calculata pentru fiecare articol selectat al tabelei active;
MIN(<exp> - extrage cea mai mica valoare a expresiei <exp> calculata pentru fiecare articol selectat al tabelei active;
STD(<exp>) - întoarce abaterea media patratica a expresiei date; cu cât abaterea medie patratica este mai mica cu atât valorile sunt mai apropiate de medie;
VAR(<exp>) - calculeaza disperia expresiei (patratul abaterii medii patratice).
calc cnt(), sum(absn), avg(absm), max(absn) && rezultatul va fi:
cnt() sum(absn) avg(absm) max(absn)
6 27.00 5.50 6
5.Totalizarea valorilor
TOTAL ON<cheie> TO<fis.dbf>[FIELDS<lista-camp>][<domeniu>][For<cond>] [WHILE<cond>]
Comanda TOTAL realizeaza o noua tabela numita <fis.dbf> cu aceeasi structura ca a tabelei active. Tabela activa este parcursa în întregime si pentru fiecare grup de articole care au aceeasi valoare a expresiei <cheie> se adauga în tabela <fis.dbf> câte un articol. Articolul are cheia unica a grupului si suma valorilor din câmpurile specificate în clauza FIELDS (sau toate câmpurile numerice daca lipseste aceasta clauza).
Exemplu: se doreste calcularea
numarului total de absente (motivate si nemotivate) pe clase:
use elevi
index on cls tag cls
brow
total on cls to man fields absn, absm
use man
list cls, absn, absm
Exercitii: în fisierul PERSOANE (p1 N(2), p1 N(2)) sunt coduri de persoane cu semnificatia "p1 cunoaste p2"
calc max(p1), max(p2) to n,m
nr=max(n,m)
?nr
6.Functii financiare
FV (<expN1>, <expN2>, <expN3>) - calculeaza valoarea viitoare a unei depuneri
regulate <expN1> cu o crestere
Exemplu:Presupunem ca am deschis un cont la o banca ce practica o dobânda de 1% lunar. Suma lunara pe care dorim sa o depunem este de 3000UM. Ne intereseaza ce suma vom avea în cont dupa 36 luni.
? fv (3000, 0.01,36) && 129230.64
PV (<expN1>, <expN2>, <expN3>) - calculeaza valoarea la zi a unei investitii constituite printr-un varsamânt cu o suma constanta <expN1>, de-a lungul unui numar de perioade date <expN3> si când se practica o dobânda fixata <expN2>.
Exemplu: Presupunem ca am deschis un cont la o banca ce practica o dobânda de 1% luna. Ne intereseaza ce suma am putea acoperi din acest cont în 4 ani, platind lunar câte 4000UM. Deci 4000 este suma ce se scoate din cont lunar, pe o perioada de 48 luni.
?pv(4000, 0.01, 48) && 151895.84
PAYMENT (<expN1>, <expN2>, <expN3>) - calculeaza marimea rambursarilor
constante efectuate la intervale regulate care permit amortizarea unei sume
<expN1>, cu dobânda
Exemplu: Presupunem ca avem de returnat un împrumut de 500000UM. Ce suma vom plati pentru ca în 2 ani sa se adauge într-un cont la o banca ce acorda o dobânda lunara de 1%.
?payment(500000, 0.01, 24) && 23536.74
|