Sunteți pe pagina 1din 28

Capitolul 2

Structuri de date
i
structuri de prelucrare

Agenda
Aspecte introductive
Structuri de date
Structuri algoritmice de prelucrare

2.1. 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 date sunt strns legate de structurile
algoritmice.
Structurile de prelucrare (structurile algoritmice de
prelucrare) reprezint modaliti de organizare a controlului
n prelucrarea prin programe /proceduri a structurilor de
date.
Structurile algoritmice eficientizeaz:
operaiile de creare i actualizare a structurilor de date,

operaiile de cutare i sortare a acestora.

Toate structurile de date i de prelucrare se bazeaz pe


memoria calculatorului, care (n cel mai simplu mod),
trebuie privit ca fiind o structur liniar de celule /locaii n
care se depoziteaz date cu valori corespunztoare
aplicaiei.

2.2. STRUCTURI DE DATE


2.2.1. Clasificri ale principalelor structuri de date
Compoziia intern a unei date impune gruparea n:
date elementare,

date structurate.
O dat elementar - un atribut care nu poate fi
descompus din punct de vedere logic.
Datele structurate (compuse) - o grupare de date
elementare i /sau de alte date compuse.
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 (tablourile i articolele);
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.

Nume_dat

Valoare

Tip

Produs

Pine

ir de caractere

Pre

0.5

Numeric

UM

Buc

ir de caractere

Intrare

100

Numeric

Data

05/12/05

Dat calendaristic

Crearea datelor elementare folosind Visual Basic for Application:


Sub algoritm()
' creare -initializare
produs = "paine"
pret = 0.5
um = "buc"
intrare = 100
data = "12/12/2005"
' calcul valoare
v = pret * intrare

' 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

Observaie: semnul ' de pe linia cu instruciuni permite ataarea unui comentariu.

Acelai algoritm se putea scrie i astfel:


Public produs As String
' se creeaz in mod public variabila produs de tip sir
Public pret
' se creeaz in mod public variabila pret de tip variant
Public um As String
Public intrare
Public data As Date
' se creeaza in mod public variabila produs te tip data
calendaristica
Public v
Sub algoritm()
' creare-initializare
produs = "paine"
' intializare cu "paine"
pret = 0.5
' intializare cu 0.5
um = "buc"
' intializare cu "buc"
intrare = 100
' intializare cu 100
data = "12/12/2005"
' intializare cu "12/12/2005"
' calcul valoare
v = pret * intrare ' incarcare cu produsul dintre continutul lui pret si 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.

2.2.5. 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 dintro mulime ordonat de valori ale cror caracteristici aparin
unei entiti din domeniul unei probleme.
Caracteristicile descrise prin intermediul valorilor din
articolele unui fiier se numsc cmpuri.

Reprezentri ale structurilor de date externe de tip articol i


fiier

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: 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.

2.3. STRUCTURI ALGORITMICE DE PRELUCRARE


Principala sarcin a unui mediu de programare (instrument
software) const n a permite definirea structurilor de date ntrun mod eficient i de a asigura accesul, manipularea,
actualizarea i controlul asupra acestora prin intermediul
algoritmilor i structurilor de prelucrare /control.
Structurile de prelucrare /control constituie aportul cel mai
de seam al metodei de programare structurat, care a
impus utilizarea a trei tipuri de structuri fundamentale,
toate cu o singur intrare i o singur ieire, renunndu-se
n fapt la utilizarea n activitatea de programare la
instruciunea GOTO.

Sunt implementate trei tipuri de structuri fundamentale:


secveniale;
alternative;
repetitive.

Structurile de control fundamentale

B. Structurile de control alternative


n cadrul structurilor de control alternative se disting:

structuri de control altenative cu ramur dubl;


structuri de control alternative cu ramur vid;
structuri de control alternative generalizate.

a. Codificarea structurilor de control alternative cu


ramur dubl i a celor cu ramur vid

IF <condiie> THEN
<set_comenzi1>
[ELSE <set_comenzi2>]
END IF

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:

WHILE conditie
<set_comenzi>
WEND
CT TIMP conditie
<set_comenzi>
SFRIT_CT_TIMP

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:

FOR i =1 to n
<set_comenzi>
NEXT i
PENTRU i = 1 la N
<set_comenzi>
URMTORUL i

DO LOOP

Structura de prelucrare de tip repetitiv permite


utilizarea a dou clauze diferite:
WHILE - pentru transferul controlului n cazul
ndeplinirii condiiei,
UNTIL - pentru transferul controlului n cazul
nendeplinirii condiiei.
Varianta cu WHILE DO LOOP corespunde structurii
de control repetitive condiionate anterior,
Varianta cu UNTIL, permite codificarea structurilor de
control condiionate posterior.

S-ar putea să vă placă și