Documente Academic
Documente Profesional
Documente Cultură
Agenda
Aspecte introductive Structuri de date Structuri algoritmice de prelucrare
ASPECTE INTRODUCTIVE
nelegerea corect a principalelor structuri de date i a structurilor de prelucrare are importan n: activitatea de programare, formarea specialitilor n domeniul instrumentelor software.
Structuri de date
O structur de date reprezint o modalitate de organizare a datelor care acoper data elementar propriu-zis i relaiile acesteia cu alte date. n activitatea de programare alegerea unei structuri de date adecvate asigur avantaje importante: utilizarea eficient a memoriei, eficientizarea prelucrrilor, reducerea costurilor de programare.
Structuri de prelucrare Structurile de prelucrare (structurile algoritmice de prelucrare) reprezint modaliti de organizare a controlului n prelucrarea prin programe /proceduri a structurilor de date. Structurile de date sunt strns legate de structurile algoritmice. Structurile algoritmice eficientizeaz:
operaiile de creare i actualizare a structurilor de date, operaiile de cutare i sortare a acestora.
Structuri de prelucrare n cel mai simplu mod memoria trebuie privit ca fiind o structur liniar de celule /locaii n care se depoziteaz date cu valori corespunztoare aplicaiei.
Observaie
Adresele de memorie nu se codific dup o regul uor de neles i de utilizat n activitatea de programare
paine
0.5
buc
100
05/12/05
A1
A2
An
n Produs si UM pot fi introduse numai valori text; n Pret si Intrare - numai valori numerice; n Data numai date calendaristice. Astfel, se realizeaz o specializare a celulelor n funcie de coninutul lor pe tipuri de valori. Aceast caracteristic a celulei poart numele de tip (care poate fi: numeric, alfabetic, alfanumeric, logic, dat calendaristic etc.)
STRUCTURI DE DATE Clasificri ale principalelor structuri de date Compoziia intern a unei date impune gruparea n: date elementare, date structurate. O dat elementar este un atribut care nu poate fi descompus din punct de vedere logic. Datele structurate (compuse) se definesc ca fiind o grupare de date elementare i /sau de alte date compuse. Trebuie precizat c toate datele n BD sau entiti sunt declarate n dicionarul de date pe ultimul nivel ca fiind date elementare.
Datele structurate se grupeaz n: Date structurate de nivel redus, care permit operaii la nivel de component (tablouri i articole); Date structurate de nivel nalt, care permit operaii implementate de algoritmi utilizator (liste liniare, liste liniare ordonate, stiva i coada).
O dat elementar reprezint cea mai simpl modalitate de reprezentare logic a unei informaii. n categoria datelor elementare sunt incluse: Numere ntregi, Numere reale, Valori booleene, Caractere.
Numere ntregi: celule sau locaii de memorie n care sunt stocate numere ntregi. Asupra acestor date se pot aplica operaiile aritmetice cunoscute: +, -, ...; Numere reale: celule de memorie n care sunt stocate numere raionale. Ca i n cazul numerelor ntregi asupra lor se pot aplica operaiile aritmetice; Valori booleene: celule sau locaii de memorie n care sunt stocate valorile logice - true sau false. Aceste date fac obiectul operaiilor/operatorilor: and, or, not. Caractere: celule sau locaii de memorie n care sunt stocate iruri de caractere alfabetice de genul a, b, abc, Popescu . Pentru aceste date se pot aplica operaii speciale de concatenare i comparaie.
Date elementare - exemple Nr. crt. 1 2 3 4 5 Nume_dat Produs Pre UM Intrare Data Valoare Pine 0.5 Buc 100 05/12/05 Tip ir de caractere Numeric ir de caractere Numeric Dat calendaristic
' creare variabila produs si intializare cu "paine" ' creare variabila pret si intializare cu 0.5 ' creare variabila UM si intializare cu "buc" ' creare variabila intrare si intializare cu 100 ' creare variabila data si intializare cu "12/12/2005" ' creare variabila v si incarcare cu produsul dintre continutul ' variabilei pret cu cel al variabilei intrare
' afiare rezultate MsgBox "Variabila v contine: " & Str(v) ' Afisare variabila v MsgBox "Total intrari " & produs & ": " & Str(v) & " RON" ' Afisare rezultate finisate End Sub
Tablouri
Un tablou se definete ca fiind cea mai simpl dat structurat organizat sub form tabelar. O caracteristic important a unui tablou o reprezint dimensiunea acestuia: un tablou cu o singur dimensiune (o singur coloan) poart denumirea de vector, un tablou cu dou dimensiuni poart denumirea de matrice. n fiecare celul a unui tablou se regsete o dat elementar.
Pointerul
Pointerul reprezint o legtur ctre o dat elementar. Cu alte cuvinte, o variabil care conine o adres sau un nume de variabil pentru o alt dat elementar.
Structuri de date externe: articolul i fiierul Fiierul reprezint o colecie ordonat de date. Urmare a faptului c stocarea datelor se face pe supori de memorie extern, fiierul este definit i ca structur de date extern. Structura ordonat de date din cadrul fiierului poart denumirea de articol, care la rndul su este constituit dintr-o mulime ordonat de valori ale cror caracteristici aparin unei entiti din domeniul unei probleme. Caracteristicile descrise prin intermediul valorilor din articolele unui fiier le vom regsi sub denumirea de cmpuri.
Din punct de vedere al activitilor de programare este interesant s cunoatem metoda de organizare i tipul de acces aferente structurilor de date externe. Metoda de organizare poate fi una din urmtoarele: secvenial, relativ i indexat; Tipul de acces la date n operaii de citire i scriere a valorilor din /n cmpuri poate fi secvenial sau direct.
A. Structuri secveniale
VBA asigur operaii de atribuire i operaii de intrare/ieire: Atribuirea se realizeaz cu instruciune LET sau direct cu folosire semnului =, ca n exemplul precedent. Operaia de atribuire prin citirea datelor introduse de utilizator este asigurat de instruciunea InputBox. Aceast instruciune permite introducerea de la tastatur a valorilor pentru o anumit variabil. Formatul instruciunii InputBox este: InputBox(mesaj, [titlu, valoare_implicita]) Precizri:
Mesaj trebuie scris ntre ghilimele sau se poate prelua dintr-o variabil de tip ir. Este textul ce apare ca explicaie n interiorul ferestrei; Titlu i valoare_implicit sunt facultative; Titlu trebuie scris intre ghilimele sau se poate prelua dintr-o variabil de tip ir. Este textul ce apare pe linia de titlu a ferestrei; Valoare_implicit este valoarea care va apare n rubrica de completat; Fereastra rezultat are i butoanele predefinite OK i Cancel Spre exemplu, din procedura Citire() rezultatul executrii liniei
Cont = InputBox(Simbol cont,Introduceti o valoare, 0) Operaia de ieire este uor de evideniat cu ajutorul instruciunii MsgBox, care permite afiarea unui text ntr-o fereastr de dialog. Cea mai simpl utilizare este atunci cnd dorim sa vizualizm coninutul unei variabile.
structuri de control altenative cu ramur dubl; structuri de control alternative cu ramur vid; structuri de control alternative generalizate.
Pentru codificarea structurii de control alternative cu ramur vid formatul comenzii IF devine:
IF <condiie> THEN
<set_comenzi> END IF
b. Codificarea structurilor de control alternative generalizate Generalizate se realizeaz cu ajutorul comenzii: SELECT CASE CASE CASE ELSE END SELECT. Formatul general pentru aceast comand:
SELECT CASE <var>
CASE <var_1> <set_comenzi_1>
[CASE <var_2> <set_comenzi_2>] [CASE <var_k> <set_comenzi_k>] [] [CASE <var_m> <set_comenzi_m>] CASE ELSE <set_comenzi>] END SELECT
C. Structurile de control repetitive n VBA structurile de control repetitive sunt realizate astfel: WHILE WEND, pentru structuri repetitive condiionate anterior. Setul de comenzi se execut ct timp condiia este adevrat. FOR NEXT, pentru structuri repetitive cu numr stabilit de pai.
WHILE WEND n VBA aceast structur repetitiv este considerat cea mai simpl, deoarece nu ofer posibilitatea prsirii forate a setului de comenzi cu o instruciune de tipul EXIT. Formatul general este:
FOR NEXT Aceast structur ofer posibilitatea prestabilirii numrului de execuii pentru set_comenzi. Din punct de vedere logic se aseamn cu WHILE WEND, cu precizarea c actualizarea se face cu clauza NEXT . Formatul general este:
DO LOOP