REALIZAREA UNOR CALCULE STATISTICE PE CÂMPURILE TABELELOR Folosind un anumit domeniu din tabela curentă, se pot face unele calcule: număra înregistrările, determina sume sau valori medii pentru expresii numerice, evalua anumite functii. 1) Pentru determinarea numărului de înregistrări: COUNT [domeniu] [FOR expL1] [WHILE expL2] [TO variabilă] Numărul de înregistrări se poate atribui unei variabile daca apare clauza TO. Domeniul implicit este ALL. domeniu poate avea una din valorile: ALL, REST, NEXT expN, RECORD expN. ALL – se realizează calculul respectiv pe toate înregistrările tabelei. REST se realizează calculul respectiv de la înregistrarea curentă până la sfârşit. NEXT expN se realizează calculul respectiv de la înregistrarea curentă pe următoarele expN înregistrări. (De ex: NEXT 5 – se va realiza calculul pe următoarele 5 înregistrări pornind de la înregistrarea curentă.) RECORD expN se realizează calculul respectiv pe înregistrarea cu numărul de ordine dat de expN. (De ex: RECORD 3 se va realiza calculul pe înregistrarea 3.) Calculul se poate realiza numai asupra înregistrărilor ce îndeplinesc condiţiile precizate în clauzele FOR şi WHILE. 2) Pentru însumarea valorilor unor expresii numerice din înregistrări: SUM [listă_expresii] [domeniu] [FOR expL1] [WHILE expL2] [TO listă_variabile] Asemănător comenzii anterioare, numai ca aici se insumează valorile din coloanele precizate în listă_expresii sau a expresiilor care contin campuri numerice din tabel, iar reyultatele sunt trecute in variabilele ce apar la listă_variabile. 3) Pentru calculul mediei valorilor unor expresii numerice din înregistrări: AVERAGE [listă_expresii] [domeniu] [FOR expL1] [WHILE expL2] [TO listă_variabile] La fel ca la comanda SUM numai ca se realizează media valorilor din înregistrări. 4) Pentru o mulţime de înregistrări se pot evalua o serie de funcţii: CALCULATE listă_expresii [domeniu] [FOR expL1] [WHILE expL2] [TO listă_variabile] Modul de functionare este asemănător cu al comenzilor anterioare, numai ca aici în listă_expresii vor apărea funcţiile: AVG(expN) – pentru determinarea mediei unei expresii. CNT() – pentru numărarea înregistrărilor. MAX(exp) pentru determinarea maximului unei expresii. MIN(exp) pentru determinarea minimului unei expresii. SUM(expN) pentru determinarea sumei unei expresii numerice.
1
Exercitii practice: Fie tabelul: ELEVI COD NUME N(4) C(40) 15 Georgescu Andrei 21 Marinescu Daniela 7 Popa Carmen 121 Dinu Marian 122 Dudu George 123 Vieru Maria 223 Popa Mircea 233 Stratulat Elena 234 Neagu George 224 Balan Costina
ADRESA C(100) Adr. 1 Adr. 15 Micro 13 Micro 19 Tiglina I Micro 39 Micro 21 Adr. 3 Adr. 4 Tiglina II
VARSTA N(2) 15 15 16 17 17 17 17 17 18 18
CLASA C(3) 9B 9B 10A 11A 11A 11A 11C 12B 12B 12C
MEDIA N(5,2) 3.5 4 7.66 8.33 5.5 4.30 7 8 6.55 3.75
1) Sa se afiseze elevii care au varsta de 17 ani. COUNT FOR varsta=17 TO v ? v, “ elevi au varsta de 17 ani” sau CALCULATE CNT() FOR varsta=17 TO v ? v, “ elevi au varsta de 17 ani” 2) Sa se afiseze numarul de elevi corigenti. COUNT FOR media <5 TO v1 ? v1, “ elevi sunt corigenti” sau CALCULATE CNT() FOR media<5 TO v1 ? v1, “ elevi sunt corigenti” 3) Sa se afiseze media clasei ‘11A’. AVERAGE media FOR clasa=’11A’ TO v2 ? “Media clasei 11A este ”, v2 sau CALCULATE avg(media) FOR clasa=’11A’ TO v2 ? “Media clasei 11A este ”, v2 2
4) Sa se afiseze media cea mai mare de la clasa ‘12B’. CALCULATE max(media) FOR clasa=’12A’ TO v3 ? “Media cea mai mare la clasa 12B este ”, v3
5) Care este suma mediilor elevilor care nu sunt in clasa ‘11A’ ? SUM media FOR clasa # ‘11A’ TO v4 ? “Suma este ”, v4 sau CALCULATE sum(media) FOR clasa<>’11A’ TO v4 ? “Suma este ”, v4
3