Capitolul I . Coordonate generale.
I.1 Introducere.
Societatea informationala ,concept care tinde sa devina un laitmotiv in cadrul analizelor si prevederilor privind secolul si mileniul urmator,inc 545f52f epe sa capete continut real in tarile dezvoltate ceea ce se costituie intr-o crestere neomogena a gradului de cunoastere si civilizatie;fiecare tara lupta pentru a ramane in aceasta competitie care,desi dura ,inseamna posibilitatea de a-si asigura un viitor .
In limita
resurselor avute la dispozitie si
Pachetul de programe 'Gestiunea stabilirii si acordarii burselor' ,elaborat intr-o prima versiune,se doreste a fi un studiu asupra unuia din numeroasele domenii in care tehnologia informatiei incepe sa-si intre in drepturi si in Romania.
I.2 Prezentare generala.
Avand ca finalitate teoretica formularea unor concluzii cu privire la oportunitatea folosirii unor anumite structuri de date, studiul se constituie din 4 fisiere sursa scrise in C++ ,fiecare facand obiectul cate unei anexe atasate la sfarsitul prezentului material.
Programul a fost conceput dupa modul de acordare al burselor in cadrul Academiei de Studii Economice din Bucuresti,aceasta prima versiune avand unele elemente specifice acestei institutii ca de exemplu nomenclatorul disciplinelor de studiu din cadrul acesteia. Programul tine evidenta bursierilor de la 3 facultati: Facultatea Relatii Economice Internationale (REI), Facultatea Cibernetica,Statistica si Informatica Economica (CSIE) si Facultatea de Comert,fiecare luandu-se in considerare cu 4 ani de studiu. In plus programul ofera suport nu numai pentru evidenta burselor de studiu ci ia in calcul si bursele sociale si cele pentru studentii straini.
Aceasta aplicatie preia datele dintr-un fisier existent ('STUD.DAT') care contine toti studentii academiei cu informatiile specifice fiecaruia inclusiv cele care vor face obiectul criteriilor de selectie a bursierilor se subintelege ca acest fisier va trebui actualizat semestrial in privinta datelor in baza carora se vor acorda diferite tipuri de bursa)
Trebuie mentionat ca se ofera ,optional,suport pentru populare/ adaugare de noi studenti in cadrul fisierului 'STUD.DAT'.
In baza fisierului 'STUD.DAT' se va crea un altul: 'BURSE.DAT'.Acesta va contine toti bursierii Academiei (indiferent de tipul de bursa) ,la fiecare prezentandu-se o situatie clara ,pe fiecare luna a semestrului,privind evolutia procesului de acordare efectiva a cuantumurilor lunare.
Inca de la inceputul conceperii sale, autorul a dorit ca finalitatea practica a acestei aplicatii sa se materializeze in folosirea ei chiar la ghiseul de acordare a burselor.De aceea s-a acordat o importanta speciala atat interfetei grafice cat si modului de regasire datelor aici intervine si diferenta intre cele 4 variante de program).
Trebuie
accentuata importanta modului de regasire a datelor in 'BURSE.DAT' cat si
modului de formatare a ecranului
I.3. Unele detalii ale GSAB
Modul de stabilire a studentilor cu bursa de studiu
Modul de acordare al burselor de studiu tine cont de 2 parametri:un numar maxim de burse acordabile la fiecare facultate
si o valoare minima a mediei.
In fisierul initial,'STUD.DAT',fiecare student are memorate notele si media;daca are toate notele cel putin 5 numarul actului sau de identitate si media sa vor fi memorate intr-o lista;vor fi 12 liste ( 3 facultati , 4 ani fiecare) fiecare fiind sortata descrescator;
vor fi scrisi in 'BURSE.DAT' toti studentii cu medii peste media minima din fiecare lista.
Modul de evidenta a burselor sociale si a celor pentru studentii straini
Ambele tipuri de bursa apar in 'STUD.DAT' sub forma a doua variabile booleene (are bursa/nu are bursa).
Daca nu au fost deja scrisi in 'BURSE.DAT' (cei care au si bursa de studiu) vor fi scrisi acum.
In acest fel va fi constituit semestrial 'BURSE.DAT',fisier care va sta la baza cordarii efective a burselor.
Modul de cautare,consultare,modificare in cadrul fisierului 'BURSE.DAT'
Aplicatia are prevazute 4 moduri de regasire a unui anumit articol in cadrul fisierului 'BURSE.DAT'.
Cele 4 variante vor fi detaliate in capitolul urmator.
Acestea sunt:
-crearea unui fisier index 'BURSE.IDX' (anexa 1);
-definirea unui vector de structura (anexa 2);
-constrirea unei liste simplu inlantuita (anexa 3);
-construirea unui arbore de
cautare pe baza listei anterioare sortate (anexa4);
Capitolul II. Prezentarea si analiza celor 4 variante.
II.1. Prezentarea celor 4 variante.
Varianta 1
Aceasta varianta creeaza un fisier index 'BURSE.IDX' ; fiecare articol are in componenta codul actului de identitate (cheie primara pentru 'STUD.DAT','BURSE.DAT') precum si pozitia in fisier (offset-ul in bytes de la inceputul fisierului);
Pentru regasirea in fisierul de burse se cauta secvential in index pana cand codul actului de identitate din pozitia curenta a fisierului index coincide cu cel introdus de la tastatura;se citeste offset-ul si se cauta in fiisierul de burse articolul respectiv.
Avantaje
-numarul articolelor din 'BURSE.IDX' e limitat doar de
spatiul liber pe disc;
-fisierul index poate fi utilizat oricand fara a trebui creat
la fiecare iesire din program;
Dezavantaje:
-accesul la fisierul index este mult mai lent decat la
memoria interna (dezavantaj important )
Varianta a-II-a
Se creeaza un vector de structura ,fiecare element al sau
avand in componenta codul actului de identitate si deplasarea articolului fata de inceputul fisierului.
Pentru regasire de articole in fisierul de burse se aplica acelasi algoritm ca la prima varianta, (tinand cont de diferentele existente intre modul de citire a elementelor unui vector si cel de citire a articolelor din cadrul unui fisier) :se parcurge vectorul pana
cand codul actului de identitate este identic cu cel din pozitia curenta a vectorului.Se citeste offset-ul articolului corespunzator din fisierul de burse gasindu-se astfel datele care urmeaza sa faca obiectul consultarii si/sau modificariii.
Avantaje:
-codul sursa e simplificat semnificativ ;
-accesul la date este rapid;
Dezavantaje:
-alocarea este statica astfel ca fie se va rezerva la
compilare un spatiu nefolosit (grad umplere<1)
fie spatiul alocat e insuficient;
Varianta a-III-a
Aceasta varianta utilizeaza alocarea dinamica a datelor.
Se creeaza o lista in care informatia utila este reprezentata atat de codurile actelor de identitate ale tuturor bursierilor cat si de deplasarea fata de inceputul fisierului 'BURSE.DAT' a fiecarui
articol (se identifica in mod unic prin intermediul codul actului de identitate).
Avantaje:
-se utilizeaza memorie in mod eficient
( memorarea in heap permite utilizarea de memorie
exact cat este nevoie)
-numarul de elemente ale listei poate fi mult mai mare
decat cel dintr-un vector ;
( pentru vector, rezervarea de spatiu pentru un n
numar de elemente peste un numar maxim
admis este semnalata ca eroare de compilare;
in cazul listei singura conditie este cea legata de
marimea heap-ului,conditie mult mai larga
decat cea in cazul vectorului)
Dezavantaje:
-codul este relativ complex de creat si urmarit;
Varanta a-IV-a.
In cadrul aceastei variante se foloseste tot alocarea dinamica dar in cadrul unei structuri arborescente. Se construieste un arbore de cautare in care informatia utila a fiecarui nod este reprezentata de codul actului de identitate al unui student bursier precum si offset-ul fata de inceputul fisierului al articolului ce contine datele sale.
Se cauta in arbore nodul care are codul actului de identitate identic cu cel specificat de la tastatura.Daca este gasit cautarea se incheie, se citeste offset-ul si se muta pointer-ul fisierului de burse conform valorii deplasarii.Astfel se pot accesa datele din fisier putandu-se opera asupra lor.
Crearea arborelui se face in baza unei liste sortate avand aceeasi informatie utila.In acest fel arborele de cautare va fi creat echilibrat.
Avantaje:
-accesul la date este mai rapid,fapt care devine o
necesitate in situatia in care :
-operatiile de cautare sunt apelate la intervale
de timp foarte scurte (secunde);
-numarul de elemente care reprezinta
informatia utila este ridicat;
-creat echilibrat (asa cum este prevazut in aceasta
varianta ),arborele isi poate pune in valoare
avantajele fata de alte structuri alocate dinamic
cum ar fi listele;
Dezavantaje:
-codul este relativ dificil de creat si urmarit
chiar fata de liste datorita apelurilor recursive;
II.2. Analiza comparativa a celor 4 variante.
Asa cum s-a aratat si in capitolul precedent,finalitatea teoretica a acestui studiu consta in gasirea variantei optime (din cadrul celor 4 ) care, in versiunile urmatoare sa poata fi dezvoltata mai ales din punct de vedere al unor facilitati auxiliare (diverse validari,imbunatatirea interfetei cu utilizatorul).
Pentru realizarea acestui demers se va folosi o metoda multicriteriala de decizie.
Pentru aceasta trebuie stabilite mai intai criteriile care se vor lua in considerare la determinarea variantei optime. In general in
domeniul crearii de soft se iau drept criterii de apreciere durata de executie a unei tranzactii, gradul de concentrare al codului sursa, dimensiunea problemei de rezolvat, uneori precizia solutiei(ilor) obtinute.
In cazul particular al GSAB aceste criterii au importanta conferita de cazul propriu-zis care constituie subiectul aplicatiei.
Astfel :
-durata de cautare a datelor legate de un anumit student are aici cea mai mare importanta deoarece uneori aceasta functie
poate fi apelata la intervale de ordinul secundelor;importanta criteriului creste in concordanta cu dimensiunea multimii in care se face cautarea;
-gradul de concentrare ,dat de raportul intre numarul de linii a doua programe sursa(numarul mai mic este la numarator deoarece criteriul ia vlori intre 0 si 1) ,are o importanta orientativa in acest caz deoarece dimensiunile fiecarei variante nu difera foarte mult intre ele ;
-marimea in bytes a unui fisier sursa poate fi luat in considerare aici,pentru comparatii, deoarece numarul blank-urilor a fost redus,in fiecare caz, la valori nesemnificative iar evaluarea acestora s-a facut inaintea introducerii comentariilor care apar in anexele 1-4;
Datele obtinute in urma evaluarii duratei de cautare cu ajutorul celor 4 variante intr-un fisier de 5000 articole sunt , pentru
fiecare din cele 15 coduri introduse, urmatoarele:
(duratele
sunt exprimate in secunde)
Se observa ca durata(V1)>durata(V2)>durata(V3)>durata(V4)
in majoritatea cazurilor din cele 15 analizate.
In ceea ce priveste gradul de concentrare calculat intre fiecare dintre cele 4 variante (cu conditia ca raportul celor doua lungimi sa fie subunitar) acesta se poate evidentia in tabelul urmator:
Din tabel se observa ca lungimile scad in ordinea:
l(V4) >l(V3) >l(V2) >l(V1).
In aceasta situatie dupa criteriul gradului de concentrare, ordinea optima este V1,V2,V3,V4.
In privinta spatiului ocupat pe disc de fiecare fisier (exprimat in bytes) avem urmatoarea situatie:
Dupa acest criteriu ordinea optima (in sens descrescator) este:
V1,V2,V3,V4.
Un alt criteriu de comparatie poate fi cel al calculului complexitatii programului tinand cont de numarul procedurilor care se apeleaza ;fiecare procedura are trei posibile marcaje:
marcaj S daca este apelata o singura data ;
marcaj RP daca procedura este intr-un ciclu repetitiv;
marcaj RC daca procedura este apelata recursiv;
In anexele 5-8 sunt desenate grafurile procedurilor care se apeleaza pentru fiecare varianta,rezultand in final urmatorul tabel:
Si in urma acestui criteriu ordinea descrescatoare a preferintelor este : V! si V2,V3,V4.
Agregand datele obtinute in urma aplicarii celor 4 criterii vom obtine tabelul final care va desemna varianta optima.
(s-au acordat puncte de la 1 la 4 ,cu 4 fiind notata varianta optima)
In baza acestei situatii agregate a rezultat ca varianta optima care trebuie dezvoltata in versiunile ulterioare este varianta 4 desi si celelalte variante au obtinut un punctaj asemanator.
Varianta 4 este considerata cea optima datorita avantajelor legate de viteza mai ridicata de cautare.
BIBLIOGRAFIE
- Ion Ivan, Ion Smeureanu, Marian Dardala
Structuri si Obiecte in C++, Editura CISOR, Bucuresti 1998
- Florin
Munteanu, Gheorghe Musca,
Tehnici de programare, Joint Printing House, Bucuresti 1995
|