isa zi prezentare_capitolul 2_2016
TRANSCRIPT
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 1/28
Capitolul 2
Structuri de date
şi
structuri de prelucrare
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 2/28
Agenda
• Aspecte introductive
• Structuri de date
• Structuri algoritmice de prelucrare
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 3/28
2.1. ASPECTE INTRODUCTIVE
Înţeleger ea corectă a principalelor structuri de date şi astructurilor de prelucrare are importanţă în:
– activitatea de programare,
– formarea specialiştilor în domeniul instrumentelorsoftware.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 4/28
Structuri de date
O structură de date reprezintă o modalitate deorganizare a datelor care acoperă data elementarăpropriu-zisă şi relaţiile acesteia cu alte date.
Î n activitatea de programare alegerea unei structuri dedate adecvate asigur ă avantaje importante:
– utilizarea eficientă a memoriei,
– eficientizarea prelucrărilor,
– reducerea costurilor de programare.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 5/28
Structuri de prelucrare
• Structurile de date sunt strâns legate de structurile
algoritmice.
• Struc tur i le de preluc rare (stru ctu r i le algor i tm ice deprelucrare ) reprezintă modalităţi de organizare a controlului
în prelucrarea prin programe /proceduri a structurilor dedate.
• Structurile algoritmice eficientizează:
– operaţiile de creare şi actualizare a structurilor de date,
– operaţiile de căutare şi sortare a acestora.
• Toate structurile de date şi de prelucrare se bazează pememoria calculatorului, care (în cel mai simplu mod),trebuie privită ca fiind o structură liniară de celule / locaţii încare se depozitează date cu valori corespunzătoare
aplicaţ iei.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 6/28
2.2. STRUCTURI DE DATE
2.2.1. Clasificări ale principalelor structuri de date
• Compoziţia internă a unei date impune gruparea în:
– date elementare,
– date structurate.
• O dată elementară - un atribut care nu poate fidescompus din punct de vedere logic.
• Datele structurate (compuse) - o grupare de dateelementare şi /sau de alte date compuse.
• Toate datele în BD sau entităţi sunt declarate în dicţionarulde date, pe ultimul nivel, ca fiind date elementare.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 7/28
Datele structurate se grupează în:
• Date structurate de nivel redus, care permit operaţii la nivelde componentă (tablourile şi articolele);
• Date structurate de nivel înalt, care permit operaţii
implementate de algoritmi utilizator (liste liniare, liste liniareordonate, stiva şi coada).
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 8/28
O dată elementară reprezintă cea mai simplă modalitate de
reprezentare logică a unei informaţii. În categoria datelor elementare sunt incluse:
– Numere întregi ,
– Numere reale,
– Valori booleene,
– Caractere.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 9/28
• Numere întregi: celule sau locaţii de memorie în care suntstocate numere întregi. Asupra acestor date se pot aplica
operaţiile aritmetice cunoscute: +, -, ...;
• Numere reale: celule de memorie în care sunt stocatenumere raţionale. Ca şi în cazul numerelor întregi asupra lorse pot aplica operaţiile aritmetice;
• Valori booleene: celule sau locaţii de memorie în care suntstocate valorile logice - true sau false. Aceste date facobiectul operaţiilor/operatorilor: and, or, not.
• Caractere: celule sau locaţii de memorie în care sunt stocateşiruri de caractere alfabetice de genul ‘a’, ‘b’, ‘abc’,‘Popescu’ … . Pentru aceste date se pot aplica operaţiispeciale de concatenare şi comparaţie.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 10/28
Date elementare - exemple
Nr. crt. Nume_dată Valoare Tip
1 Produs Pâine Şir de caractere
2 Preţ 0.5 Numeric
3 UM Buc Şir de caractere
4 Intrare 100 Numeric
5 Data 05/12/05 Dată calendaristică
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 11/28
Crearea datelor elementare folosind Visual Basic for Application:
Sub algoritm()
' creare -initializare
produs = "paine" ' creare variabila produs si intializare cu "paine"pret = 0.5 ' creare variabila pret si intializare cu 0.5
um = "buc" ' creare variabila UM si intializare cu "buc"
intrare = 100 ' creare variabila intrare si intializare cu 100
data = "12/12/2005" ' creare variabila data si intializare cu "12/12/2005"
' calcul valoare
v = pret * intrare ' creare variabila v si incarcare cu produsul dintre continutul' variabilei pret cu cel al variabilei intrare
' afişare rezultate
MsgBox "Variabila v contine: " & Str(v) ' Afisare variabila v
MsgBox "Total intrari " & produs & ": " & Str(v) & " RON" ' Afisare rezultate finisate
End Sub
Observaţie: semnul ' de pe linia cu instrucţiuni permite ataşarea unui comentariu.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 12/28
Acelaşi 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 variantPublic um As String
Public intrare
Public data As Date ' se creeaza in mod public variabila produs te tip datacalendaristica
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 variabileiintrare
' afişare rezultate
MsgBox "Variabila v contine: " & Str(v) ' Afisare variabila v
MsgBox "Total intrari " & produs & ": " & Str(v) & " RON" ' Afisare rezultate finisate
End Sub
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 13/28
Tablouri
• Un tablou se defineşte 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 dematrice.
• în fiecare celulă a unui tablou se regăseşte o datăelementară.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 14/28
Pointerul
• Pointerul reprezintă o legătură către o dată elementară.• Cu alte cuvinte, o variabilă care conţine o adresă sau un
nume de variabilă pentru o altă dată elementară.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 15/28
2.2.5. Structuri de date externe: articolul şi fişierul
• Fişierul reprezintă o colecţie ordonată de date. Urmare a
faptului că stocarea datelor se face pe suporţi de memorieexternă, fişierul este definit şi ca structură de date externă.
• Structura ordonată de date din cadrul fişierului poartădenumirea de art ico l , care la rândul său este constituit dintr -o mulţime ordonată de valori ale căror caracteristici aparţinunei entităţi din domeniul unei probleme.
• Caracteristicile descrise prin intermediul valorilor dinarticolele unui fişier se numsc câmpuri .
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 16/28
Reprezentări ale structurilor de date externe de tip articol şifişier
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 17/28
• Din punct de vedere al activităţilor de
programare este interesant să cunoaştemmetoda de organizare şi tipul de acces aferente
structurilor de date externe.
• Metoda de organizare poate fi: secvenţială,relativă şi indexată;
• Tipul de acces la date (în operaţii de citire şiscriere a valorilor din /în câmpuri) poate fi
secvenţial sau direct.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 18/28
2.3. STRUCTURI ALGORITMICE DE PRELUCRARE
• Principala sarcină a unui mediu de programare (instrumentsoftware) constă în a permite definirea structurilor de date într -un mod eficient şi de a asigura accesul, manipularea,actualizarea şi controlul asupra acestora prin intermediulalgoritmilor şi structurilor de prelucrare /control.
• Structurile de prelucrare /control constituie aportul cel maide seamă al metodei de programare structurată, care aimpus utilizarea a trei tipuri de structuri fundamentale,toate cu o singură intrare şi o singură ieşire, renunţându-se
în fapt la utilizarea în activitatea de programare lainstrucţiunea GOTO.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 19/28
Sunt implementate trei tipuri de structuri fundamentale:
– secvenţiale;
– alternative;
– repetitive.
St t il d t l f d t l
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 20/28
Structurile de control fundamentale
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 21/28
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.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 22/28
a. Codificarea structurilor de control alternative cu
ramură dublă şi a celor cu ramură vidă
IF <condiţie> THEN
<set_comenzi1>
[ELSE <set_comenzi2>]END IF
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 23/28
Pentru codificarea structurii de control
alternative cu ramură vidă formatulcomenzii IF devine:
IF <condiţie> THEN
<set_comenzi>END IF
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 24/28
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
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 25/28
C. Structurile de control repetitive
În VBA structurile de control repetitive sunt realizate astfel:
WHILE … WEND, pentru structuri repetitive condiţionate anterior .Setul de comenzi se execută cât timp condiţia este adevărată.
FOR … NEXT, pentru structuri repetitive cu număr stabilit de paşi.
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 26/28
WHILE … WEND
În VBA această structură repetitivă este considerată cea mai
simplă, deoarece nu oferă posibilitatea părăsirii forţate asetului de comenzi cu o instrucţiune de tipul EXIT.
Formatul general este:
WHILE conditie
<set_comenzi>
WEND
CÂT TIMP conditie
<set_comenzi>
SFÂRŞIT CÂT TIMP
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 27/28
FOR … NEXT
• Această structură oferă posibilitatea prestabilirii
numărului de execuţii pentru set_comenzi.• Din punct de vedere logic se aseamănă cu WHILE …WEND, cu precizarea că actualizarea se face cu clauzaNEXT .
• Formatul general este:
FOR i =1 to n<set_comenzi>
NEXT i
PENTRU i = 1 la N<set_comenzi>
URMĂTORUL i
8/17/2019 ISA Zi Prezentare_Capitolul 2_2016
http://slidepdf.com/reader/full/isa-zi-prezentarecapitolul-22016 28/28
DO… LOOP
Structura de prelucrare de tip repetitiv permite
utilizarea a două clauze diferite: – WHILE - pentru transferul controlului în cazul
îndeplinirii condiţiei,
– UNTIL - pentru transferul controlului în cazul
neîndeplinirii condiţiei.Varianta cu WHILE DO … LOOP corespunde structurii
de control repetitive condiţionate anterior ,
Varianta cu UNTIL, permite codificarea structurilor de
control condiţionate posterior .