Sunteți pe pagina 1din 78

Programarea calculatoarelor

Visual Basic for Applications (VBA)


- suport de curs -












2

Introducere

Suportul de curs reprezint o sintez a coninutului disciplinei Programarea in Visual Basic
for Applications. El este destinat studenilor de la forma de nvmnt la distan (ID) i constituie
materialul bibliografic minim necesar pentru parcurgerea, nsuirea i evaluarea disciplinei
respective.
Suportul de curs este structurat conform standardelor i procedurilor de uz larg n
nvmntul universitar naional i internaional, care se adreseaz nvrii individuale, pe baze
interactive. Parcurgerea suportului de curs, pe baza prezentelor instruciuni, asigur reinerea
informaiilor de baz, nelegerea fenomenelor fundamentale i aplicarea cunotinelor dobndite la
rezolvarea unor probleme specializate.
Suportul de curs este structurat pe trei module iar modulele sunt structurate, la rndul lor, pe
uniti de nvare. Modulul reprezint o categorie de probleme distincte din materia disciplinei, care
formeaz un tot unitar din punct de vedere al specificului cunotinelor, al nsuirii unui anumit
aspect al fenomenologiei disciplinei precum i din perspectiva timpului necesar parcurgerii i
nsuirii fondului informaional respectiv. n acest sens, un modul conine una sau mai multe uniti
de nvare. Unitatea de nvare reprezint o parte omogen din componena modulului,
caracterizat de un volum strict limitat de cunotine, care pot s fie parcurse i nsuite printr-un
efort continuu de concentrare intelectual, care se refer la coninutul de idei al unitii de nvare.
Fiecare unitate de nvare are o structur proiectat din perspectiva exigenelor autoinstruirii, astfel
c folosirea suportului de curs se face pe baza unui program de autoinstruire.
Recomandm astfel, cteva regului de baz n procedura de realizare a programului de
autoinstruire pe baza acestui suport de curs:
1. Unitile de nvare se parcurg n ordinea n care sunt prezentate, chiar n cazul n care
studentul apreciaz c ar putea sri direct la o alt unitate de nvare (de exemplu n cazul n care
studentul se afl la a doua facultate sau n alte situaii echivalente). Criteriile i modalitatea de
nlnuire a unitilor de nvare sunt prezentate la fiecare unitate de nvare i ele trebuie
respectate ntocmai, sub sanciunea nerealizrii la parametri maximali a programului de autoinstruire;
2. Fiecare unitate de nvare conine teste destinate autoevalurii gradului i corectitudinii
nsuirii cunotinelor specifice unitii de nvare, nelegerii fenomenelor i proceselor descrise sau
prezentate n unitatea de nvare;
Fiecare test al unitii de nvare este prevzut cu un sistem de notare (puncte) care nsumeaz
un maximum de 100 puncte;
3. Ordinea logic a parcurgerii unitii de nvare este urmtoarea:
a) se citete scopul i obiectivele unitii de nvare;
b) se citesc termenii de referin (cuvintele-cheie);
c) se parcurge coninutul de idei al unitii de nvare;
d) se parcurge bibliografia recomandat;
e) se rspunde la ntrebrile de autocontrol, revznd, dac este necesar, coninutul de idei al
unitii de nvare;
f) se elaboreaz, pe o pagin, cte un eseu pentru fiecare dintre temele de reflecie propuse la
unitatea de nvare;
g) se efectueaz testele de autoevaluare dup procedura descris;
h) se rezolv exerciiile, problemele sau studiile de caz propuse pentru laboratorul sau
lucrrile practice propuse n unitatea de nvare.
Pentru creterea eficienei utilizrii suportului de curs i fixarea temeinic a cunotinelor
dobndite, fiecare unitate de invatare se ncheie cu: ntrebri de autocontrol, teme de reflecie, teme
pentru studii de caz i teste de autoevaluare.


3



Obiectivele cursului

Obiectul suportului de curs const n nsuirea cunotinelor de baz privind
programarea calculatoarelor i formarea deprinderilor practice necesare pentru
elaborarea de programe, pe exemplul mediului de programare Visual Basic for
Applications (VBA).
Obiectivele principale ale suportului de curs sunt:
nsuirea temeinic a noiunilor fundamentale privind programarea
calculatoarelor, n particular ale celor aparinnd ultimei generaii de medii de
programare;
formarea deprinderilor practice necesare pentru elaborarea contextual i
general a programelor pentru efectuarea de aplicaii din domeniul economic;
cunoaterea temeinic a logicii programrii ca o condiie necesar pentru
elaborarea corect a programelor, conform regulilor de sintax i de punctuaie
ale mediilor de programare;
dobndirea unei viziuni de ansamblu asupra teoriei i practicii in domeniul
programarii calculatoarelor.

Suportul de curs este structurat pe trei module, fiecare modul coninnd, n
funcie de problematica abordat, unitati de invatare specifice.


Competene conferite

Capacitatea de alegere a facilitilor mediului de programare VBA n funcie
de domeniul de activitate din care provin aplicaiile, de specificul acestora i
de cerinele i exigenele utilizatorilor.
Capacitatea de nelegere a modului n care cunoaterea conceptelor i a
noiunilor fundamentale privind prelucrarea datelor cu mediul de programare
VBA poate s contribuie la nsuirea corect a altor concepte i noiuni legate
de programarea calculatoarelor;
Capacitatea de a elabora programe n mediul de programare VBA.



Resurse i mijloace de lucru

Pentru parcurgerea acestui curs va fi nevoie de utilizarea Sistemului de Gestiune a
Bazelor de Date Microsoft ACCESS 2010, care este parte a pachetului software
integrat MICROSOFT OFFICE 2010.


Structura cursului

Suportul de curs este structurat pe trei module astfel:

Modulul I este un modul de prezentare teoretic i metodologic a problematicii
abordate, coninnd unitatile de invatare:
Unitatea 1. Noiunile de instruciune, program, limbaj de programare i metalimbaj;
Unitatea 2. Tehnici de programare i exploatare a calculatoarelor electronice;

Modulul II este un modul de abordare i tratare a logicii programrii calculatoarelor,
4

coninnd unitatile de invatare:
Unitatea 3. Algoritmi i algoritmizarea aplicaiilor;
Unitatea 4. Reprezentarea (descrierea) algoritmilor i forme de reprezentare;
Unitatea 5. Structuri fundamentale de prelucrare (control);
Unitatea 6. Etapele elaborrii unui program ntr-un mediu de programare;

Modulul III este un modul de abordare a mediului de programare Visual Basic for
Applications (VBA) i tratare practic a elaborrii programelor n acest mediu de
programare, coninnd capitolele:
Unitatea 7. Elemente de baz ale mediului de programare VBA;
Unitatea 8. Programe elaborate n mediul de programare VBA.


Cerine preliminare

Pentru nelegerea conceptelor i noiunilor prezentate n acest curs i pentru a le
aplica eficient n practic este necesar parcurgerea n prealabil a cursului de Bazele
Tehnologiei Informaiei din anul I de studiu.

Discipline deservite

Pe baza cunotinelor dobndite n cadrul disciplinei curente studenii vor fi capabili s
urmeze cursurile de Sisteme informatice financiar-bancare, Sisteme informatice de
gestiune, Sisteme informatice in marketing, Informatica n afaceri, Comer electronic.



Durata medie de studiu individual

Timpul mediu necesar parcurgerii unei Uniti de nvare este 2-3 ore.




Evaluarea studenilor

Nota finala la disciplina Programarea calculatoarelor va fi stabilit prin :
- evaluarea final (examen scris de tip gril) cu ponderea de 70%;
- evaluri pe parcurs (teme de control n cadrul activitilor asistate) cu
ponderea de 30%.


5

Cuprins
INTRODUCERE ........................................................................................................................................................ 2
OBIECTIVELE CURSULUI ............................................................................................................................................ 3
COMPETENE CONFERITE .......................................................................................................................................... 3
RESURSE I MIJLOACE DE LUCRU ................................................................................................................................. 3
STRUCTURA CURSULUI ............................................................................................................................................. 3
CERINE PRELIMINARE ............................................................................................................................................. 4
DISCIPLINE DESERVITE .............................................................................................................................................. 4
DURATA MEDIE DE STUDIU INDIVIDUAL ........................................................................................................................ 4
EVALUAREA STUDENILOR ........................................................................................................................................ 4
UNITATEA DE NVARE 1. NOIUNILE DE INSTRUCIUNE, PROGRAM, LIMBAJ DE PROGRAMARE I
METALIMBAJ ................................................................................................................................................... 7
1.1. OBIECTIVE ...................................................................................................................................................... 7
1.2. COMPETENELE UNITII DE NVARE ................................................................................................................. 7
1.3. PROGRAMAREA CALCULATOARELOR .................................................................................................................... 8
1.4. LIMBAJ DE PROGRAMARE I METALIMBAJ ............................................................................................................. 8
1.5. LIMBAJ I SISTEM DE PROGRAMARE ................................................................................................................... 10
1.6. EVOLUTIA LIMBAJELOR DE PROGRAMARE ............................................................................................................ 12
1.7. CLASIFICAREA LIMBAJELOR DE PROGRAMARE....................................................................................................... 14
1.8. REZUMAT ..................................................................................................................................................... 16
1.9. TEST DE AUTOEVALUARE A CUNOTINELOR......................................................................................................... 16
1.10. TEM DE CONTROL ....................................................................................................................................... 16
1.11. BIBLIOGRAFIE .............................................................................................................................................. 17
UNITATEA DE NVARE 2. TEHNICI DE PROGRAMARE SI EXPLOATARE A CALCULATOARELOR ELECTRONICE18
2.1. OBIECTIVE .................................................................................................................................................... 18
2.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 18
2.3. TEHNICI DE EXPLOATARE A SISTEMELOR DE CALCUL ............................................................................................... 18
2.4. REZUMAT ..................................................................................................................................................... 20
2.5. TEST DE AUTOEVALUARE A CUNOTINELOR......................................................................................................... 21
2.6. TEST DE EVALUARE A CUNOTINELOR ................................................................................................................ 22
2.7. TEME DE CONTROL ......................................................................................................................................... 22
2.8. BIBLIOGRAFIE ................................................................................................................................................ 22
UNITATEA DE NVARE 3. ALGORITMI I ALGORITMIZAREA APLICAIILOR .................................................. 24
3.1. OBIECTIVE .................................................................................................................................................... 24
3.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 24
3.3. ALGORITMI .................................................................................................................................................. 24
3.4. PROPRIETILE ALGORITMILOR ......................................................................................................................... 25
3.5. TIPURI DE ALGORITMI ...................................................................................................................................... 26
3.6. OPERAIILE REPREZENTATE N ALGORITMI ........................................................................................................... 26
3.7. CLASIFICAREA ALGORITMILOR ........................................................................................................................... 29
3.8. REZUMAT ..................................................................................................................................................... 31
3.9. TEST DE AUTOEVALUARE A CUNOTINELOR......................................................................................................... 31
3.10. TEST DE EVALUARE A CUNOTINELOR .............................................................................................................. 32
3.11. BIBLIOGRAFIE .............................................................................................................................................. 32
UNITATEA DE NVARE 4. DESCRIEREA ALGORITMILOR I FORME DE REPREZENTARE ................................ 34
4.1. OBIECTIVE .................................................................................................................................................... 34
4.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 34
4.3. REPREZENTAREA ALGORITMILOR........................................................................................................................ 34
4.4 REPREZENTAREA ALGORITMILOR PRIN SCHEME LOGICE ........................................................................................... 35
4.5. REPREZENTAREA ALGORITMILOR PRIN LIMBAJ PSEUDOCOD..................................................................................... 36
4.6. REZUMAT ..................................................................................................................................................... 37
4.7. TEST DE AUTOEVALUARE A CUNOTINELOR......................................................................................................... 37
6

4.8. TEST DE EVALUARE A CUNOTINELOR ................................................................................................................ 38
4.9. BIBLIOGRAFIE ................................................................................................................................................ 38
UNITATEA DE NVARE 5. STRUCTURI FUNDAMENTALE DE PRELUCRARE (CONTROL) ................................. 40
5.1. OBIECTIVE .................................................................................................................................................... 40
5.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 40
5.3. STRUCTURI FUNDAMENTALE DE CONTROL ........................................................................................................... 40
5.4. REPREZENTAREA STRUCTURII ALTERNATIVE .......................................................................................................... 41
5.5. REPREZENTAREA STRUCTURII REPETITIVE ............................................................................................................. 42
5.6 REZUMAT ...................................................................................................................................................... 43
5.7. TEST DE AUTOEVALUARE A CUNOTINELOR......................................................................................................... 44
5.8. TEST DE EVALUARE A CUNOTINELOR ................................................................................................................ 45
5.9. BIBLIOGRAFIE ................................................................................................................................................ 45
UNITATEA DE NVARE 6. ETAPELE ELABORRII UNUI PROGRAM NTR-UN MEDIU DE PROGRAMARE ........ 46
6.1. OBIECTIVE .................................................................................................................................................... 46
6.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 46
6.3. PRINCIPALELE ETAPE ALE ELABORRII UNUI PROGRAM NTR-UN MEDIU DE PROGRAMARE .............................................. 46
6.4. REZUMAT ..................................................................................................................................................... 49
6.5 TEST DE AUTOEVALUARE A CUNOTINELOR.......................................................................................................... 50
6.6 TEST DE EVALUARE A CUNOTINELOR ................................................................................................................. 50
6.7 BIBLIOGRAFIE ................................................................................................................................................. 51
UNITATEA DE NVARE 7. ELEMENTE DE BAZ ALE MEDIULUI DE PROGRAMARE VBA ................................ 52
7.1. OBIECTIVE .................................................................................................................................................... 52
7.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 52
7.3. DATE SI STRUCTURI DE DATE. CLASIFICAREA DATELOR ............................................................................................ 53
7.4 CONSTANTE I VARIABILE .................................................................................................................................. 53
7.5 ALTE TIPURI DE DATE ........................................................................................................................................ 56
7.6 OPERATORI I EXPRESII .................................................................................................................................... 57
7.7 FUNCII ......................................................................................................................................................... 59
7.8 PROCEDURI .................................................................................................................................................... 61
7.9. CONTROALE VISUAL BASIC (VBA) ..................................................................................................................... 64
7.10 LUCRUL CU FIIERE DE DATE N MEDIUL VBA....................................................................................................... 65
7.11. REZUMAT ................................................................................................................................................... 68
7.12. TEST DE AUTOEVALUARE A CUNOTINELOR....................................................................................................... 69
7.13. TEST DE EVALUARE A CUNOTINELOR .............................................................................................................. 69
7.14. TEME DE CONTROL ....................................................................................................................................... 70
7.15. BIBLIOGRAFIE .............................................................................................................................................. 70
UNITATEA DE NVARE 8. PROGRAME ELABORATE N MEDIUL DE PROGRAMARE VBA ............................... 71
8.1. OBIECTIVE .................................................................................................................................................... 71
8.2. COMPETENELE UNITII DE NVARE ............................................................................................................... 71
8.3. PROGRAMUL 1 .............................................................................................................................................. 71
8.4 PROGRAMUL 2 ............................................................................................................................................... 72
8.5 PROGRAMUL 3 ............................................................................................................................................... 72
8.6 PROGRAMUL 4 .............................................................................................................................................. 73
8.7. PROGRAMUL 5 .............................................................................................................................................. 74
8.8. PROGRAMUL 6 .............................................................................................................................................. 75
8.9. PROGRAMUL 7 .............................................................................................................................................. 76




7

UNITATEA DE NVARE 1. NOIUNILE DE INSTRUCIUNE,
PROGRAM, LIMBAJ DE PROGRAMARE I METALIMBAJ

CUPRINS
1.1. Obiective
1.2. Competenele unitii de nvare
1.3. Programarea calculatoarelor
1.4. Limbaj de programare i metalimbaj
1.5. Limbaj i sistem de programare
1.6. Evoluia limbajelor de programare
1.7. Clasificarea limbajelor de programare
1.8. Rezumat
1.9. Test de autoevaluare a cunotinelor
1.10. Tem de control
1.11. Bibliografie


1.1. Obiective
n aceast prim unitate de nvare se vor prezenta noiunile asociate logic:
instruciune-program-limbaj de programare n contextul desfurrii activitilor de
programare. Tot n cadrul acestei unitti de nvare vom prezenta elementele unui
sistem de programare i interaciunile dintre aceste elemente n procesul de elaborare a
programelor.


1.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
folositi structurile formalizate de metalimbaj pentru elaborarea de programe
ntr-un limbaj de programare;
explicai regulile sintactice i de punctuaie specifice unui limbaj de
programare n funcie de natura aplicaiilor informatice;
identificai corespunztor posibilitile de exploatare ale limbajelor de
programare n activitatea de elaborare a programelor.



Durata de parcurgere a primei uniti de nvare este de 3 ore.
8
















1.3. Programarea calculatoarelor

Noiuni generale

n prelucrarea automat a datelor (PAD) programarea calculatoarelor este o
noiune fundamental, fiind n strns corelaie cu alte noiuni de baz din acest
domeniu, cum sunt noiunile de: algoritm, limbaj de programare, program.
Pentru prelucrarea datelor, fr intervenia utilizatorului n desfurarea acestui
proces, calculatorul electronic necesit, pe lng datele de prelucrat, un ansamblu de
comenzi, care s-i indice acestuia, ce operaii trebuie s execute pentru a obine
rezultatele ateptate de utilizator.
Ansamblul acestor comenzi reprezint o descriere a procesului de prelucrare a datelor
complet i fr ambiguiti, definind toate aciunile calculatorului electronic n orice
caz particular al aplicaiei de efectuat. O astfel de descriere este denumit descriere
algoritmic, deoarece fr alte informaii suplimentare, calculatorul poate s efectueze
toate operaiile de prelucrare, furniznd rezultatele ateptate de utilizator.
Descrierea algoritmic a acestui proces de prelucrare, dup care calculatorul se
conduce n efectuarea unei aplicaii, este denumit program. Deci, programul este o
exprimare a procesului de prelucrare automat, care indic operaiile pe care
calculatorul trebuie s le execute, astfel nct din datele de prelucrat (iniiale) s obin
rezultatele ateptate (finale). n orice program, ordinul primit de calculator pentru a
efectua o aciune determinat (ca de exemplu: o operaie de calcul, o operaie logic
etc) se numete instruciune (comand).
Elaborarea unui astfel de program necesit folosirea unui mijloc de comunicare
ntre utilizator i calculator, nct toate specificaiile din program (instruciunile), s
poat fi nelese de calculator. Acest mijloc de comunicare, dintre utilizator i
calculator, este denumit limbaj de programare.
Stabilirea metodelor corespunztoare pentru efectuarea aplicaiilor de
prelucrare a datelor, analiza logic a procesului de prelucrare, planificarea efecturii
operaiilor de prelucrare i verificarea rezultatelor obnute constituie, n general,
obiectul programrii calculatoarelor electronice.



Definii noiunile: algoritm, limbaj de programare, program.
....................................................................................................................................
....................................................................................................................................
...................................................................................................................................














1.4. Limbaj de programare i metalimbaj

Limbaj de programare

n sens lingvistic, prin limbaj se nelege un sistem de comunicare specific
oamenilor alctuit din sunete articulate, prin care oamenii i pot exprima gndurile,
sentimentele i dorinele. Acest sens precizeaz caracterul natural al acestui sistem
folosit de oameni i aflat ntr-o continu dezvoltare.
Odat cu dezvoltarea limbajului natural a aprut i limbajul artificial. Acesta a
fost creat n mod intenionat de oameni, pentru realizarea comunicrii ntr-unul sau
altul din domeniile de activitate uman.
Acest tip de limbaj este dotat cu posibilitatea emiterii i recepionrii formelor de
00:05
00:20
9



















































reprezentare ale comunicrii, dar pe care le folosete un numr mult mai restrns de
persoane, astfel c asocierea semnificaiilor este mai explicit formulat, iar
comunicarea i nelegerea s fie ct mai simple.
Orice limbaj se caracterizeaz prin:
forme corespunztoare de reprezentare a comunicrii;
reguli de organizare a acestor forme de reprezentare;
semnificaii asociate formelor respective de reprezentare;
reguli de constituire a semnificaiilor acestor forme de reprezentare;
reguli de utilizare a limbajului.
Necesitatea elaborrii de programe pentru rezolvarea oricror aplicaii cu
calculatorul electronic a avut ca rezultat particularizarea formelor de reprezentare a
comunicrii n cadrul limbajelor artificiale i apariia unui limbaj specilaizat, denumit
limbaj de programare, ca mijloc de comunicare ntre utilizator i calculator. Astfel,
limbajul de programare este un limbaj artificial destinat descrierii prin directive,
comenzi sau instruciuni exprimate simbolic, a operaiilor de prelucrare a datelor
efectuate cu calculatorul electronic.
Evoluia foarte rapid i impresionant a construciei calculatoarelor
electronice a avut drept consecin apariia unei diversiti de limbaje de programare.
ntr-o astfel de diversitate, folosirea unui limbaj de programare necesit
studierea unor probleme specifice, cum sunt urmtoarele:
definirea limbajelor de programare;
relaia dintre utilizarea calculatoarelor i limbajele de programare;
relaia dintre limbajele de programare i calculatoarele electronice.
Pentru utilizator, limbajul de programare este important prin operaiile de
prelucrare automat a datelor pe care le poate efectua. Astfel, apare noiunea de
specializare a limbajelor de programare pentru diferite domenii i cerine de
prelucrare.
Pentru orice limbaj de programare exist trei aspecte:
tipurile de date care pot fi prelucrate;
operaiile de prelucrare i modul de nlnuire a lor;
regulile prin care se formeaz structuri complexe de date i se execut operaii
complexe de prelucrare.
Orice limbaj de programare se poate caracteriza prin elementele specifice
limbajului natural: alfabet, vocabular, gramatic, punctuaie, semantic, pragmatic.
Alfabetul este reprezentat prin mulimea simbolurilor folosite n cadrul
limbajului de programare.
Vocabularul este reprezentat prin mulimea cuvintelor folosite pentru
alctuirea construciilor de limbaj.
Gramatica este un ansamblu de reguli prin care se formeaz construciile de
limbaj, avnd dou componente: sintaxa i morfologia.
Sintaxa studiaz ansamblul regulilor de formare a instruciunilor, avnd un
rol important n orice limbaj de programare, deoarece calculatorul electronic nu
accept dect construciile de limbaj fr nici o eroare de sintax.
Morfologia conine ansamblul regulilor de modificare a formei cuvintelor, n
contextul folosirii cuvintelor n cadrul construciilor de limbaj.
Punctuaia este un sistem de semne grafice convenionale, care au rolul de a
indica folosirea corect a alfabetului, cuvintelor i instruciunilor (propoziii sau fraze).
Punctuaia are rol de auxiliar grafic al sintaxei.
Semantica studiaz toate semnificaiile care se atribuie cuvintelor, permind
identificarea sensului construciilor de limbaj primite de calculator. Semantica
10

















































specific operaiile de executat pe o structur de date.
Pragmatica reglementeaz modalitile de folosire practic a vocabularului,
cuvintelor, instruciunilor, n general, construciilor limbajului de programare.
Avnd n vedere cele prezentate anterior, limbajul de programare se poate
defini ca fiind un ansamblu (o mulime) de simboluri, reguli de formare a
instruciunilor, reguli de punctuaie, semnificaii atribuite instruciunilor i modaliti
de utilizare practic a acestora n activitatea de elaborare a programelor pentru
prelucrarea automat a datelor.
Metalimbaj
Pentru ca programele s nu conin erori de sintax este necesar ca regulile
unui limbaj (sintactice i de punctuaie) s fie cunoscute i folosite corect. n acest
context, au fost elaborate structuri formalizate care cuprind toate instruciunile unui
limbaj de programare, prezentate ntr-o form care permite respectarea regulilor
sintactice i a celor de punctuaie. Astfel de structuri formalizate alctuiesc
metalimbajul fiecrui limbaj de programare, un instrument sintetic, sistematizat i
simplificat de folosire n mod practic a oricrui limbaj de programare n activitatea de
elaborare a programelor de prelucrare automat a datelor pentru efectuarea de aplicaii.
n concluzie, metalimbajul este un limbaj folosit pentru descrierea altor
limbaje. Ca atare, aceast noiune este general deoarece poate desemna orice notaie
formal, eventual chiar un limbaj natural. De asemenea, aceast noiune este relativ
deoarece metalimbajul este el nsui un limbaj care trebuie definit, ceea ce implic
existena unui metalimbaj.

S ne reamintim...
Limbajul de programare se poate defini ca fiind un ansamblu (o mulime) de
simboluri, reguli de formare a instruciunilor, reguli de punctuaie, semnificaii
atribuite instruciunilor i modaliti de utilizare practic a acestora n activitatea de
elaborare a programelor pentru prelucrarea automat a datelor. Metalimbajul este un
limbaj folosit pentru descrierea altor limbaje.

1.5. Limbaj i sistem de programare

Niveluri de limbaj de programare

Pentru ca un program s poat fi executat pe orice tip de calculator electronic,
trebuie ca programul s fie transmis calculatorului respectiv pe nelesul acestuia, adic
n limbajul su propriu, denumit limbaj cod-main. Acest limbaj este dificil de
nvat i utilizat deoarece:
limbajul cod-main folosete cifrele binare, programele au un caracter abstract
i neinteligibil, iar dimensiunea mare a programelor rezultate face foarte
laborios acest mod de lucru;
fiecare calculator electronic dispune de un limbaj cod-main propriu, ceea ce
constituie un mare dezavantaj pentru programatori, deoarece programatorul
trebuie s cunoasc, n acest caz, fiecare limbaj n parte;
folosirea limbajelor cod-main poate fi un obstacol n extinderea domeniilor
de folosire a calculatorului i realizarea portabilitii programelor pentru
diferite tipuri de aplicaii.
Aceste motive au determinat, ca nc din perioada primei generaii de
00:40
00:50
11



















































calculatoare electronice, odat cu apariia i folosirea limbajelor de asamblare, s se
treac la programarea simbolic. Chiar dac aceste limbaje sunt considerate n cadrul
evoluiei limbajelor de programare ca fiind limbaje de nivel inferior (datorit
dependenei lor de particularitile calculatorului pentru care au fost realizate),
limbajele de asamblare constituie un salt calitativ spre limbajele de nivel nalt.
Limbajele de asamblare aduc astfel primele elemente ale programrii
simbolice, prin utilizarea codurilor mnemonice (pentru instruciuni) i a adresrii
simbolice.
De la limbajele de asamblare s-a trecut la elaborarea de limbaje de programare
mai apropiate de limbajul natural, care au fost denumite limbaje de nivel nalt (limbaje
procedurale) i respectiv limbaje de nivel foarte nalt (limbaje neprocedurale).
Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma
unei succesiuni de comenzi (instruciuni), executate ntr-o anumit ordine, stabilit de
programator. Datorit acestor caracteristici, aceste limbaje sunt cunoscute i sub
denumirea de limbaje algoritmice.
Elementele structurale ale limbajelor algoritmice, ca limbaje artificiale, nu
depind de un anumit tip de calculator, ci de sintaxa i semantica proprii limbajului
respectiv. Executarea unui program scris n limbaj procedural, presupune traducerea
(translatarea) programului din limbajul n care a fost elaborat, n limbajul cod-main
al calculatorului folosit pentru rularea programului respectiv.
Programul care rezult n urma scrierii instruciunilor acestuia ntr-un limbaj de
programare, conform unui algoritm de prelucrare, se numete program surs.
Programele surs trebuie traduse n limbajul propriu calculatorului, operaie care se
efectueaz de un program specializat denumit translator.
Translatorul i efectueaz funcia nainte de execuia programului, obinndu-
se n final un program executabil. Programul executabil ce se execut independent de
translator, se numete compilator. Programele rezultate ca urmare a aciunii
compilatorului (asupra programelor surs) se numesc programe obiect (module
obiect). Cu alte cuvinte, compilatorul are rolul de a transforma programele surs n
programe obiect.
In cazul in care, translatorul i efectueaz funcia proprie simultan cu execuia
programului, este denumit interpretor. Execuia programului este mai lent, dar ofer
posibilitatea modificrii programului i n timpul rulrii acestuia.
Un program surs scris ntr-un limbaj algoritmic poate fi executat pe un
calculator dac exist un translator specific acelui limbaj de programare. Pe un
calculator pot exista mai multe translatoare, dac exist instalate mai multe limbaje de
programare. De asemenea, pentru un acelai limbaj pot exista mai multe versiuni de
translatoare difereniate prin: restricii de limbaj cu scopul de scurtare a timpului
necesar translatrii, simplificri pentru nsuirea mai rapid a limbajului, proceduri
care folosesc mai eficient performanele calculatorului.
Sistem de programare
Existena, pe de o parte, a limbajelor de programare independente de structura
intern a calculatorului i, pe de alt parte, a translatorului propriu fiecrui limbaj, a
avut ca rezultat definirea n domeniul general al software-ului, a unei uniti noi, aceea
de sistem de programare. Acest sistem reprezint o combinaie dintre:
limbajele de programare de nivel nalt folosite la scrierea programelor pentru
efectuarea de aplicaii;
programele de translatare (compilatoare i interpretoare).
Sistemele de programare ofer programatorilor diverse avantaje, printre care
01:10
12















urmtoarele:
creterea operativitii activitii de programare, rezultat din conciziunea
limbajelor de nivel nalt fa de cele de nivel sczut, ceea ce conduce la scurtarea
programelor;
uurina depanrii programelor care rezult din evidenierea greelilor de sintax
i din posibilitatea corectrii facile a acestora;
eficiena programului obiect, care rezultat din abilitatea programatorului de a
folosi ct mai bine performanele calculatorului electronic;
eficiena folosirii memoriei calculatorului electronic, care poate s determine
viteza de execuie a programului, asigurat de translator (compilator sau interpretor),
eventual fr nici o intervenie din partea programatorului;
uurina nvrii programrii, care duce la economisirea timpului pentru a
deprinde modul de lucru cu un anumit limbaj de programare.


S ne reamintim...
Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma unei
succesiuni de comenzi (instruciuni), executate ntr-o anumit ordine, stabilit de
programator. Datorit acestor caracteristici, aceste limbaje sunt cunoscute i sub
denumirea de limbaje algoritmice.



1.6. Evolutia limbajelor de programare

De la construirea primului calculator electronic Mark 1 n anul 1944 de ctre
firma IBM n colaborare cu Universitatea Harvard i pn n prezent, limbajele de
programare au evoluat ntr-un ritm deosebit de spectaculos. Apariia i dezvoltarea
rapid a limbajelor de programare s-a aflat n strns legtur cu evoluia
caracteristicilor constructive ale calculatoarelor. n evoluia software-ului s-au
succedat mai multe etape.
Prima perioad, situat ntre 1944 i 1950, este perioada de nceput n
exploatarea limitat a calculatoarelor electronice i n activitatea de elaborare a
programamelor pentru efectuarea de aplicaii din cteva domenii de activitate.
Limbajele utilizate erau de tip cod-main, iar programarea reprezenta un efort mare
pentru un grup restrns de specialiti.
A doua perioad, cuprins ntre anii 19501959 se caracterizeaz prin apariia
limbajelor de programare automat i a sistemelor de programare. Apar limbajele de
asamblare i spre sfritul perioadei limbajele de programare evoluate, denumite
limbaje de programare de nivel nalt (FORTRAN, ALGOL, COBOL i LISP).
Limbajul FORTRAN (FORmula TRANslation), aprut n 1956, a fost
destinat rezolvrii unor aplicaii din domeniul tehnico-tiinific.
Limbajul ALGOL (ALGOrithmic Language), aprut n 1958, a fost elaborat
pentru rezolvarea de probleme matematice, fiind un limbaj cu structuri logice
apropiate de modul de scriere a formulelor matematice.
Limbajul COBOL (COmmon Business Oriented Language), aprut n 1959, a
fost elaborat pentru efectuarea de aplicaii economice, avnd faciliti pentru
organizarea datelor n fiiere, cu un volum mare de date.
Limbajul LISP (LISt Processing), aprut n anul 1958, a fost elaborat ca un
limbaj conversaional destinat pentru prelucrarea de liste, folosind modele logico-
matematice.
A treia perioad, dintre anii 19601969, este marcat de preocuparea pentru
elaborarea i dezvoltarea unui limbaj de programare universal care s ntruneasc
01:20
13

caracteristici de la mai multe limbaje evoluate. Un astfel de limbaj a fost limbajul
PL/1 (Programming Language/1) care combina caracteristicile reprezentative ale celor
trei limbaje de programare (ALGOL, FORTRAN, COBOL). De asemenea, a fost
elaborat limbajul BASIC (Beginner's All-purpose Symbolic Instruction Code), ca o
variant simplificat a limbajului FORTRAN, cu scopul de a fi folosit interactiv pentru
nvarea rapid a programrii.
A patra perioad, cuprins ntre anii 19701979, se caracterizeaz prin
apariia de noi limbaje de programare: PASCAL, PROLOG, ADA.
Limbajul PASCAL, aprut n 1971, a fost elaborat pentru efectuarea de
aplicaii tehnico-tiinifice i aplicaii economice. Acest limbaj satisface cerinele
programrii structurate, concurente i n timp real.
Limbajul PROLOG a fost elaborat pentru rezolvarea unor probleme care se
pot exprima sub forma unor obiecte i a unor relaii ntre acestea. Este un limbaj
conversaional, asemntor cu LISP.
Limbajul ADA, aprut n anul 1979, este destinat satisfacerii cerinelor de
programare n timp real.
A cincea perioad, situat dup anul 1980 i pn n prezent, este o perioad
care se caracterizeaz prin proliferarea unui numr mare de limbaje de programare
care rspund unor necesiti diverse de stocare i prelucrare automat a datelor. De
asemenea, au aprut aa-numitele dialecte, adic versiuni ale unor limbaje existente.
Numrul limbajelor de programare create a depit 1000, dintre care aproximativ 200
limbaje au o rspndire mai mare.
Prelucrarea unui volum tot mai mare de date i necesitatea perfecionrii
tehnicilor de acces la un astfel de volum de date, a condus la perfecionarea tehnicilor
de stocare, regsire i prelucrare a datelor, o deosebit rspndire avnd sistemele de
gestiune a bazelor de date (SGBD). Sistemele de gestiune a bazelor de date dispun
de limbaje de descriere a structurii datelor n bazele de date i de limbaje de
manipulare a datelor. n funcie de modul de organizare a datelor n bazele de date, se
disting:
sisteme de gestiune a bazelor de date ierarhice;
sisteme de gestiune a bazelor de date reea;
sisteme de gestiune a bazelor de date relaionale;
sisteme de gestiune a bazelor de date orientate obiect;
sisteme de gestiune a bazelor de date distribuite.
Stocarea i prelucrarea unor tipuri tot mai diverse de informaii (sunet i
imagine) presupune, de asemenea, tehnici speciale de stocare i regsire, precum i
limbaje adecvate.
Cerinele din ce n ce mai mari de prelucrare automat a datelor au condus la
necesitatea creterii vitezei de realizare a programelor, precum i a reducerii
posibilitilor de eroare. Aceste dou cerine au condus la apariia unui nou concept de
programare, denumit programarea orientat obiect, care s ofere prototipuri mult
mai uor de inserat n cadrul unor aplicaii. Necesitatea folosirii calculatoarelor
electronice de ctre un numr tot mai mare de utilizatori a sporit preocuprile n sensul
accesibilitii totale, realizat prin limbaj natural, voce sau imagine.


Cum se clasifica SGBD-urile n funcie de modul de organizare a datelor ?
...................



01:50
14

1.7. Clasificarea limbajelor de programare

Evoluia rapid nregistrat de limbajele de programare, ca mijloace de
comunicare ntre om i sistemele automate de prelucrare a datelor a fost marcat de o
mare diversificare a acestora. n prezent, datorit multitudinii limbajelor de progra-
mare se impun diferite clasificri, n funcie de diferite criterii.
n funcie de caracteristicile de baz, limbajele de programare se pot clasifica
astfel:
limbaje de programare n cod-main;
limbaje de programare simbolic (de asamblare sau pseudocod i autocod);
limbaje de programare procedurale (algoritmice sau de nivel nalt);
limbaje de programare neprocedurale (limbajele de nivel foarte nalt).
Limbajele de programare n cod-main se caracterizeaz prin faptul c
programatorul trebuie s specifice n amnunime modul de execuie, alocarea
resurselor hardware (memorie, discuri, periferice). Adresarea memoriei se face cu
indicarea exact a locaiilor de memorie.
Limbajele de programare simbolic se caracterizeaz prin faptul c
programatorul folosete coduri mnemonice pentru operaii i adrese simbolice pentru
desemnarea locaiilor de memorie. Datorit dependenei de caracteristicile construc-
tive i funcionale ale calculatorului electronic, aceste limbaje de programare nu sunt
portabile, adic nu pot asigura compa-tibilitatea programelor pe diferite tipuri de
calculatoare, fiind astfel considerate limbaje de nivel inferior. Ca alternativ la
limbajele de asamblare a aprut limbajul de programare C, numit i asamblor
independent de main. Acest limbaj este orientat pe calculator fr s fie dependent
de fiecare tip de calculator. Limbajul C ofer programatorilor accesul la calcu-lator i
la facilitile sistemului de operare ntr-o msur mult mai mare dact celelalte limbaje
de programare independente de calculatorul electronic.
Limbajele de programare procedurale (algoritmice sau de nivel nalt) se
caracterizeaz prin faptul c programele se apropie mai mult de formalismul
matematic i de limbajul natural dect de limbajul cod-main, astfel c se numesc, din
aceast cauz, limbaje de nivel nalt. Aceste limbaje sunt ca atare limbaje artificiale,
avnd o anumit structur, denumit gramatic i care folosesc un vocabular pentru
exprimarea cerinelor de programare. Folosirea acestor limbaje conduce la mrirea
productivitii de elaborare a programelor. Translatarea dintr-un asemenea limbaj de
nivel nalt, n limbaj cod-main este asigurat de un program denumit translator.
Limbajele de programare neprocedurale (limbajele de nivel foarte nalt) se
caracterizeaz prin faptul c succesiunea comenzilor (instruciunilor) nu se mai
stabilete conform unui algoritm de prelucrare i nu mai influeneaz dect ntr-o mic
msur ordinea lor de execuie. Aceste limbaje de programare fac saltul de la modul
cum se rezolv o problem la ceea ce se dorete prin rezolvarea problemei. Altfel
spus, un program scris ntr-un limbaj neprocedural ofer numai un principiu de
rezolvare, nefiind necesare i detaliile specifice algoritmilor de prelucrare. Din aceste
considerente, limbajele neprocedurale reprezint un salt calitativ fa de limbajele
procedurale, fiind numite i limbaje de nivel foarte nalt. Astfel de limbaje ofer
utilizatorului posibilitatea de a defini doar problema, fr a-l mai obliga s precizeze i
modul de rezolvare.
Dup funciile ndeplinite de limbajele de programare, se disting:
limbaje de interogare simpl;
limbaje de interogare complex;
generatoare de situaii i rapoarte;
15

limbaje grafice;
sisteme de fundamentare a deciziilor;
limbaje de nivel nalt;
limbaje de nivel foarte nalt;
medii de programare.
Limbajele de interogare simpl permit consultarea fiierelor i bazelor de date
pe un singur tip de nregistrare logic, folosind un criteriu de selecie mai puin
complex.
Limbajele de interogare complex permit consultarea datelor din mai multe
tipuri de nregistrri logice, aparinnd uneia sau mai multor baze de date (SQL
Structured Query Language, QBE Query By Exemple etc).
Generatoarele de situaii i rapoarte se caracterizeaz prin folosirea a trei
funcii de baz: selecia datelor cutate, ordonarea dup anumite criterii i editarea
situaiilor ntr-o structur formalizat (exemplu, Report Writer).
Limbajele grafice permit reprezentarea sub form grafic a rezultatelor
prelucrrii automate (ca de exemplu, ADRS/B6, SAS, FoxGraph etc).
Sistemele de fundamentare a deciziilor se adreseaz specialitilor din diverse
domenii de activitate, pentru realizarea de aplicaii complexe (de exemplu,
MULTIPLAN, LOTUS, EXCEL etc).
Generatoarele de aplicaii se folosesc pentru obinerea de programe
translatabile pe baza descrierii datelor de intrare i de ieire (exemplu, ARGUS,
LEDA, dBASE IV, FoxPro etc).
Limbajele de nivel nalt permit elaborarea de programe cu o mai mare uurin,
lrgind astfel sfera utilizatorilor, precum i creterea vitezei de scriere a programelor
(de exemplu, NATURAL, XTOP, MANTIS, AS etc).
Mediile de programare sunt limbaje evoluate care permit integrarea pe o
platform grafic de utilizator a tuturor activitilor de elaborare i executare a
programelor pentru efectuarea complet a aplicaiilor i anume:
editarea programelor surs, care const n introducerea instruciunilor
(comenzilor) de la tastatur, folosind editorul de texte al mediului de
programare sau compatibil cu acesta;
verificarea corectitudinii instruciunilor (comenzilor) introduse i sesizarea
erorilor de sintax;
asistarea utilizatorilor (programatorilor) la introducerea instruciunilor i
eliminarea erorilor de sintax care apar la editarea programelor surs;
translatarea (compilarea) programelor surs i obi-nerea programelor obiect
executabile;
depanarea programelor i eliminarea erorilor de sintax i semantic care apar
dup lansarea n execuie a programelor surs i a celor obiect;
executarea programelor cu date de prob i eliminarea unor eventuale erori
logice;
salvarea (memorarea) programelor i pregtirea lor pentru exploatarea curent
cu date complete.


Cum se clasifica limbajele de programare din punct de vedere al funciilor pe
care le ndeplinesc ?
...................



16







1.8. Rezumat
Programul este o exprimare a procesului de prelucrare automat, care indic
operaiile pe care calculatorul trebuie s le execute, astfel nct din datele de
prelucrat (iniiale) s obin rezultatele ateptate (finale). n orice program, ordinul
primit de calculator pentru a efectua o aciune determinat (ca de exemplu: o
operaie de calcul, o operaie logic etc.) se numete instruciune (comand).
Mijlocul de comunicare dintre utilizator i calculator este denumit limbaj de
programare.
Orice limbaj de programare se poate caracteriza prin elementele specifice
limbajului natural: alfabet, vocabular, gramatic, punctuaie, semantic,
pragmatic .
Metalimbajul este un limbaj folosit pentru descrierea altor limbaje.
Limbajul intern al unui calculator se numete limbaj main (cod main).
Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma
unei succesiuni de comenzi (instruciuni), executate ntr-o anumit ordine, stabilit
de programator.


1.9. Test de autoevaluare a cunotinelor
(timp necesar: 20 min.)

1) Cum se caracterizeaza un limbaj de programare?
2) Cum se numete limbajul intern al calculatorului?
3) Ce reprezinta un program surs?
4) Ce rol are compilatorul?
5) Cum se clasifica SGBD-urile n funcie de modul de organizare a datelor ?
6) Ce intelegeti prin medii de programare?














Rspunsuri:

1) Un limbaj de programare se poate caracteriza prin elementele specifice
limbajului natural: alfabet, vocabular, gramatic, punctuaie, semantic,
pragmatic.
2) Limbajul intern al unui calculator se numete limbaj main (cod main).
3) Programul care rezult n urma scrierii instruciunilor acestuia ntr-un limbaj de
programare, conform unui algoritm de prelucrare, se numete program surs.
4) Compilatorul are rolul de a transforma programele surs n programe obiect.
5) n funcie de modul de organizare a datelor n bazele de date, se disting:
sisteme de gestiune a bazelor de date ierarhice;
sisteme de gestiune a bazelor de date reea;
sisteme de gestiune a bazelor de date relaionale;
sisteme de gestiune a bazelor de date orientate obiect;
sisteme de gestiune a bazelor de date distribuite.
6) Mediile de programare sunt limbaje evoluate care permit integrarea pe o
platform grafic a tuturor activitilor de elaborare i executare a programelor
pentru efectuarea complet a aplicaiilor.


1.10. Tem de control
Alctuii un scurt referat cu tema Tipuri de limbaje de programare.

02:40
17




1.11. Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti,
2012
5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economic, Bucureti, 2004
6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i
practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002
7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON,
Bucureti, 2003
8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureti, 2004

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000
3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002
18

UNITATEA DE NVARE 2. TEHNICI DE PROGRAMARE SI
EXPLOATARE A CALCULATOARELOR ELECTRONICE

CUPRINS
2.1. Obiective
2.2. Competenele unitii de nvare
2.3. Tehnici de exploatare a sistemelor de calcul
2.4. Rezumat
2.5. Test de autoevaluare a cunotinelor
2.6. Test de evaluare a cunotinelor
2.7. Bibliografie



2.1. Obiective
n aceast unitate de nvare se vor prezenta noiunile de programare i de
exploatare a calculatoarelor, precum i modul de folosire a tehnicilor de programare
n activitatea de elaborare a programelor.



2.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
Utilizai tehnicile avansate n activitatea de elaborare a programelor;
Identificai metoda eficient de lucru folosit n scopul elaborarii unui
program;
Utilizai corect regulile sintactice i de punctuaie specifice unui limbaj de
programare n funcie de natura aplicaiilor informatice.


Durata de parcurgere a acestei uniti de nvare este de 2 ore.

2.3. Tehnici de exploatare a sistemelor de calcul


Pentru a prezenta tehnicile de programare este necesar, ca n prealabil, s se
defineasc unele noiuni legate de tehnicile de exploatare a sistemelor de calcul.
Odat cu dezvoltarea tehnologiilor de fabricaie a componentelor fizice ale
calculatoarelor electronice s-au creat premizele perfecionrii tehnicilor de
exploatare ale acestora, prin intermediul unor noi componente software, capabile s
foloseasc eficient resursele hardware.
Tehnicile utilizate pentru execuia programelor au n vedere att algoritmii
de reprezentare i gradul de utilizare a resurselor sistemului de calcul, ct i modul
n care sunt realizate obiectivele sistemului de operare, n condiiile de cretere a
eficienei de exploatare a sistemelor de calcul.
Urmtoarele noiuni sunt legate de modul de exploatare a sistemelor de
calcul:
monoprogramming;
multiprogramming;
time-sharing;
real-time system.
00:05
19


Monoprogramming (monoprogramarea) reprezint tehnica n care
execuia programelor este realizat n modul de operare batch (pe loturi), n care un
singur program, cel ce se execut, beneficiaz de toate resursele sistemului de
calcul. Intrarea n sistem a programelor se face secvenial, ceea ce nseamn c un
program nu poate intra n sistem, dect dup ce programul anterior i-a terminat
execuia.


S ne reamintim...
Monoprogramarea reprezint un mod de exploatare a sistemelor de calcul prin
executarea serial a programelor.































Multiprogramming (multiprogramarea) reprezint tehnica n care mai
multe programe (task-uri) sunt rulate simultan, resursele sistemului de calcul fiind
comutate de la un program la altul, n funcie de prioritile unitii centrale de
prelucrare. Aceasta nseamn c n acelai interval de timp, mai multe programe
sunt ncrcate n memoria calculatorului, accesul fiecrui program la resurse fiind
impus de ctre unitatea central. Aceast tehnic, privind ncrcarea simultan a
mai multor programe, care folosesc partajat unitatea central de prelucrare, este
considerat execuie concurent i are ca obiectiv mrirea gradului de ocupare a
unitii centrale. Este ns necesar s se fac distincie ntre multiprogramare i
multiprelucrare.
Atunci cnd mai multe programe ocup n acelai timp memoria
calculatorului i i partajeaz resursele, exploaterea unui sistem de calcul este n
multiprogramare, iar cnd ntr-un sistem de calcul exist mai multe procesoare,
exploatarea sistemului de calcul este n multiprelucrare (multiprocessing). Ca
atare, multiprogramarea este un concept software, iar multiprelucrarea este un
concept hardware.

Care este diferena dintre multiprogramarei multiprelucrare ?
...................

...................

Timesharing (execuia programelor prin divizarea timpului) este tehnica
de exploatare, caracterizat de folosirea concurent a resurselor unui sistem de
calcul, de ctre mai muli utilizatori, prin intermediul terminalelor plasate local sau
la distan. Aceast tehnic este, prin nsi natura sa, o tehnic de lucru
conversaional i const n comutarea sau multiplexarea resurselor de timp ntre
utilizatori.
Termenul de multiplexare, provenit din telecomunicai, semnific partajarea
resurselor sistem, astfel nct s se creeze efectul de folosire simultan a resurselor,
de mai muli utilizatori.
Dac n cazul multiprogramrii, obiectivul central este creterea gradului de
ocupare al unitii centrale, timpul de rspuns neconstituind un obiectiv major, n
cazul tehnicii time-sharing, unitatea central este partajat pe baz de cerere,
prioritatea fiind optimizarea timpului de rspuns al sistemului de calcul.

Notiunea de timesharing reprezint:
00:30
20


















...................

...................
Realtime system (sistem de calcul n timp real) este sistemul n care
timpul de rspuns, rezultat n urma execuiei calculelor i a celorlalte operaii, este
suficient de mic, nct poate controla procesele ce se desfoar n cadrul
sistemului respectiv. Analiza unui sistem care opereaz n timp real se poate face
din mai multe puncte de vedere: hardware, software, programare, testare, depanare
i utilizare.
Sistemele de calcul care opereaz n timp real au un timp de rspuns foarte
mic pentru a nu se perturba procesele controlate. Un exemplu de astfel de sisteme
sunt sistemele care controleaz desfurarea proceselor tehnologice.

Notiunea de real-time systemreprezint:
.......

.......

Analiza eficienei exploatrii sistemelor de calcul se poate efectua din mai
multe puncte de vedere, printre care cele mai importante se refer la:
performanele tehnice ale echipamentelor de prelucrare automat a datelor;
tehnicile folosite n exploaterea sistemelor de calcul;
tehnicile folosite pentru realizarea programelor n scopul efecturii de
aplicaii.



Analiza eficienei exploatrii sistemelor de calcul se refer la ?
...................





S ne reamintim...
Realtime system (sistem de calcul n timp real) este sistemul n care timpul de
rspuns, rezultat n urma execuiei calculelor i a celorlalte operaii, este suficient
de mic, nct poate controla procesele ce se desfoar n cadrul sistemului
respectiv.





2.4. Rezumat
Monoprogramarea reprezint un mod de exploatare a sistemelor de calcul
prin executarea serial a programelor .
Multiprogramarea reprezint tehnica n care mai multe programe (task-
uri) sunt rulate simultan, resursele sistemului de calcul fiind comutate de la
un program la altul, n funcie de prioritile unitii centrale de prelucrare.
Timesharing (execuia programelor prin divizarea timpului) este tehnica
de exploatare, caracterizat de folosirea concurent a resurselor unui sistem
de calcul, de ctre mai muli utilizatori, prin intermediul terminalelor plasate
local sau la distan.
01:30
21

Realtime system (sistem de calcul n timp real) este sistemul n care
timpul de rspuns, rezultat n urma execuiei calculelor i a celorlalte
operaii, este suficient de mic, nct poate controla procesele ce se
desfoar n cadrul sistemului respectiv.



2.5. Test de autoevaluare a cunotinelor
(timp necesar : 20 minute)

1. Suportul formal al informaiilor, modelul de reprezentare a informaiilor la nivel
fizic i logic sunt:
a. structurile b. datele c. comenzile d. instruciunile
2. Pentru efectuarea oricrei aplicaii cu ajutorul calculatorului este necesar s fie:
a.organizat b.structurat c.sistematizat d.algoritmizat
3. Limbajul de programare cel mai apropiat de limbajul natural se numete:
a.limbaj pseudocod b.limbaj procedural
c.limbaj neprocedural d.limbaj algoritmic
4. Reprezentarea procesului de prelucrare automat a datelor complet i fr
ambiguiti se numete:
a. procesare b. evaluare c. reprezentare d. descriere algoritmic
5. Descrierea algoritmic procesului de prelucrare, dup care calculatorul poate
efectua orice aplicaie, este denumit:
a. algoritm b. program c. instruciune d. comand
6. n orice program, ordinul primit de calculator de a efectua o aciune determinat
se numete:
a. instruciune b. codificare c. operaie d. aplicaie
7. Forma de reprezentare a comunicrii dintre utilizator i calculator se numete:
a. limbaj natural b. limbaj artificial
c. limbaj de programare d. intruciune
8. Mulimea simbolurilor care sunt folosite ntr-un limbaj de programare se
numete:
a. instruciune b. program c. alfabet d. vocabular
9. Ansamblul regulilor de formare a instruciunilor n cadrul limbajelor de
programare se numete:
a. alfabet b. vocabular c. sintax d. semantic
10. Limbajele care fac saltul de la modul cum se rezolv la ceea ce se dorete
prin rezolvarea problemei se numesc limbaje:
a. algoritmice b. de nivel nalt c. procedurale d. neprocedurale

Rspunsurile corecte la ntrebrile din testul de tip gril:
1 b 2 d 3 c 4 d 5 b 6 a 7 c 8 c 9 c 10 d

22



2.6. Test de evaluare a cunotinelor
A. Care sunt criteriile de alegere a mediilor de programare n activitatea de
elaborare a programelor pentru efectuarea aplicaiilor informatice;
B. Care sunt posibilitile de exploatare ale mediilor de programare fa de
limbajele de programare, n procesul de elaborare a programelor;
C. Ce se nelege, n sens lingvistic, printr-un sistem de comunicare specific
oamenilor alctuit din sunete articulate ?
D. Cum se numete sistemul de comunicare creat n mod intenionat de
oameni, pentru realizarea comunicrii ntr-unul sau altul din domeniile de
activitate uman ?
E. Cum se numete sistemul de comunicare destinat descrierii prin directive,
comenzi sau instruciuni, exprimate simbolic, a operaiilor de prelucrare
automat a datelor ?
F. Cum este denumit ansamblul regulilor de modificare a formei cuvintelor, n
contextul ntrebuinrii lor, n cadrul unui limbaj de programare ?
G. Cum se numete programul elaborat ntr-un limbaj de nivel nalt (superior
limbajului cod-main) conform algorit-mului aplicaiei ?
H. Cum se numete limbajul de programare elaborat ca o variant simplificat
a limbajului FORTRAN cu scopul de a fi folosit interactiv pentru nvarea
rapid a programrii calculatoarelor ?
I. Cum se numete programul obinut dup translatarea unui program surs,
folosind un program de translatare corespunztor ?



2.7. Teme de control
a) Realizai un studiu comparativ privind posibilitile de folosire ale limbajelor
de programare n funcie de nivelul situat fa de limbajul n cod-main.
b) Alctuii un scurt referat cu tema: Modul de alegere a unui limbaj de
programare n funcie de domeniile de folosire, specificul aplicaiilor i
particularitile limbajelor de programare.
c) Alctuii un scurt referat cu tema: Influena exercitat de ctre
caracteristicile mediilor de programare asupra activitiilor de elaborare a
programelor, n funcie de specificul aplicaiilor.


2.8. Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti,
2012
5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economic, Bucureti, 2004
6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i
23


practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti,
2002
7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON,
Bucureti, 2003
8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura
CURTEA VECHE, Bucureti, 2004

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000
3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002
24

UNITATEA DE NVARE 3. ALGORITMI I ALGORITMIZAREA
APLICAIILOR

CUPRINS
3.1. Obiective
3.2. Competenele unitii de nvare
3.3. Algoritmi
3.4. Proprietile algoritmilor
3.5. Tipuri de algoritmi
3.6. Operaiile reprezentate n algoritmi
3.7. Clasificarea algoritmilor
3.8. Rezumat
3.9. Test de autoevaluare a cunotinelor
3.10. Test de evaluare a cunotinelor
3.11. Bibliografie



3.1. Obiective
n aceast unitate de nvare se va prezenta noiunes de algoritm ca premiz pentru
nelegerea modului de algoritmizare a oricrei aplicaii. De asemenea, se vor prezenta
proprietile algoritmilor, tipurile de algoritmi i operaiile care se reprezint n
algorimi pentru construcia corect a algoritmilor i reprezentarea corespunztoare
logic a aplicaiilor.


3.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
Definii noiunea de algoritm n sens general i n sens restrictiv;
Identificai proprietile algoritmilor pentru definirea lor corect sub aspect
formal i logic, precum i tipurile de algoritmi n funcie de natura operaiilor
de efectuat i de natura datelor folosite;
Efectuai algoritmizarea aplicaiilor pentru adaptarea lor la cerinele prelucrrii
automate.
Utilizai corect operatorii i operanzii n construcia algoritmilor pentru
algoritmizarea aplicaiilor.


Durata de parcurgere a acestei uniti de nvare este de 3 ore.

3.3. Algoritmi

n prelucrarea automat a datelor, logica programrii calculatoarelor este
denumirea pentru ansamblul operaiilor de determinare, reprezentare i evaluare a
algoritmilor de rezolvare a aplicaiilor cu calculatorul electronic.
ns, n contextul realizrii produselor informatice, aceast denumire este
extins, prin implicaiile sale, asupra modului de concepere a structurii de ansamblu a
produselor informatice, cu dependenele funcionale specifice, precum i asupra
modului de realizare a acestor produse.
Definiii
Denumirea de algoritm provine din contopirea cuvntului alhovism, dup
00:05
25

numele unui matematician arab (ALHVARISMI care a trit n evul mediu), cu
cuvntul grec arithmos (numr).
Definirea noiunii (conceptului) de algoritm a evoluat odat cu dezvoltarea
studiilor matematice i a tehnicii de calcul (mai ales a calculatoarelor electronice).
* n matematica contemporan prin algoritm se poate nelege orice proces
aritmetic sau algebric care se efectueaz dup nite reguli bine determinate.
* n sens matematic mai riguros un algoritm este o mulime finit de operaii
(instruciuni, comenzi) cunoscute care, executate ntr-o ordine bine stabilit, pornind
de la un set de valori (intrarea algoritmului) ce aparine unei mulimi de asemenea
seturi, mulime numit domeniul de definiie al algoritmului, produc n timp finit un alt
set de valori (ieirea algoritmului).
* n contextul n care se folosete calculatorul electronic, noiunea de
algoritm este definit ca un ansamblu de reguli ce determin n mod univoc un proces
finit de operaii de prelucrare automat asupra unor informaii admisibile iniiale n
scopul obinerii informaiilor finale care sunt ateptate de utilizatori.



Definii noiunea de algoritm.
........................................................................................................................................
.......................................................................................................................................
......................................................................................................................................


3.4. Proprietile algoritmilor

Pentru definirea corect sub aspect formal, algoritmii trebuie s ndeplineasc
cel puin trei condiii eseniale: generalitate, finitudine i unicitate.
Generalitatea este proprietatea algoritmilor prin care orice algoritm nu rezolv
n general o singur problem, ci o clas de probleme de acelai tip. Aceast
proprietate justific nsui sensul (scopul) pentru care un algoritm este elaborat. Cu ct
sfera de aplicabilitate a algoritmului este mai larg, cu att eficiena folosirii acestuia
este mai mare.
Finitudinea este proprietatea algoritmilor potrivit creia informaiile finale
rezult din informaiile iniiale printr-un numr finit de transformri (operaii). Aceast
proprietate pune n eviden faptul c dac n parcurgerea unui algoritm, dintr-un
anumit motiv (de obicei dintr-o eroare n logica elaborrii), o operaie sau un grup de
operaii se execut la infinit, atunci pentru a iei din aceast stare (a ntrerupe aceast
execuie) este necesar o intervenie din exterior.
Unicitatea este proprietatea algoritmilor conform creia transformrile
(operaiile), precum i ordinea lor de efectuare, prin care se obin anumite informaii
finale din informaiile iniiale, sunt univoc determinate de regulile algoritmului.
Aceasta nseamn c ori de cte ori se pornete de la acelai set de valori ale
informaiilor (variabilelor) de intrare se obin ntotdeauna aceleai informaii finale
(rezultate).
Aceste trei proprieti caracterizeaz algoritmii numai sub aspect formal.
Pentru a fi ns corespunztor i din punct de vedere al problemei de rezolvat (sub
aspect logic), orice algoritm mai trebuie s fie corect i eficient.
Corectitudinea este o condiie indispensabil pentru orice algoritm, fiind
determinat de metoda de rezolvare a problemei aleas de utilizator.
Eficiena unui algoritm este impus de modul cum se lucreaz la calculator i
de timpul de rspuns al calculatorului. n prezent modul de lucru la calculator este, de
00:30
26

obicei, modul conversaional, iar timpul de rspuns al calculatorului este timpul care
trece de la introducerea datelor n calculator de ctre utilizator i pn la obinerea
rezultatelor. Aceasta nseamn c, dei un algoritm poate fi corect sub aspect formal i
al metodei de rezolvare, este posibil s fie ineficient dac, de exemplu, furnizeaz
rezultatele mai trziu dect momentul ateptat. De asemenea, un algoritm poate fi
ineficient i sub alte aspecte, cum sunt: precizia, volumul de date necesare, resurse
folosite etc.

S ne reamintim...
Algoritmii trebuie s ndeplineasc cel puin trei condiii eseniale: generalitate,
finitudine i unicitate. Pentru a fi ns corespunztor i din punct de vedere al
problemei de rezolvat (sub aspect logic), orice algoritm mai trebuie s fie corect i
eficient.


Ce nelegei prin generalitate, finitudine i unicitate?
...................................................................................................................
Dar prin corectitudinea si eficiena unui algoritm?
...................................................................................................................



3.5. Tipuri de algoritmi


n funcie de natura operailor coninute i informailor folosite, algoritmii se
pot mpri n dou mari grupe: algoritmi numerici i algoritmi nenumerici.
* Algoritmii numerici sunt algoritmii care, n urma efecturii unui numr finit de
operaii aritmetice elementare asupra unor informaii numerice, furnizeaz un rezultat
numeric ce constituie soluia sau aproximaia acesteia pentru problema rezolvat. n
aceast grup se includ algoritmii ce corespund metodelor de calcul numeric, cum
sunt: rezolvarea ecuaiilor, integrarea i derivarea numeric, calculul matriceal.
Algoritmii numerici se caracterizeaz prin:
mrginirea (limitarea) n timp a duratei de execuie;
definirea riguroas a fiecrui ciclu (pas) din cadrul structurii algoritmului;
executabilitatea tuturor aciunilor (operaiilor) coninute;
corectitudinea metodelor de evaluare a algoritmilor.
* Algoritmii nenumerici denumii i algoritmi de prelucrare sunt algoritmii n
care soluia rezolvrii problemelor (rezultatul prelucrrii) se obine n urma efecturii
unui numr finit de operaii care nu sunt operaii aritmetice (de exemplu: sortarea,
indexarea, filtrarea, ventilarea, regruparea, interclasarea etc.).
n aceast grup se includ toi algoritmii de prelucrare a datelor organizate
structural n fiiere de date i baze de date. n algoritmii de prelucrare pot fi incluse, n
funcie de natura aplicaiilor, i operaii aritmetice care se constituie n subalgoritmi
numerici.


Definii noiunile de algoritmi numerici si algoritmi nenumerici.
........................................................................................................................................
.......................................................................................................................................
......................................................................................................................................

3.6. Operaiile reprezentate n algoritmi

01:00
27


n structura algoritmilor, informaiile iniiale (datele de intrare) sunt
transformate n informaii finale (date de ieire) prin diferite operaii (aciuni), care, n
principal, sunt:
Operaii de calcul, ce se refer la operaiile obinuite (adunare, scdere,
nmulire, imprire i ridicare la putere) i la celelalte operaii mai complexe ce se pot
executa prin reducerea la operaii aritmetice elementare.
Aceste operaii sunt reprezentate prin simbolurile cunoscute din matematic sau prin
simbolurile folosite n limbajele de programare:
+ pentru adunare,
- pentru scdere,
* pentru nmulire,
/ pentru imprire,
** pentru ridicare la putere;
( ) pentru subexpresii.
Aceste operaii cnd sunt specificate n cadrul expresiilor se execut n mod
natural, conform ordinei de prioritate cunoscut din matematic, sau n mod forat,
prin folosirea parantezelor rotunde.
Operaii de atribuire, prin care se stabilete coninutul unor variabile cu
anumite valori, care pot fi valori ale unor constante, ale altor variabile sau ale
unor expresii.
Aceste operaii se pot reprezenta prin trei simboluri diferite:
<-- simbol prin care se indic sensul atribuirii; variabila destinaie este situat
n partea stng a simbolului;
:= simbol tipic pentru operaia de atribuire, pentru a se deosebi de simbolul
"=" folosit n matematic;
= simbol preluat din matematic, dar folosit cu alt semnificaie i anume:
"se atribuie valoarea".
Indiferent care dintre aceste simboluri se folosete, n operaiile de atribuire
exist o surs de valori cu care se execut operaia, situat n dreapta simbolului, i o
destinaie care primete aceste valori, situat stng simbolului.


Exemple: S<-- 0 A := B E = A + B
I<-- I + 1 I := I + 1 I = I + 1


S ne reamintim...
Operaiile de calcul se refer la operaiile obinuite (adunare, scdere, nmulire,
imprire i ridicare la putere) i la celelalte operaii mai complexe ce se pot executa
prin reducerea la operaii aritmetice elementare.





Operaii de decizie, ce se refer la verificarea unei condiii logice i n funcie
de rezultatul obinut se alege fie o alternativ de urmat (n cazul algoritmilor cu
ramificaii), fie continuarea, respectiv terminarea, procesului repetitiv (n cazul
algoritmilor ciclici).
Dup modul de exprimare a condiiilor logice, operaiile de decizie pot fi
reprezentate prin dou feluri de simboluri:
simbolul de comparare;
simbolurile de relaie.
Simbolul de comparare este caracterul special: (dou puncte), care se poate
folosi pentru a compara o variabil cu alt variabil sau o variabil cu o constant.
01:30
5
01:15
28

Rezultatul unei astfel de comparri pune n eviden trei alternative: mai mic dect,
egal cu i mai mare dect.


Exemple:
A : B D : 0

S ne reamintim...
Dup modul de exprimare a condiiilor logice, operaiile de decizie pot fi reprezentate
prin dou feluri de simboluri: simboluri de comparare; simboluri de relaie.




Punnd n eviden aceste trei alternative, nu se recomand ca simbolul de comparare
s fie folosit pentru formularea condiiilor logice, deoarece complic structura
algoritmilor i, n consecin, reprezentarea acestora.
Simbolurile relaionale sunt simbolurile folosite n matematic sau cele folosie
n limbajele de programare, cum sunt urmtoarele:
< mai mic dect
> mai mare dect
= egal cu
<= mai mic dect sau egal cu
>= mai mare dect sau egal cu
<> nu este egal cu

Exemple:
A < B A > B A = B
A <= B A >= B A <> B

Punnd n eviden numai dou alternative (adevrat i fals), simbolurile de relaie
(relaionale) sunt cele care se recomand s fie folosite pentru formularea (exprimarea)
condiiilor logice.
Operaii de intrare i ieire, ce se refer la introducerea informaiilor admisibile
iniiale (datelor de intrare) n memoria calculatorului i la obinerea informaiilor finale
(rezultatelor sau datelor de ieire).
n prelucrarea automat a datelor, operaia de intrare se mai numete i operaie
de citire i const n introducerea de date de la tastatur sau de pe un suport tehnic de
date, iar operaia de ieire se mai numete operaie de scriere sau de afiare i const
n furnizarea de date pe ecranul monitorului sau pe imprimant. Pentru descrierea
operaiilor de intrare i ieire nu sunt simboluri speciale (consacrate), dar se folosesc n
mod frecvent cuvintele CITETE i SCRIE.
Alte operaii, prin care se desemneaz diferite operaii (aciuni) care se ntlnesc,
de obicei, n algoritmii nenumerici (de prelucrare), ca de exemplu: cutare, extragere,
sortare, interclasare etc. Aceste operaii nu se reprezint prin simboluri speciale
(consacrate), ci chiar prin denumirea lor.
Ordinea de execuie a operaiilor definete structura de control a algoritmului.
Aceast structur, indiferent de tipul algoritmului, prezint anumite similitudini, care
deriv din cele dou caracteristici de baz ale oricrui algoritm: iterativitatea i
recursivitatea.
01:50
29

* Iterativitatea const n reluarea anumitor operaii de prelucrare, n general
cu alte valori ale variabilelor.
* Recursivitatea reprezint procesul de determinare a valorii unei variabile, la
un moment dat, pe baza uneia sau a mai multor valori anterioare. Din cele prezentate
rezult c, se poate face o asociere ntre recursivitate i iterativitate, n sensul c,
obinerea valorilor succesive ale unei variabile recursive se poate asigura print-un
proces iterativ.


Definii cele dou caracteristici de baz ale unui algoritm.
........................................................................................................................................
.......................................................................................................................................
......................................................................................................................................


3.7. Clasificarea algoritmilor

Dup modul de succesiune a operaiilor (aciunilor) pe care le implic, algoritmii se
mpart n trei mari grupe:
algoritmi liniari sau cu structur secvenial;
algoritmi cu ramificaii sau cu structur alternativ;
algoritmi ciclici sau cu structur repetitiv.
Algoritmii liniari (cu structur secvenial) conin operaii care se succed n
secven (operaie dup operaie) de la admiterea informaiilor iniiale (datelor de
intrare) i pn la obinerea informaiilor finale (datelor de ieire), fr condiii
prestabilite de execuie i fr repetri ale operaiilor.





Exemplu:
Calculul expresiei E = A + B C implic efectuarea n ordine secvenial a
celor trei operaii specificate:
adunarea valorii variabilei A cu valoarea variabilei B;
scderea din suma obinut a valorii variabilei C;
atribuirea rezultatului obinut variabilei E.

Algoritmii cu ramificaii (cu structur alternativ) conin operaii (aciuni)
care se execut n funcie de ndeplinirea sau nendeplinirea unor condiii logice din
structura algoritmilor; structura se ramific pe alternative distincte, fiecare avnd
operaii care se execut condiionat.


Exemplu:
Calculul rdacinilor ecuaiei de gradul doi se desfoar pe etape, astfel:
etapa 1: se calculeaz discriminantul ecuaiei pe baza formulei cunoscute;
etapa 2: se compar discriminantul D cu zero;
etapa 3: se calculeaz rdcinile ecuaiei astfel:
dac D>0 se execut operaiile pentru obinerea celor dou rdcini reale
i distincte;
dac D=0 se execut operaiile pentru obinerea celor dou rdcini reale
i egale;
dac D<0 se execut operaiile pentru obinerea celor dou rdcini
02:05
30

complexe.

Algoritmii ciclici (cu structur repetitiv) conin operaii (aciuni) care se
execut ciclic (repetat), n funcie de ndeplinirea sau neindeplinirea unei condiii
impuse. n structura unui algoritm ciclic parcurgerea o singur dat a blocului de
operaii repetabile se numete ciclu sau pas. Elementele unui ciclu (pas) sunt: corpul
ciclului, reprezentat de blocul de operaii care se repet i condiia impus, de care
depinde continuarea sau terminarea procesului repetitiv.
n funcie de posibilitatea cunoaterii numrului de cicluri (pai) nainte de a
ncepe procesul ciclic (repetitiv), algoritmii ciclici sunt de dou feluri:
algoritmi ciclici cu un numr cunoscut de cicluri (pai) sau cu variabil de
ciclare;
algoritmi ciclici cu un numr necunoscut de cicluri (pai) sau cu condiie
logic.
Algoritmii ciclici cu un numr cunoscut de cicluri sunt algoritmii ciclici n
structura crora blocul de operaii se repet pn cnd se ajunge la numrul de cicluri
prestabilit. Acest numr de cicluri este controlat de o variabil denumit variabil de
ciclare (contor sau numrtor) simbolizat, n general, cu V.
Variabila de ciclare V este determinat elementele:
valoarea iniial V
i
;
valoarea final V
f
;
raia (pasul) de variaie R.
Aceste trei elemente se gsesc ntr-o relaie bine definit cu variabila de ciclare
i anume:
la nceputul procesului repetitiv variabilei de ciclare V i se atribuie valoarea
iniial V
i
pe baza relaiei V=V
i
;
dup efectuarea fiecrui ciclu (pas)variabila de ciclare V se modific pe baza
relaiei V=V+R i apoi se verific condiia V>V
f
, astfel c:
dac aceast condiie este fals, atunci procesul de ciclare continu;
dac aceast condiie este adevrat, atunci acest proces se termin.
Algoritmii ciclici cu un numr necunoscut de cicluri sunt algoritmii ciclici n
care blocul de operaii se repet n funcie de ndeplinirea sau nendeplinirea unei
anumite condiii care se numete condiie logic.
innd seama de locul unde este situat condiia logic n structura algoritmilor
ciclici cu un numr necunoscut de cicluri se pot distinge:
algoritmi ciclici cu condiia logic situat anterior;
algoritmi ciclici cu condiia logic situat posterior.
Algoritmii ciclici cu condiia logic situat anterior sunt algoritmii n care
condiia logic se verific nainte de executarea blocului de operaii. Ca atare, cnd
condiia logic este fals de la prima verificare, blocul de operaii nu se execut
niciodat i se ncheie procesul repetitiv.
Algoritmii ciclici cu condiia logic situat posterior sunt algoritmii n care
condiia logic este verificat dup executarea blocului de operaii. Cnd condiia
logic este fals de la prima verificare, blocul de operaii se execut o singur dat i
31

se ncheie procesul repetitiv.

Care sunt diferenele ntre algoritmii ciclici cu condiia logic situat anterior si
algoritmii ciclici cu condiia logic situat posterior ?
..
...






3.8. Rezumat
Noiunea de algoritm este definit ca un ansamblu de reguli ce determin n
mod univoc un proces finit de operaii de prelucrare automat asupra unor
informaii admisibile iniiale n scopul obinerii informaiilor finale care sunt
ateptate de utilizatori.
Algoritmii au urmtoarele proprieti: generalitate, finitudine, unicitate,
corectitudine i eficien.
n funcie de natura operailor coninute i informailor folosite, algoritmii se
pot mpri n dou mari grupe: algoritmi numerici i algoritmi nenumerici.
Algoritmii numerici sunt algoritmii care, n urma efecturii unui numr finit
de operaii aritmetice elementare asupra unor informaii numerice, furnizeaz
un rezultat numeric ce constituie soluia sau aproximaia acesteia pentru
problema rezolvat.
Algoritmii nenumerici denumii i algoritmi de prelucrare sunt algoritmii n
care soluia rezolvrii problemelor (rezultatul prelucrrii) se obine n urma
efecturii unui numr finit de operaii care nu sunt operaii aritmetice (de
exemplu: sortarea, indexarea, filtrarea, ventilarea, regruparea, interclasarea
etc.).
Operaiile reprezentate n algoritmi pot fi de tipul urmator: operaii de calcul,
operaii de atribuire, operaii de decizie, operaii de intrare/iesire.
Dup modul de succesiune a operaiilor (aciunilor) pe care le implic,
algoritmii se mpart n trei mari grupe:
- algoritmi liniari sau cu structur secvenial;
- algoritmi cu ramificaii sau cu structur alternativ;
- algoritmi ciclici sau cu structur repetitiv.


3.9. Test de autoevaluare a cunotinelor
(timp necesar : 20 minute)

1) Definii noiunea de algoritm.
2) Definii proprietatea de Generalitate.
3) Definii proprietatea de Finitudine.
4) Prin ce se caracterizeaz algoritmii numerici?
5) Ce ntelegei prin operaiile de decizie?
6) Care sunt caracteristicile de baz ale unui algoritm?
7) Cum pot fi reprezentate operaiile de decizie?
8) Ce ntelegei prin algoritmii ciclici cu un numr cunoscut de cicluri?


02:40
32

Rspunsuri:

1) Noiunea de algoritm este definit ca un ansamblu de reguli ce determin n
mod univoc un proces finit de operaii de prelucrare automat asupra unor
informaii admisibile iniiale n scopul obinerii informaiilor finale care sunt
ateptate de utilizatori.
2) Generalitatea este proprietatea algoritmilor prin care orice algoritm nu rezolv
n general o singur problem, ci o clas de probleme de acelai tip.
3) Finitudinea este proprietatea algoritmilor potrivit creia informaiile finale
rezult din informaiile iniiale printr-un numr finit de transformri (operaii).
4) Algoritmii numerici se caracterizeaz prin:
mrginirea (limitarea) n timp a duratei de execuie;
definirea riguroas a fiecrui ciclu (pas) din cadrul structurii algoritmului;
executabilitatea tuturor aciunilor (operaiilor) coninute;
corectitudinea metodelor de evaluare a algoritmilor.
5) Operaiile de decizie se refer la verificarea unei condiii logice i n funcie de
rezultatul obinut se alege fie o alternativ de urmat (n cazul algoritmilor cu
ramificaii), fie continuarea, respectiv terminarea procesului repetitiv (n cazul
algoritmilor ciclici).
6) Caracteristicile de baz ale unui algoritm sunt: iterativitatea i recursivitatea.
7) Operaiile de decizie pot fi reprezentate prin dou feluri de simboluri:
- simbolul de comparare;
- simbolul de relaie.
8) Algoritmii ciclici cu un numr cunoscut de cicluri sunt algoritmii ciclici n
structura crora blocul de operaii se repet pn cnd se ajunge la numrul de
cicluri prestabilit.




3.10. Test de evaluare a cunotinelor

Care sunt operaiile reprezentate n algoritmi?
Cum se clasific algoritmii dup modul de succesiune a operaiilor (aciunilor) pe care
le implic?




3.11. Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti,
2012
5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economic, Bucureti, 2004
6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i
33

practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002
7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON,
Bucureti, 2003
8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureti, 2004

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000
3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002
34


UNITATEA DE NVARE 4. DESCRIEREA ALGORITMILOR I FORME
DE REPREZENTARE

CUPRINS
4.1. Obiective
4.2. Competenele unitii de nvare
4.3. Reprezentarea algoritmilor
4.4 Reprezentarea algoritmilor prin scheme logice
4.5. Reprezentarea algoritmilor prin limbaj pseudocod
4.6. Rezumat
4.7. Test de autoevaluare a cunotinelor
4.8. Test de evaluare a cunotinelor
4.9. Bibliografie



4.1. Obiective
n aceast unitate de nvare se vor prezenta principalele forme folosite pentru
reprezentarea (descrierea) algoritmilor n scopul adaptrii specificaiilor acestora la
specificul construciilor limbajelor de programare. De asemenea, se vor prezenta
simbolurile folosite la construcia blocurilor din schemele logice de sistem i de
program.



4.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
Utilizai formele de reprezentare (descriere) a algoritmilor n scopul adaptrii
descrierii algoritmice la specificul limbajului de programare n care se
elaboreaz programele;
Identificai simbolurile standard folosite la construirea blocurilor din care se
alctuiesc schemele logice de sistem i de program;
Construii scheme logice de sistem i de program adaptate la specificul sintaxei
instruciunilor program ale limbajului de programare folosit.



Durata de parcurgere a acestei uniti de nvare este de 2 ore.


4.3. Reprezentarea algoritmilor

Dup ce un algoritm a fost elaborat (stabilit sau precizat), este necesar s fie
prezentat ntr-o form accesibil pentru elaborarea ulterioar a programului pentru
calculator. Aceast operaie se numete reprezentarea (descrierea) algoritmului.
Reprezentarea algoritmilor se poate realiza n mai multe feluri: prin cuvinte,
printr-un limbaj logico-matematic, prin scheme logice, prin limbaj pseudocod etc.

00:05
35


Care sunt metodele de reprezentare a unui algoritm?
...........................................................................................................................................
...........................................................................................................................................



4.4 Reprezentarea algoritmilor prin scheme logice

Schema logic este o form de reprezentare a algoritmilor rspndit n practica
programrii calculatoarelor, care se remarc prin simplitate i claritate de a reflecta n
mod concentrat i complet logica efecturii unei aplicaii (rezolvrii unei probleme) cu
calculatorul electronic.
Schema logic este o form grafic de reprezentare a algoritmilor alctuit din
blocuri de operaii legate prin sgei sau linii de flux.
Orice schem logic ncepe cu un bloc de intrare (START) i se termin cu un
bloc de ieire (STOP). ntre aceste dou blocuri terminale se interpun celelalte blocuri
aranjate conform algoritmului pe care l descrie. n schema logic fiecare bloc are o
singur intrare i o singur ieire, cu excepia blocului de decizie, care are o singur
intrare i dou ieiri (cte una pentru fiecare alternativ), a blocului de intrare care are
numai ramura de ieire i a blocului de ieire care are numai ramura de intrare.
Modul de parcurgere a algoritmilor (cum se trece de la un bloc la altul) se indic
explicit prin sgei sau implicit prin linii de flux. Legtura dintre blocurile schemei
logice poate fi numai univoc, condiie impus de noiunea de algoritm. n interiorul
blocurilor se specific operaiile de efectuat (operatorii) i datele de prelucrat
(operanzii).
n funcie de natura operaiilor pe care le conin, blocurile schemei logice sunt
descrise prin diferite simboluri (figuri geometrice) standardizate. Exist o diversitate de
simboluri folosite n acest scop, totui blocurile fundamentale necesare elaborrii unei
scheme logice, cu denumirea i semnificaia corespunztoare, sunt urmtoarele:
Blocul terminal. Acest bloc marcheaz nceputul, respectiv sfritul
algoritmului, astfel c n interiorul blocului se scrie, dup caz, START sau STOP.
Blocul de intrare/ieire. Marcheaz operaiile de CITIRE/SCRIERE a datelor.
Blocul de calcul. Indic operaiile de calcul i de atribuire, iar n algoritmii de
prelucrare poate indica i o procedur sau o secven de operaii.
Blocul de decizie. Pune n eviden operaiile de test i decizie n construirea
structurilor alternative i repetitive.
Blocul de procedur. Pune n eviden apelarea unui algoritm sau subalgoritm
care exist independent, respectiv apelarea unei secvene autonome; (n interiorul
blocului se scrie numele procedurii).
Sgeata. Indic sensul de parcurgere a algoritmului i unete blocurile ntre ele.
Dac este plasat n interiorul blocului de calcul, atunci indic o operaie de atribuire.
Conectorul de procedur. Indic punctele de ntlnire ale sgeilor (liniilor de
flux) sau locurile de conec-tare a dou pri din schema logic, pe aceeai pagin.
Conectorul de pagin. Leag dou blocuri (pri) succesive dispuse pe pagini
diferite. Se utilizeaz pentru a indica continuarea schemei logice de pe o pagin pe alta;
se poate nlocui cu conectorul de procedur.
00:15
36



S ne reamintim...
Blocurile fundamentale necesare elaborrii unei scheme logice sunt: blocul terminal,
blocul de intrare/ieire, blocul de calcul, blocul de decizie, blocul de procedur,
sgeata, conectorul de procedur, conectorul de pagin.










































4.5. Reprezentarea algoritmilor prin limbaj pseudocod

O form de descriere sintetic care asigur transpunerea algoritmilor n
limbajele de programare o constituie limbajul orientat ctre descrierea progresiv a
specificaiilor algoritmilor, denumit limbaj pseudocod.
Limbajul pseudocod poate fi definit ca un limbaj simbolic situat ntre limbajul
natural i limbajele de programare, obinut prin introducerea n limbajul natural a unor
reguli specifice limbajelor de programare.
Logica limbajului pseudocod este mai apropriat de limbajele de programare cu
toate c folosete cuvinte i expresii uzuale din limbajul natural. Cuvintele folosite n
limbajul pseudocod sunt considerate cuvinte simbolice, deoarece prin astfel de cuvinte
se simuleaz structurile necesare pentru descrierea algoritmilor. Avnd semnificaii
stricte n construciile sintactice, aceste cuvinte mai sunt denumite i cuvinte cheie i se
scriu ngroate sau subliniate.
ntre blocurile de operaii din schemele logice i cuvintele cheie din limbajul
pseudocod exist o oarecare echivalen, care se poate observa comparnd coninutul
blocurilor respective cu cuvintele cheie, folosite pentru descrierea specificaiilor unui
algoritm.
Reprezentarea algoritmilor n limbajul pseudocod se realizeaz prin propoziii.
n funcie de felul operaiilor pe care le descriu, propoziiile sunt:
propoziii simple, prin care se exprim operaii ce urmeaz s fie transpuse
direct ntr-un limbaj de programare (ca de exemplu, citete dou numere,
calculeaz suma, afieaz suma etc);
propoziii complexe, prin care se exprim un grup de operaii care trebuie
detaliate ulterior, n scopul transpunerii ntr-un limbaj de programare; pentru a fi
difereniate, propoziiile complexe se marcheaz la nceput cu semnul #.
Fiecare propoziie simpl sau complex trebuie s nceap cu un verb, care s
exprime ct mai corect operaia descris i care s poat continua, n unele cazuri, cu
anumite cuvinte prestabilite.
n limbajul pseudocod o importan deosebit, pentru evitarea erorilor, o are
folosirea semnelor de punctuaie, cum sunt:
caracterul ';' folosit pentru separarea expresiilor;
caracterul '.' folosit pentru marcarea, alturi de cuvntul sfrit, ncheierea
algoritmilor.
Pentru reprezentarea unui algoritm n limbajul pseudocod folosind aceste semne
de punctuaie, este necesar i suficient o singur fraz.
Reprezentarea algoritmilor prin limbaj pseudocod asigur:
flexibilitate mare n descrierea algoritmilor;
posibilitatea exprimrii algoritmilor n limbaj natural;
transpunere facil ntr-un limbaj de progamare.
01:00
5
37






Spre deosebire de schemele logice, pseudocodul este mai complet n descrierea
algoritmilor, posednd expresii care simuleaz cu claritate structurile fundamentale de
prelucrare (control). n consecin, limbajul pseudocod este din ce n ce mai mult folosit
ca form preferat pentru reprezentarea (descrierea) algoritmilor.


S ne reamintim...
Reprezentarea algoritmilor n limbajul pseudocod se realizeaz prin propoziii. n
funcie de felul operaiilor pe care le descriu, propoziiile sunt simple i complexe.


Care este deosebirea dintre schemele logice i limbajul pseudocod n descrierea
algoritmilor?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................








4.6. Rezumat

Schema logic este o form grafic de reprezentare a algoritmilor alctuit
din blocuri de operaii legate prin sgei sau linii de flux.
Orice schem logic ncepe cu un bloc de intrare (START) i se termin cu
un bloc de ieire (STOP). ntre aceste dou blocuri terminale se interpun
celelalte blocuri aranjate conform algoritmului pe care l descrie.
Blocurile fundamentale necesare elaborrii unei scheme logice sunt: blocul
terminal, blocul de intrare/ieire, blocul de calcul, blocul de decizie, blocul
de procedur, sgeata, conectorul de procedur, conectorul de pagin.
Limbajul pseudocod poate fi definit ca un limbaj simbolic situat ntre
limbajul natural i limbajele de programare, obinut prin introducerea n
limbajul natural a unor reguli specifice limbajelor de programare.
Reprezentarea algoritmilor n limbajul pseudocod se realizeaz prin
propoziii. n funcie de felul operaiilor pe care le descriu, propoziiile sunt
simple i complexe.





4.7. Test de autoevaluare a cunotinelor
(timp necesar : 20 minute)

1. Ce reprezinta o schema logica?
2. Care sunt blocurile fundamentale necesare elaborrii unei scheme logice?
3. Ce reprezinta Blocul terminal?
4. Ce reprezinta Blocul de procedur ?
5. Definiti limbajul pseudocod.
6. Cum se reprezinta algoritmii in limbajul pseudocod?
7. Care sunt avantajele reprezentarii algoritmilor in limbajul pseudocod?

Rspunsuri:

1. Schema logic este o form grafic de reprezentare a algoritmilor alctuit
01:50
38

din blocuri de operaii legate prin sgei sau linii de flux.
2. Blocurile fundamentale necesare elaborrii unei scheme logice sunt: blocul
terminal, blocul de intrare/ieire, blocul de calcul, blocul de decizie, blocul
de procedur, sgeata, conectorul de procedur, conectorul de pagin.
3. Blocul terminal marcheaz nceputul, respectiv sfritul algoritmului, astfel
c n interiorul blocului se scrie, dup caz, START sau STOP.
4. Blocul de procedur pune n eviden apelarea unui algoritm sau
subalgoritm care exist independent, respectiv apelarea unei secvene
autonome; n interiorul blocului se scrie numele procedurii.
5. Limbajul pseudocod poate fi definit ca un limbaj simbolic situat ntre
limbajul natural i limbajele de programare, obinut prin introducerea n
limbajul natural a unor reguli specifice limbajelor de programare.
6. Reprezentarea algoritmilor n limbajul pseudocod se realizeaz prin
propoziii. n funcie de felul operaiilor pe care le descriu, propoziiile sunt
simple i complexe..
7. Avantajele reprezentarii algoritmilor in limbajul pseudocod sunt:
flexibilitate mare n descrierea algoritmilor;
posibilitatea exprimrii algoritmilor n limbaj natural;
transpunere facil ntr-un limbaj de progamare.





4.8. Test de evaluare a cunotinelor

Care este modul de parcurgere a unui algoritm descris printr-o schema logica?
Care este deosebirea dintre descrierea algoritmilor prin schemele logice i
descrierea algoritmilor prin limbajul pseudocod?
Cum se numete forma grafic de reprezentare a algoritmilor alctuit din
blocuri de operaii legate prin sgei ?
Cum se numete forma de reprezentare a algoritmilor orientat ctre
descrierea progresiv a specificaiilor ?




4.9. Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti, 2012
5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economic, Bucureti, 2004
6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i
practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002
7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON,
39

Bucureti, 2003
8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureti, 2004

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000
3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002


40


UNITATEA DE NVARE 5. STRUCTURI FUNDAMENTALE DE
PRELUCRARE (CONTROL)

CUPRINS
5.1. Obiective
5.2. Competenele unitii de nvare
5.3. Structuri fundamentale de control
5.4. Reprezentarea structurii alternative
5.5. Reprezentarea structurii repetitive
5.6. Rezumat
5.7. Test de autoevaluare a cunotinelor
5.8. Test de evaluare a cunotinelor
5.9. Bibliografie


5.1. Obiective
n aceast unitate de nvare se vor prezenta structurile fundamentale de prelucrare
(control) i modul cum aceste structuri sunt descrie n schemele logice de program. De
asemenea, se vor prezenta instruciunile prin care aceste structuri de prelucrare
(control) sunt reprezentate n programele elaborate (de exemplu n limbajul VBA).



5.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
Identificai structurile fundamentale de prelucrare (control) n care orice
algoritm se poate descompune pentru elaborarea programului de prelucrare.
Descompunei orice aplicaie n structuri fundamentale de prelucrare (control)
pentru reprezentarea lor prin instruciuni n orice mediu de programare.
Reprezentai structurile fundamentale de prelucrare (control) prin instruciuni
specifice mediului de programare VBA.



Durata de parcurgere a acestei uniti de nvare este de 2 ore.

5.3. Structuri fundamentale de control

Structurile de control reprezint componentele programrii structurate.
Programarea structurat este un stil de programare care se bazeaz pe
respectarea unei discipline de programare i folosirea riguroas a ctorva structuri de
calcul. Ca rezultat se va ajunge la un algoritm uor de urmrit, clar i corect.
Termenul programare nu este identic cu cel de programare propriu-zis. Este
vorba de ntreaga activitate depus pentru obinerea unui program, deci att proiectarea
algoritmului ct i traducerea acestuia n limbajul de programare ales.
Indiferent ct de complex ar fi un algoritm, s-a demonstrat matematic c acesta
poate fi descompus n structurile fundamentale de prelucrare (control) urmtoare:
structura secvenial;
structura alternativ;
00:05
41

structura repetitiv.

Reprezentarea n schema logic:


a) structura
secvenial
b) structura
alternativ
c) structura
repetitiv
Figura 5.1. Structurile fundamentale de control

Reprezentarea structurii secveniale
Structura secvenial este o succesiune de operaii care se execut
necondiionat i fr repetri, n ordinea specificat n structura algoritmilor.



Cum poate fi descompus un algoritm?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................


5.4. Reprezentarea structurii alternative

Structura alternativ este alcatuita dintr-o conditie plus instructiunile care se executa
daca respectiva conditie este adevarata, respectiv instructiunile care se executa daca
este falsa.

Reprezentarea n schema logic:

Figura 5.2. Schema logica pentru structura alternativ

Reprezentarea structurii alternative de tip selecie
00:30
42

normal (I F-THEN-ELSE)
Structura alternativ de tip selecie normal (IF-THEN-ELSE) conine un bloc
de decizie i dou secvene de operaii, care se execut alternativ, dup cum condiia
logic este adevrat sau fals.
Reprezentarea structurii alternative de tip selecie
simpl (I F-THEN i I F-ELSE)
n acest tip de structur alternativ secvena de operaii este inclus n ramura
introdus de clauza THEN sau n ramura introdus de clauza ELSE, dup cum condiia
logic are valoarea logic adevrat sau fals.
Reprezentarea structurii alternative de tip selecie
multipl (CASE-OF)
Structura alternativ de tip selecie multipl are o variabil selector I i o
mulime finit de n secvene de operaii care se execut alternativ, dup cum variabila
selector ia valori pe intervalul 1,...,n. Variabila I trebuie s ia una din aceste valori
nainte de intrarea n structur, pentru execuia uneia din secvenele S
i,
altfel se execut
secvena de operaii S.



S ne reamintim...
Structura alternativa este alcatuita dintr-o conditie si cel putin o instructiune!



5.5. Reprezentarea structurii repetitive

Reprezentarea structurii repetitive cu condiie logic
Structurile repetitive cu condiie logic conin o secven de operaii care se
execut ciclic att timp ct o condiie logic este adevrat sau fals. Condiia logic
poate fi situat nainte de secvena de operaii (varianta WHILE-DO) sau dup aceast
secvena (varianta DO-UNTIL). Atunci cnd condiia logic este fals de la prima
testare, n varianta WHILE-DO nu se execut niciodat secvena de operaii din
structur i se ncheie procesul ciclic, iar n varianta DO-UNTIL aceast secven de
operaii se execut o singur dat.

Structura repetitiv cu conditie iniial

Aceasta structur este alcatuit dintr-o conditie, care se afl la nceput, si un bloc de
instructiuni, care se execut daca rezultatul evaluarii conditiei este adevarat.

Reprezentarea n schema logic:
1:00
43


Figura 5.3. Schema logica pentru structura repetitiv cu conditie iniial


Structura repetitiv cu condiie final

Alcatuirea acestei structuri este de forma bloc de instructiuni, apoi conditie.
De remarcat ca blocul de instructiuni se executa minim o data, spre deosebire de
structura repetitiva cu test initial, unde blocul de instructiuni era posibil sa nu se
execute deloc, daca rezultatul evaluarii conditiei initiale era fals.

Reprezentarea n schema logic:

Figura 5.4. Schema logic pentru structura repetitiv cu condiie final


Reprezentarea structurii repetitive cu variabil
de ciclare (DO-FOR)
Aceast structur conine o secven de operaii ce se execut repetat pn
rezult un numr prestabilit de cicluri. Procesul repetitiv este controlat de o variabil
de ciclare V, cu valoarea iniial V
i
, ce se modific pe parcurs prin relaia V=V+R i
care este testat ciclic prin relaia V >V
f
. Acest proces se termin cnd este ndeplinit
condiia V > V
f .



Cum este alctuit structura repetitiv?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................

5.6 Rezumat
44



Orice algoritm poate fi descompus n urmtoarele structuri fundamentale de
control:
structura secvenial;
structura alternativ;
structura repetitiv.
Structura secvenial este o succesiune de operaii care se execut
necondiionat i fr repetri, n ordinea specificat n structura algoritmilor.
Structura alternativ este alcatuit dintr-o conditie plus instructiunile care se
executa daca respectiva conditie este adevarata, respectiv instructiunile care se
executa daca este falsa.
Structura repetitiv cu condiie iniial este alcatuit dintr-o conditie, care se
afl la nceput, si un bloc de instructiuni, care se execut daca rezultatul
evaluarii conditiei este adevarat.
Structura repetitiv cu condiie final este de forma bloc de instructiuni, apoi
conditie.































5.7. Test de autoevaluare a cunotinelor
(timp necesar : 20 minute)

1. Care sunt structurile de control ale unui algoritm?
2. Cum se reprezinta structura secventiala?
3. Cum este alcatuita structura alternativa?
4. Cum este alcatuita structura repetitiv cu condiie iniial?
5. Cum este alcatuita structura repetitiv cu condiie final?

Rspunsuri:

1. Structurile fundamentale de control sunt urmtoarele:
structura secvenial;
structura alternativ;
structura repetitiv.
2. Structura secvenial este o succesiune de operaii care se execut necondiionat
i fr repetri, n ordinea specificat n structura algoritmilor.
3. Structura alternativ este alcatuit dintr-o conditie plus instructiunile care se
executa daca respectiva conditie este adevarata, respectiv instructiunile care se
executa daca este falsa.
4. Structura repetitiv cu condiie iniial este alcatuit dintr-o conditie, care se
afl la nceput, si un bloc de instructiuni, care se execut daca rezultatul
evaluarii conditiei este adevarat.
5. Structura repetitiv cu condiie final este de forma bloc de instructiuni, apoi
conditie.

01:30
45




5.8. Test de evaluare a cunotinelor

Ce diferen exist ntre cele trei structuri de control ale unui algoritm?
Cum se numete forma grafic de reprezentare a algoritmilor alctuit din
blocuri de operaii legate prin sgei ?
Cum se numete forma de reprezentare a algoritmilor orientat ctre
descrierea progresiv a specificaiilor ?







5.9. Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti,
2012
5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economic, Bucureti, 2004
6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i
practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002
7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON,
Bucureti, 2003
8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureti, 2004

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000
3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002



46


UNITATEA DE NVARE 6. ETAPELE ELABORRII UNUI PROGRAM
NTR-UN MEDIU DE PROGRAMARE

CUPRINS
6.1. Obiective
6.2. Competenele unitii de nvare
6.3. Principalele etape ale elaborrii unui program ntr-un mediu de programare
6.4. Rezumat
6.5. Test de autoevaluare a cunotinelor
6.6. Test de evaluare a cunotinelor
6.7. Bibliografie




6.1. Obiective
n aceast unitate de nvare se vor prezenta principalele etape care trebuie parcurse
logic i cronologic pentru elaborarea unui program n orice mediu de programare,
precum si operaiile care trebuie efectuate n fiecare etap pentru elaborarea unui
program n mediul VBA.



6.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
Parcurgeti principalele etape n ordinea lor logic i cronologic n scopul
elaborrii unui program n orice mediu de programare;
Efectuati operaiile specifice fiecrei etape pentru elaborarea unui program n
mediul VBA.




Durata de parcurgere a acestei uniti de nvare este de 2 ore.

6.3. Principalele etape ale elaborrii unui program ntr-un mediu de programare


Elaborarea unui program n orice mediu de programare implic desfurarea
unor activiti i efectuarea unor operaii, ntr-o ordine att logic, ct i cronologic,
care se pot grupa pe diferite etape i tipuri de activiti (operaii).
Etapele principale i activitile (operaiile) implicate sunt urmtoarele:
1. Definirea aplicaiei de prelucrat (problemei de rezolvat). Este etapa n cadrul
creia se stabilete caracterul prelucrabil al aplicaiei (problemei), adic posibilitatea
de efectuare cu calculatorul electronic. Orice aplicaie sau problem prelucrabil se
poate defini direct, prin relaii matematice sau descriptiv, prin propoziii i fraze.
Totodat, orice aplicaie sau problem prelucrabil trebuie definit complet i corect
00:05
47

pentru a fi posibil prelucrarea (rezolvarea) acesteia cu calculatorul electronic.
2. Analiza logic a aplicaiei (problemei) definite anterior. n aceast etap se
precizeaz care sunt i sub ce form se prezint rezultatele (datele de ieire) ateptate
de utilizator, felul i volumul datelor de prelucrat (de intrare), modul de culegere i
verificare a datelor de prelucrat, suporturile tehnice (de memorie) pe care se
nregistreaz datele de intrare, modul de introducere n calculatorul electronic a acestor
date. De asemenea, n aceast etap se specific procedurile de prelucrare a datelor,
precum i modul de lucru folosit (batch, interactive, teleprocessing etc).


Explicai in ce consta etapa de definire a problemei de rezolvat. Dar etapa de
analiza logic a aplicaiei?
...........................................................................................................................................

3. Elaborarea algoritmului (algoritmilor) de efectuare a aplicaiei (rezolvare
a problemei). Este etapa n care se precizeaz regulile necesare pentru efectuarea
operaiilor de prelucrare implicate ntr-o ordine determinat. Ordinea de efectuare a
acestor operaii este de obicei ordinea secvenial, cu specificarea explicit a
modificrii acestei ordini i a altor cerine de prelucrare.
Algoritmii elaborai pot fi algoritmi de prelucrare sau de calcul i/sau
combinaii dintre un algoritm de prelucrare i (sub)algoritmi de calcul. Prin aceti
algoritmi se pun n eviden structurile fundamentale de prelucrare (de control), pe
baza crora urmeaz s se contureze elaborarea ulterioar a programului pentru
efectuarea aplicaiei (rezolvarea problemei).


Care este deosebirea dintre etapa de analiza a problemei si etapa de elaborare a
algoritmului?
...........................................................................................................................................
...........................................................................................................................................
..........................................................................................................................................



4. ntocmirea schemelor logice (de sistem i de program). Este etapa n care
se descriu (reprezint) sub form grafic algoritmul (algoritmii) de efectuare a
aplicaiei.
n acest context, schema logic constituie o descriere mai explicit a
algoritmului, n special cnd algoritmii au un nivel mai mare de complexitate.
Prin schemele logice de sistem se stabilesc resursele necesare programului
(sursele i fluxurile de date, suporturile tehnice de date), iar prin schemele logice de
program se reprezint succesiunea operaiilor de prelucrare specificate de algoritmi.



S ne reamintim...
Etapa de elaborare a algoritmului pune n eviden structurile fundamentale de de
control, pe baza crora urmeaz s se contureze elaborarea ulterioar a programului
pentru efectuarea aplicaiei.
00:40
48


Avantajele etapei de stabilire a schemelor logice sunt urmatoarele:
...
...
...
5. Scrierea programului sub form de text surs. n aceast etap se
concretizeaz toate activitile desfurate n etapele anterioare sub form de program
text surs scris pe un formular de programare (tipizat sau netipizat) i coninnd
instruciunile pentru codificarea specificaiilor algoritmului (algoritmilor) aplicaiei.
Elaborarea programului implic ndeplinirea unor cerine, printre care n mod
necesar sunt urmtoarele: alegerea versiunii (variantei) de limbaj (mediu) de
programare, stabilirea modului de elaborare a programului surs (monolit sau
modular) i respectarea regulilor sintactice specifice versiunii (variantei) de limbaj
(mediu) de programare folosit.
n funcie de specificul execuiei instruciunilor, un astfel de program (monolit
sau modul) este alctuit din trei pri distincte:
prima parte a programului, care conine instruciuni pentru executarea operaiilor
iniiale, adic a acelor operaii care se efectueaz o singur dat la nceputul
programului (ca de exemplu: instruciuni pentru declararea i dimensionarea
variabilelor, reprezentnd datele de intrare (de prelucrat), datele de ieire (rezultatele
prelucrrii) i variabilele intermediare (de lucru); iniializarea unor variabile;
deschiderea tabelelor (fiierelor) baz de date etc);
a doua parte a programului, coninnd instruciuni pentru executarea operaiilor
din corpul programului, adic a operaiilor care sunt specifice fiecrei aplicaii (ca de
exemplu: instruciuni de calcul, de atribuire, de control al structurilor fundamentale de
prelucrare etc);
a treia parte a programului, care conine instruciuni pentru executarea operaiilor
finale, adic a acelor operaii care se efectueaz o singur dat la sfritul programului
(ca de exemplu: afiarea rezultatelor prelucrrii i/sau a unor mesaje specifice fiecrei
aplicaii (pe ecran sau imprimant), nchiderea tabelelor (fiierelor) baz de date etc).


S ne reamintim...
In etapa de scriere a programului se concretizeaz toate activitile desfurate n
etapele anterioare sub form de program text surs scris pe un formular de
programare (tipizat sau netipizat) i coninnd instruciunile pentru codificarea
specificaiilor algoritmilor aplicaiei.


6. Introducerea programului text surs n memoria calculatorului. Este etapa
n care se editeaz programul elaborat n etapa anterioar, adic se introduc
instruciunile de la tastatur n ordinea n care sunt scrise pe formularul de programare,
folosind editorul de programe propriu limbajului (mediului) de programare. n aceast
etap se pot efectua corectri ale unor eventuale erori de tastare, pentru a evita apariia
unor mesaje de erori de sintax n etapa urmtoare de lansare n execuie a
programului.
7. Lansarea n execuie a programului surs editat anterior. n aceast
etap utilizatorul poate proceda, n funcie de versiunea (varianta) de limbaj (mediu)
de programare folosit, la execuia programului surs editat. De asemenea, n aceast
49

etap, utilizatorul poate s efectueze depanarea programului pentru eliminarea unor
eventuale erori de sintax i de logic. Aceast etap se consider ncheiat dup
obinerea rezultatelor (datelor de ieire) ateptate, folosind un volum redus de date
(date de prob).


In ce etapa se pot efectua corectri ale unor eventuale erori de tastare ?
...
...
...

8. Elaborarea documentaiei finale a programului. Este etapa n care se
strng mpreun toate documentele care au rezultat din parcurgerea etapelor anterioare
i se elaboreaz instruciunile de exploatare curent a programului.
9. Exploatarea curent i actualizarea ulterioar a programului. Aceast
etap este ultima etap a procesului de elaborare a unui program ntr-un mediu de
programare i totodat un punct de plecare pentru un nou proces. Astfel, odat cu
folosirea programului pentru efectuarea aplicaiei sau rezolvarea problemei se
desfoar i activitile care sunt necesare pentru mbuntirea performanelor sau
adaptrii permanente a programului la modificrile survenite n domeniul de
provenien a aplicaiei.
Procesul de elaborare a unui program n orice limbaj (mediu) de programare nu
este un proces continuu, care se desfoar fr ntrerupere de la prima pn la ultima
etap, ci este un proces iterativ, care implic parcurgerea unei etape sau a mai multor
etape, apoi analiza activitilor desfurate i ntoarcerea, dac este cazul, pentru
mbuntirea sau chiar refacerea unora dintre aceste activiti.


In ce etapa se pot efectua activiti pentru mbuntirea performanelor sau adaptrii
permanente a programului la modificrile aparute?
...
...
...







6.4. Rezumat

Principalele etape ale elaborrii unui program ntr-un mediu de programare sunt:
- definirea problemei de rezolvat
- analiza logic a aplicaiei
- elaborarea algoritmului de rezolvare a aplicatiei
- intocmirea schemelor logice
- scrierea programului sub forma de text sursa
- introducerea programului text surs n memoria calculatorului
- lansarea n execuie a programului surs
- elaborarea documentaiei finale a programului
- exploatarea curent i actualizarea ulterioar a programului




01:40
50


6.5 Test de autoevaluare a cunotinelor
(timp necesar : 20 minute)

1. n orice algoritm procesul de determinare a valorii unei variabile, la un moment dat,
pe baza uneia sau a mai multor valori anterioare se numete:
a. generalitate b. unicitate c. recursivitate d. iterativitate
2. ntr-un algoritm numeric operaia de decizie se poate simboliza printr-un operator:
a. de atribuire b. de comparare c. aritmetic d. de calcul
3. Operaiile care se succed fr condiii prestabilite de execuie i fr
repetri sunt n algoritmii:
a. cu orice structur b. cu structur alternativ
c. cu structur repetitiv d. cu structur secvenial
4. ntr-un algoritm numeric operaia de decizie simbolizat cu caracterul special :
are ca rezultat ramificarea:
a. n trei alternative b. n dou alternative
c. n mai mult de trei alternative d. nu are rezultat
5. ntr-un algoritm numeric operaia de decizie cu operator de relaie are ca efect
ramificarea algoritmului:
a. nu are nici un efect b. n trei alternative
c. n dou alternative d. n peste trei alternative
6. Ordinea de execuie a operaiilor n algoritm definete:
a. structura de control b. finitudinea
c. iterativitatea d. tipul algoritmului
7. ntr-o schem logic sensul implicit de parcurgere a algoritmului este indicat prin:
a. linii de flux b. sgei c. blocuri cu operaii d. conectori de procedur
8. Operaiile care se succed cu condiii prestabilite de execuie i fr repetri sunt n
algoritmii:
a. cu orice structur b. cu structur alternativ
c. cu structur repetitiv d. cu structur secvenial
9. Selecia unei alternative de prelucrare, printr-o variabil selector, se efectueaz n
structura:
a. de tip selecie simpl b. de tip selecie normal
c. de tip selecie multipl d. repetitiv
10. Alternativa de execuie vid poate exista n structura fundamental de prelucrare
(control):
a. de tip selecie simpl b. de tip selecie normal
c. de tip selecie multipl d. repetitiv

Rspunsurile corecte la ntrebrile din testul de tip gril:
1 d 2 b 3 d 4 a 5 c 6 a 7 a 8 b 9 c 10 a





6.6 Test de evaluare a cunotinelor

51


n care etap de elaborare a unui program se stabilete caracterul prelucrabil
al aplicaiei ?
Care sunt prile distincte din care este alctuit orice program n funcie de
specificul execuiei instruciunilor ?
Cum se numete i n ce const procesul de elaborare a unui program care
implic parcurgerea unei etape sau a mai multor etape i analiza activitilor
desfurate ?




6.7 Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti,
2012
5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economic, Bucureti, 2004
6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i
practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002
7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON,
Bucureti, 2003
8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureti, 2004

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura
Economic, Bucureti, 2000
3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002


52

UNITATEA DE NVARE 7. ELEMENTE DE BAZ ALE MEDIULUI DE
PROGRAMARE VBA

CUPRINS
7.1. Obiective
7.2. Competenele unitii de nvare
7.3. Date i structuri de date. Clasificarea datelor
7.4. Constante i variabile
7.5. Alte tipuri de date
7.6. Operatori i expresii
7.7. Funcii
7.8. Proceduri
7.9. Controale Visual Basic (VBA)
7.10. Lucrul cu fisiere de date in mediul VBA
7.11. Rezumat
7.12. Test de autoevaluare a cunotinelor
7.13. Test de evaluare a cunotinelor
7.14. Tema de cotrol
7.15. Bibliografie


7.1. Obiective
nsuirea i folosirea corect la elaborarea programelor a elementelor de baz
ale mediului de programare VBA;
Cunoaterea i folosirea corect, n programele VBA, a datelor i structurilor
de date (constante, variabile, masive);
Cunoaterea i folosirea corect, n programele VBA, a operatorilor i
expresiilor;
Cunoaterea i folosirea corect, n programele VBA, a funciilor i
procedurilor;
Cunoaterea i folosirea corect, n programele VBA, a controalelor;
Cunoaterea i folosirea corect, n programele VBA, a fiierelor de date.



7.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
nelegeti rolul datelor i criteriilor de clasificare a acestora n programele
elaborate n mediul VBA;
folosii constantele i variabilele n programele elaborate n mediul VBA;
folosii operatorii i expresiile n programele elaborate n mediul VBA;
utilizai funciile i procedurile n programele elaborate n mediul VBA;
utilizai controalele si sa prelucrati fiierele de date n programele elaborate n
mediul VBA.



Durata de parcurgere a acestei uniti de nvare este de 3 ore.
53


7.3. Date i structuri de date. Clasificarea datelor

Date i structuri de date
Datele constituie suportul formal al informaiilor, un model de reprezentare a
informaiilor la nivel fizic i logic.
La nivel fizic unei date i corespunde o zon de memorie de o anumit mrime,
situat la o anumit adres, n care sunt nregistrate pe o anumit perioad de timp i
ntr-o form specific valorile acestora.
La nivel logic unei date i se pot asocia:
un identificator, care reprezint numele ce se asociaz datei pentru a se distinge
de alte date i pentru a fi referit n procesul de prelucrare cu calcu-latorul electronic;
valori, care pot fi de diferite tipuri (ntregi, reale, complexe, logice, iruri de
caractere);
atribute, care precizeaz proprietile informaionale ale datei i anume: tipul,
precizia de reprezentare intern, modul de alocare a memoriei (static, dinamic),
valoarea iniial.
Clasificarea datelor
Datele se pot clasifica dup diferite criterii i anume:
dup gradul de complexitate:
date elementare (scalare), care sunt definite ca entiti indivizibile;
colecii de date, alctuite dintr-o mulime de date elementare ntre care se
stabilesc relaii i structuri;
dup tipul componentelor:
date omogene, cnd toate componentele sunt de acelai tip;
date eterogene, cnd componentele sunt de tipuri diferite;
dup modul de alocare a zonelor de memorie:
date de tip static, care se declar explicit i crora se aloc zone de memorie
n timpul translatrii programului;
date de tip dinamic, crora zonele de memorie se aloc n timpul execuiei
programului;
dup modul de pstrare n zonele de memorie n timpul execuiei
programului:
constante, adic date care i pstreaz aceeai valoare n timpul execuiei
programului;
variabile, adic date care i modific valoarea n timpul execuiei
programului.

Enumerai principalele criterii de clasificare a datelor:
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................




7.4 Constante i variabile

Constante
n Visual Basic for Applications constantele pot fi:
constante native sau simbolice, adic constante ncorporate n Visual Basic for
00:10
0
00:05
54















































Applications, ca de exemplu:
vb OK Only, care afieaz numai butonul OK i are valoarea 0;
vb OK Cancel, care afieaz butonul OK i Cancel i are valoarea 1;
constante definite de utilizator, adic constante alese (generate) i introduse n
program de utilizator.
n programele VBA, constantele au un domeniu, adic un loc unde sunt
declarate (vizibile), astfel c pot fi:
constante locale, disponibile numai n procedura n care au fost declarate;
constante globale, disponibile n toate modulele aplicaiei;
constante definite la nivelul modului formei sau codului, disponibile n toate
procedurile modului respectiv.
Forma general (sintaxa) de declarare a unei constante este:
[Global]const nume_constant = expresie
unde:
nume_constant este numele constantei declarate;
expresie este exprexia numeric sau de tip ir care atribuie valoarea constantei.
Exemple:
Const COD_MAT = 2354
Const DEN_MAT = CIMENT
Const U-M = TO
Const STDC = 50
Variabile
n mediul de programare VBA, variabila este o zon de memorie care i
modific coninutul n timpul executrii programului.
Pentru a fi identificat, variabila are un nume, care trebuie:
s fie un nume unic;
s aib o lungime de maxim 256 caractere;
ca primul caracter din nume s fie liter;
s nu conin caractere punct;
s nu fie cuvnt rezervat.
Variabilele pot fi:
variabile definite de utilizator (ca de exemplu: COD_MAT; DEN_MAT; STOC);
variabile definite ca proprieti pentru fiecare din obiectele de pe form (ca de
exemplu: variabile numerice (lungimea i limea unui obiect), variabile logice (TRUE
i FALSE), variabile ir de caractere (titlurile butoanelor).
Variabilele recunoscute de VB sunt de diferite tipuri:
Tip Sufix Lungime Domeniu
Byte fr 1 octet 0 - 255
Boolean fr 2 octei Adevrat sau Fals
Integer % 2 octei -32768 i 32767
Long & 4 octei -2147483 i 147483647
Sinngle ! 4 octei -3.40E38 i 3.40E38
Double # 8 octei -1.80E308 i 1.80E308
Currency @ 8 octei -9.22E14 i 9.22E14
Date fr 8 octei Ian 1.100 - Dec 31.999
Object fr 4 octei Adresa oricrui obiect
00:20
55



































String $ octet/caracter Max. 65500 octei
Variant fr dup caz n funcie de tip
User-Defined fr dup caz n funcie de tipul elementelor
Forma general (sintaxa) de declarare a unei variabile este:
Dim/Static/Global nume_variabil [As tip_dat]

unde:
Dim/Static//Global permite precizarea domeniului de vizibilitate al variabilei;
nume_variabil este identificatorul variabilei declarate;
tip_dat este identificatorul tipului de dat.
Dac tipul de dat nu este specificat, atunci se consi-der implicit Variant.
Declararea variabilelor
Declararea implicit. Se efectueaz astfel:
variabilei i se ataeaz un sufix, de exemplu %
VAL_PROD% = 25000
dac sufixul este omis, tipul variabilei se consi-der Variant.
Declararea explicit. Se realizeaz cu instruciunea
DIM nume_variabil AS tip_variabil [lungime]
unde lungime este lungimea n octei a variabilei de tipul declarat.

Exemple:
DIM Val_prod AS Long
DIM Den_mat, Cod_mat Den_mat este de tipVariant
DIM U_M As Strinng*4 ir din maxim 4 caractere

Domeniul unei variabile
Domeniul este locul unde se declar o variabil, adic zona de program unde
variabila este vizibil i utilizabil.
Sunt posibile trei nivele de domenii de vizibilitate:
la nivel de procedur (local);
la nivelul modulului de form;
la nivel global.
La nivel de procedur sunt:
a) variabile folosite numai n cadrul procedurii unde au fost declarate
(implicit sau explicit); exemplu:
Dim Den_mat As String;
b) variabile statice n procedur, care i pstreaz valoarea ntre apelurile
succesive ale procedurii; de exemplu:
Static Cod_mat As Integer
Static Val_mat
La nivelul modulului de form variabilele definite pot fi folosite n mai multe
proceduri de tratare a unui eveniment. O variabil la nivelul modulului formei se
declar astfel:
a) se alege opiunea Module din meniul Insert sau din alte variante de VB,
00:30
56

pentru a afia fereastra de cod;
b) se execut un click pe caseta list Object i se selecteaz General;
c) se execut click pe caset list Proc i se selecteaz Declaration;
d) se tasteaz instruciunea declarativ; de exemplu:
Dim Cod_mat As Integer
La nivel global variabilele declarate pot fi folosite de toate subprocedurile i
funciile. Pentru a declara o variabil la nivel global se procedeaz astfel:
a) se selecteaz opiunea New Module din meniul File, dup care apare
fereastra pentru scrierea instruciunilor;
b) se execut click pe caseta list Proc i se selec-teaz Declaration;
c) se tasteaz instruciunile declarative; de exemplu:
Global Den_mat As String
Global Cod_mat As Integer
Global Stoc

S ne reamintim...
Domeniul unei variabile este locul unde se declar o variabil, adic zona de program
unde variabila este vizibil i utilizabil.



7.5 Alte tipuri de date

Tipuri de date definite de utilizator (User- Defined)
n mediul VBA utilizatorul poate s defineasc tipuri noi de date, folosind
combinaii de tipuri predefinite (ca de exemplu: Byte, Integer, Single, Double, String
etc), conform sintaxei urmtoare:
TYPE tip-nou
var 1 AS tip-1
var 2 AS tip-2

END TYPE
unde:
tip_nou reprezint identificatorul tipului nou de date, definit conform regulilor
de sintax de construire a numelor n VBA;
var i este numele elementului de variabil de rang i din structura tipului de dat
definit;
tip i este numele tipului de dat al elementului de rang i; este admis orice tip
de dat VBA, cu excepia tipului Object.
Tipurile de date definite de utilizator (User-Defined) se folosesc de regul n
programele care prelucreaz baze de date, cnd ntr-un articol se regsesc cmpuri de
orice tip de date i se declar n seciunea General/Declaration a modulului de cod cu
ajutorul cuvintelor cheie Type i End Type, fiind vizibile n orice parte a aplicaiei.
Exemplu:
Type MATERIALE
Cod_mat As Integer
Den_mat As String*20
U_m As String
00:40
5
57

P_u As Integer
Stoc_mat As Integer
Val_mat As Double
End Type
Variabile matriceale
n VBA variabilele cu care se lucreaz sunt de regul variabile obinuite,
fiecare avnd numele su propriu. n unele cazuri este mai avantajoas folosirea unor
variabile multidimensionale, numite masive sau tablouri.
Masivul (tabloul) este o mulime de elemente de acelai tip (omogene), astfel
alctuit nct fiecrui element i se asociaz un indice (o dat de tip scalar) care indic
poziia elementului n masiv.
Pentru apariie n programele VBA, masivul (tabloul) trebuie declarat, folosind
forma general (sintax) urmtoare:
{Global/Dim/Static}nume_masiv
([indice_1 To]indice_max_1...)
[As tip_dat]
unde:
Global/Dim/Static aloc memorie masivelor i inii-alizeaz elementele
acestora;
Numme_masiv este identificatorul masivului declarat;
indice j reprezint valoarea minim a indicelui pentru dimensiunea j; valoarea
implicit este 0, dar poate fi modificat la nivel de modul prin instruciunea Option
Base;
indice_max j reprezint valoarea maxim pentru dimensiunea j;
tip_dat este tipul de dat corespunztor; implicit acest tip este Variant.
Exemple:
DIM Vnzri (20)
DIM Tarife (10) As Integer
DIM Preuri (15,11) As Integer
DIM Masiv (1 TO 3, 4 TO 7, 3 TO 6) As Single
DIM Furnizori (1 TO 9) As String*4
DIM Clieni (1 TO 6)


Descriei sintaxa masivului n programele VBA:
...
...
...

7.6 Operatori i expresii

Operatori
Semnele (caracterele prelucrabile speciale) folosite pentru marcarea operaiilor
care se efectueaz asupra datelor n programele VBA se numesc operatori.
n VBA operatorii sunt de patru feluri:
01:00
58

operatori aritmetice (numerici);
operatori relaionali (de comparare);
operatori logici;
operatori de concatenare.
Operatorii aritmetici sunt:
+ pentru adunare;
pentru scdere;
* pentru nmulire;
/ pentru mprire cu rezultat sub form de numr fracionar;
\ pentru mprire cu rezultat sub form de numr ntreg;
MOD(MODULO) - pentru mprire i reinerea numai a restului mpririi;
^ pentru ridicarea la putere.
Ordinea de efectuare a operaiilor aritmetice (evaluarea operatorilor aritmetici)
este cea natural, adic:
ridicarea la putere;
nmulirea i mprirea;
adunarea i scderea.
Aceast ordine de prioritate se poate schimba prin folosirea parantezelor
rotunde. Astfel operaiile incluse n aceste paranteze au prioritatea cea mai mare.
Operatorii relaionali (de comparare) sunt:
< mai mic dect
> mai mare dect
= egal cu
< = mai mic dect i egal cu
< = mai mare dect i egal cu
< > diferit de
Operatorii logici sunt:
AND pentru nmulire logic (operatorul i logic);
OR pentru adunare logic (operatorul SAU logic);
XOR pentru adunare logic exclusiv
(SAU exclusiv);
NOT pentru negare logic.
Ordinea de efectuare a operaiilor logice (evaluare a operatorilor logici este:
NOT
AND
OR i XOR
Operatorii de concatenare sunt:
+ pentru conversia variabilei numerice ntr-un ir de caractere cu ajutorul
funciei Cstr (numr);
& pentru a fora ca o variabil s devin de tipul adecvat.
Expresii
O expresie este o construcie tipic de limbaj alctuit din operatori i operanzi.
Ca operatori se pot folosi operatori aritmetici, opera-tori relaionali, operatori
logici i operatori de concatenare.
Ca operanzi se pot folosi constante, variabile, funcii.
59

n funcie de natura operatorilor, expresiile pot fi:
expresii aritmetice;
expresii relaionale;
expresii logice;
expresii pentru iruri de caractere.


7.7 Funcii

O funcie este o prelucrare predefinit destinat pentru efectuarea unei operaii
sau unor operaii care returneaz o valoare.
Forma general (sintaxa) funciei este:
Rezultat = nume_funcie ([list_argumente])
unde:
nume_funcie este identificatorul (numele) de apel al funciei;
list_argumente este lista care conine argumentele (parametri) funciei; dac
sunt cel puin dou argumente, acestea se separ prin virgul.
Mediul de programare VBA dispune de numeroase funcii, dintre care
principalele categorii sunt:
funcii pentru dialog cu utilizatorul;
funcii matematice i statistice;
funcii pentru iruri de caractere
funcii de editare;
funcii financiare.
Funcii pentru dialog cu utilizatorul
Funcia InputBox( ). Este o funcie folosit pentru afiarea ntr-o caset de
dialog un mesaj_invitaie, ateptnd ca utilizatorul s introduc date de la tastatur,
apoi atribuie unei variabile o valoare de tip Variant sau String, n funcie de forma
general (sintaxa) folosit.
Forma general (sintaxa) acestei funcii este:
a) Variabil =InputBox(prompt,[title],
[default],[xpos],[ypos],
[helpfile],[context])
pentru tipul de date variant;
b) Variabil$= InputBox(prompt,[title],
[default],[xpos],[ypos], [helpfile],[context])
pentru tipul de date ir de caractere, unde:
prompt specific mesajul_invitaie care se adreseaz utilizatorului, fiind
singura opiune obligatorie;
title este un text (un ir de caractere) care se afieaz pe bara de titlu a casetei
de dialog;
default este un ir de caractere care reprezint un rspuns prestabilit ce se va
afia implicit n caseta de text din caseta de dialog, dac nu se introduce altceva;
scpos, ypos sunt expresii numerice care specific coordonatele x i y pentru
poziionarea afirii pe ecran a datelor tastate (fa de colul din stnga sus al
ecranului);
01:20
60

helpfile, context sunt un ir de caractere, respectiv un ntreg, fiind argumente
prin care se realizeaz asistena software pentru utilizatori.
Funcia MsgBox( ). Este funcia al crei rol const n afiarea pe ecran a unui
mesaj ntr-o caset de dialog, specificnd prin argumente titlul i mesajul casetei i
preciznd tipul butoanelor afiate n fereastra casetei.
Forma general (sintaxa) simplificat a acestei funcii este:
MsgBox(prompt,[type],[title],[helpfile],[context])
unde:
prompt este un ir de caractere reprezentnd mesajul care se afieaz n caseta
de dialog, fiind singura opiune obligatorie;
type este o expresie numeric care specific numrul i tipul butoanelor ce vor
fi afiate (OK, Cancel, Abort etc);
title este o expresie ir de caractere care se afieaz pe bara de titlu a casetei de
dialog;
helpfile, context sunt opiuni similare cu cele din funcia InputBox( ).
n mediul VBA pe lng funcia MsgBox( ) exist i procedura MsgBox.
Funcii matematice i statistice
n VBA exist diverse astfel de funcii; de exemplu:
ABS(expN) - calculeaz valoarea absolut a expresiei numerice expN;
EXP(expN) - calculeaz valoarea lui e (baza logarit-milor naturali) la puterea
expN;
SQR(expN) - calculeaz rdcina ptrat din expN;
INT (expN) - determin partea ntreag pentru expN.
Funcii pentru iruri de caractere
n VBA exist o diversitate de funcii pentru iruri de caractere, ca de exemplu:
Len(exp_ir) - returneaz lungimea unui ir de caractere;
Lcase(exp_ir) - transform literele mari n litere mici;
Ucase(exp_ir) - transform literele mici n litere mari;
LTrim(exp_ir) - elimin spaiile de la nceputul irului de caractere
specificat;
RTrim(exp_ir) - elimin spaiile de la sfitul irului
de caractere specificat;
Val(ir_caractere) - transform irul de caractere ntr-un numr;
Chr( ) - returneaz caracterul corespunztor codului;
Asc( ) - returneaz codul corespunztor caracterului.
Funcii de editare
Format( ). Este folosit pentru afiarea unei expresii ntr-o form dorit.
Exemplu:


Val = Cant * Pre
Valoare = Format (Val,###0.00)
Print Valoare
61

Funcii financiare
DDB - calculeaz i furnizeaz cota de amortizare a unui bun pe parcursul unei
perioade specificate;
FV - calculeaz i red valoarea viitoare a unei investiii;
IPMT - calculeaz i furnizeaz suma dobnzilor unei investiii pentru o perioad
dat;
IRR - calculeaz i furnizeaz rata de rentabilitate intern a unei investiii;
MIRR - similar cu IRR, dar fr a ine seama de costu-rile de finanare i de
plusvaloarea de reinvestire;
NPER - calculeaz i furnizeaz numrul pli pentru o investiie dat;
NPV - calculeaz i furnizeaz valoarea actual a unei investiii pe baza fluxurilor
financiare variabile;
PMT - calculeaz suma total a fiecrei rambursri periodice;
PPMT - calculeaz partea vrsmntului principal al unui mprumut pentru o
perioad dat;
PV - calculeaz valoarea actual a unei investiii;
RATE - calculeaz rata dobnzii pe perioada unei investiii date;
SLN - calculeaz amortismentul liniar al unui bun pentru o perioad de timp dat;
SYD - calculeaz amortismentul unui bun pentru o peri-oad dat pe baza metodei
americane Sum_of_Yar Digits.
Funcii definite de utilizator
Definirea unei funcii se realizeaz conform sintaxei:
[Static][Private]FUNCTION nume_funcie
([list_argumente])
secven_instruciuni_1
[EXIT funcie]
[secven_instruciuni_2]
END FUNCTION



7.8 Proceduri

Mediul VBA conine o serie de proceduri care sunt folosite pentru efectuarea unor
operaii frecvent ntlnite n aplicaii.
Procedurile se mpart n :
proceduri predefinite (ncorporate);
proceduri definite de utilizator.
Procedurile predefinite (ncorporate)
Aceste proceduri se pot folosi de sine stttor (sau pot fi preluate n structura
unor proceduri definite de utilizator). Astfel de proceduri se apeleaz prin numele lor
propriu.
Exemple de proceduri predefinite:
Procedura Descriere Exemplu de utilizare
FileCopy Copiaz un fiier FileCopy F1.dat, F2.dat
Name Redenumete un fiier Name F1.dat As F2.dat
01:50
62

Kill terge un fiier Kill F1.dat
Date Stabilete data sistemului Date # Dec 10.1999#
MsgBox Afieaz o informaie MsgBox Media& media
Print Afieaz pe fundal Print Media =& media
Procedura MsgBox. Afieaz un mesaj ntr-o caset de dialog fr a returna o
valoare.
Forma general (sintaxa):
MsgBox(prompt,[type],[title],[helpfile],[context])
unde:
elementele de sintax (opiunile) au aceeai semnificaie ca la funcia MsgBox, cu
deosebirea c opiunea type descrie numrul i tipul butoanelor din caseta de dialog,
tipul pictogramei, butoanele prestabilite i modalitatea casetei.
Procedurile definite de utilizator
Sunt proceduri care conin instruciuni introduse de utilizator pentru efectuarea
operaiilor specifice aplicaiilor acestora n scopul de a optimiza activitatea de
programare.
Forma general (sintaxa) este:
[Static][Private] Sub nume_procedur
([list-parametri])
secven_instruciuni_1
[Exit Sub]
[secven_instruciuni_2]
End sub

unde:
Static - precizeaz domeniul de vizibilitate al procedurii, atunci cnd se dorete
pstrarea valorilor tuturor variabilelor locale ntre dou apeluri ale procedurii;
Private - precizeaz c procedura este accesibil numai celorlalte proceduri din
modulul n care a fost definit;
nume_procedur este numele atribuit de utilizator procedurii definite;
list_parametri este lista parametrilor formali, care reprezint variabilele
crora li se vor atribui datele de intrare (argumentele), la apelul procedurii.
Procedurile definite de utilizator sunt:
proceduri pentru tratarea evenimentelor;
proceduri generale.
Procedura pentru tratarea unui eveniment este ataat unui obiect (ca de
exemplu: form, buton de comand, caset de validare etc). Astfel, cnd se execut un
click pe obiectul form se declaneaz evenimentul click, urmat de lansarea automat
n execuie a procedurii eveniment care-i corespunde.
O procedur eveniment poate fi lansat n execuie i n mod explicit (apelat
de ctre utilizator), caz n care evenimentul asociat nu are loc. Pentru fiecare tip de
obiect exist un numr prestabilit de evenimente ce pot s apar.
63

Deoarece la apariia evenimentului procedura asociat este apelat automat,
acest tip de programare se numete event_driven (condus sau bazat pe
evenimente).
Exemplu:
Crearea unei proceduri de tratare a unui eveniment pentru un obiect (buton de
comand):
Subprogram Nume obiect Eveniment

Sub cmdCalcul_Click( )
...
End Sub
Un program mai complex poate fi alctuit din mai multe proceduri de tratare a
evenimentelor coninute. Pentru a crete calitatea programului se recomand
mprirea acestor proceduri n alte proceduri mai mici, pentru ca aplicaia s fie mai
uor de elaborat i, dup caz, de modificat.
Procedurile generale sunt rutine create de programator pentru a evita repetrile
n procedurile de tratare a eveni-mentelor. Dac mai multe astfel de proceduri conin
aceleai instruciuni, atunci se recomand folosirea procedurilor generale care s
conin instruciunile comune.
Procedurile generale sunt lansate n execuie explicit prin apelul lansat dintr-o
anumit parte a codului aplicaiilor. Deci, aceste proceduri sunt invocate de
evenimentele asociate obiectelor, astfel c o procedur eveniment devine o proce-dur
apelant a procedurii generale apelate.
Procedurile generale se pot apela (dintr-o alt procedur) n dou moduri:
prin specificarea numelei procedurii generale;
Exemplu:
Sub CmdStocuri_Click( )
Calcul_stocfinal procedur apelat
End Sub
prin folosirea instruciunii CALL;
Exemplu:
Sub CmdStocuri_Click( )
CALL Calcul_strocfinal procedur apelat
End Sub
In unele cazuri, procedura apelat poate transmite anumite date, care se numesc
parametri reali, procedurii apelate, care le trateaz ca parametri formali. Aceste date
pot fi constante numerice, constante ir de caractere, variabile numerice, variabile ir
de caractere.
Exemplu:
a) Procedura apelat:
Sub Calcul (zile As Integer, salarzi As Integer)
Calcul = zile * salarzi
End Sub
b) Procedura apelant:
64

Sub cmdSalariu_Click( )
Dim zile As Intiger, salarzi As Integer
Zile = 22
salarzi = 100000
Calcul zile, Salarzi
End Sub


Procedurile se mpart n:
...
...
...


7.9. Controale Visual Basic (VBA)

Visual Basic (VBA) permite crearea unor ferestre care vor alctui interfaa unei
aplicaii, ntr-un numr limitat numai la capacitatea i cerinele aplicaiei.
n aceste ferestre, denumite forme (forms) se pot introduce diferite elemente
vizibile de acionare, denumite controale (controls).
Aceste controale se pot poziiona, dimensiona i aranja n fereastr (n pagin)
potrivit cerinelor aplicaiei i opiunii programatorului.
n mediul de programare Visual Basic (VBA) se pot folosi toate tipurile de
controale Windows standard:
Etichete (Labels);
Casete text (Text boxes);
Chenare (Frames);
Butoane (Command buttons);
Casete de control (check boxes);
Butoane de opiune (Radio buttons);
Casete list (List boxes);
Casete liste combinate (Combo boxes);
Bare de defilare orizontale i verticale (Horizontal vertical scrool bars);
Casete imagine (Picture boxes);
Generatoare de semnale de timp (Timers);
Liste de uniti de disc (Drive list boxes);
Liste de directori (Directory list boxes);
Liste de fiiere (File list boxes);
Figuri geometrice (Shapes);
Linii (Lines);
Imagini (Images);
Data (Date).
n afar de aceste controale se mai pot crea alte feluri de controale, folosind
fiierele cu extensia .VBX.
Etichete (Labels). Eticheta este un obiect VBA folosit pentru:
afiarea unui text ntr-o fereastr (form);
identificarea altor obiecte.
Etichetele au diferite proprieti:
Name - identific obiectul ntr-o procedur (exemplu: lblEtichete);
Caption - ir de caractere care se afieaz pe obiect (exemplu: Tastarea textului);
02:10
65

Alignment - aliniaz textul n cadrul unui context dat;
BorderStyle - stabilete tipul de chenar;
Font - stabilete corpul, stilul i dimensiunea caracterelor;
AutoSize i WordWrap - stabilete afiarea pe mai multe linii i lungimi.
Casetele de text (Text boxes), denumite i casete de editare, se folosesc pentru
afiarea informaiilor furnizate n faza de editare sau introduse n timpul executrii
procedurii.
Casetele de text au diferite proprieti:
Name - identific obiectul n procedur (exemplu: txtExamen);
Border Style - stabilete tipul de chenar;
Font - stabilete corpul, stilul i dimensiunea caracterelor;
Passwordchar - ascunde textul (exemplu: *);
Tag - stocheaz informaiile;
MultiLine - afieaz mai multe linii de text;
Alignment - aliniaz textul la: stnga, dreapta, centru;
SelStart - stabilete poziia iniial pentru selectarea textului;
SelLenglh - stabilete lungimea textului selectat.
Butoanele de opiune (Option buttons). Butoanele de opiune se folosesc
pentru a afia opiuni, care pot fi activate sau dezactivate prin stabilirea proprietii
Value la valoarea True sau False.
Aceste butoane se deseneaz direct pe form, ntr-un cadru sau ntr-o caset
de imagine de pe form. Un astfel de cadru grupeaz controale nrudite (de regul
butoane de opiune, casete de validare).
Casetele de list (List boxes). Casetele de list se folosesc pentru a afia liste
de articole din care utilizatorul poate selecta un articol sau mai multe articole.
Casetele combinate (ComboBox). Aceste casete sunt o combinaie ntre
casetele de text (Text boxes) i casetele cu list, existnd trei stiluri de casete
combinate, n funcie de valoarea proprietii Style i anume:
0 - caset combinat derulant care conine o caset cu list derulant i o caset
de text;
1 - caset combinat simpl, care conine o caset de text i o list nederulant;
2 - caset cu list derulant, care permite doar selectarea din lista derulant.


7.10 Lucrul cu fiiere de date n mediul VBA

Fiiere de date
Definiia unui fiier de date. Fiierul de date este o colecie (mulime) de date
omogene ca natur i cerine de prelucrare, nregistrate pe un suport tehnic de date, de
pe care calculatorul le poate citi (percepe) automat n procesul de prelucrare.
Pentru fiierele de date create n scopul prelucrrii ulterioare, suportul tehnic de
date este un suport refolosibil (de regul discul magnetic). n astfel de fiiere se pot
memora date numerice, texte i informaii diverse (imagini, sunete).
Operaii de lucru cu fiiere de date
Deschiderea fiierelor. Lucrul cu un fiier de date implic, n primul rnd,
validarea accesului la fiier, operaie denumit deschiderea fiierului, care se
efectueaz folosind comanda OPEN. Aceast comand permite alocarea unei zone de
memorie tampon pentru operaiile de intrare i ieire i specific modul de acces
02:30
66

asociat acestei zone.
Comanda OPEN are forma general (sintaxa):
OPEN nume_fiier FOR mod_deschidere
AS # numr_fiier LEN = expresie
unde:
nume_fiier este un ir de caractere care, pe lng numele fiierului, poate s
conin numele unui folder i al unui disc; dac fiierul nu exist n momentul
deschiderii, acesta este creat implicit la execuia comenzii OPEN;
mod_deschidere specific modul n care va fi deschis fiierul;
# numr_fiier specific numrul prin care fiierul poate fi identificat n
diferite situaii de lucru, avnd mrimea cuprins ntre 1 i 511;
expresie este un numr mai mic sau egal cu 32767.
Exemplu:
OPEN fisdat FOR APPEND AS #1
nchiderea fiierelor. Dup terminarea lucrului cu un fiier de date, acest fiier
trebuie nchis, adic s se interzic accesul ulterior la fiier. Operaia se efectueaz cu
comanda CLOSE, care are forma general (sintaxa):
CLOSE list_numere_fiiere
unde:
list_numere_fiiere specific unul sau mai multe numere separate prin
virgul; dac nu se specific aceast list (opiune), atunci se nchid toate fiierele, iar
dup execuia instruciunii CLOSE asocierea dintre fiier i numele acestuia se
ncheie.
Exemple:
CLOSE
CLOSE #1
Exploatarea fiierelor n acces secvenial. Aceast operaie se execut att la
crearea fiierului, ct i la prelu-crarea ulterioar a acestuia i const n scrierea,
respectiv citirea a cte o nregistrare n/din fiier.
Scrierea unei nregistrri (articol) n fiier n acces secvenial se efectueaz cu
comanda PRINT #, care are forma general (sintaxa) urmtoare:
PRINT #numr_fiier,list_expresii
unde:
numr_fiier este numrul atribuit fiierului, care urmeaz s fie creat;
list_expresii specific expresia ir sau numeric, respectiv expresiile care se
scriu n fiier; pentru a scrie un articol vid dup numr_fiier se specific numai
virgul.
Expresia poate fi, dup caz, un titlu de tabel, un chenar sau un cmp de date.
Exemple:
PRINT # 2, Tab(15); LISTA DE INVENTAR
PRINT # 2, String(6),=)
PRINT # 2, Cod_mat; Tab(10); Den_mat; Tab(20)
Citirea unei nregistrri (articol) din fiier n acces secvenial se efectueaz cu
comanda LINE INPUT #, care are forma general (sintaxa) urmtoare:
67

LINE INPUT #numr_fiier, nume_variabil
unde:
numr_fiier este numrul atribuit fiierului;
nume_variabil este o variabil de tip ir.
Exemplu:
LINE INPUT #1,1
Execuia comenzii LINE INPUT # are ca efect citirea din fiier a nregistrrii
(articolului) caracter dup caracter pn la ntlnirea unui retur de car Chr(13) sau
secvenei retur de car_salt la linie nou Chr(13) + Chr(10).
Pentru exploatarea unui fiier n acces secvenial este necesar ca n comanda
OPEN:
la opiunea mod_deschidere se poate specifica:
APPEND pentru a aduga articole (linii de caractere) la sfritul fiierului
existent;
INPUT pentru citirea de articole (linii de caractere) din fiier;
OUTPUT pentru crearea unui nou fiier.
Pentru exploatarea unui fiier n acces aleator (direct), la opiunea
mod_deschidere se poate specifica:
BINARY pentru accesul binar;
RANDOM pentru accesul aleator.
n modul de deschiderre cu clauzele:
BINARY, INPUT sau RANDOM se poate deschide un fiier folosind un numr
nou, fr a nchide n prealabil copia deschis anterior;
APPEND sau OUTPUT trebuie mai nti s se nchid fiierul pentru a fi ulterior
redeschis cu un alt numr.
Cnd se lucreaz cu mai multe fiiere simultan, n opiunea #numr_fiier din
comanda OPEN trebuie s se foloseasc funcia FREEFILE care returneaz urmtorul
numr de fiier, pentru a evita folosirea aceluiai numr.
Exploatarea fiierelor n acces aleator (direct). Aceast operaie se execut,
att la crearea fiierelor, ct i la prelucrarea ulterioar a acestora i const n scrierea
n fiier sub form de articole de lungime fix, respectiv citirea unui articol fr a
parcurge articolele precedente din fiier.
La deschiderea unui fiier n acces aleator (direct), n comanda OPEN trebuie
s se precizeze lungimea articolului.
Scrierea unui articol n fiier n acces aleator se efectueaz cu comanda PUT #
care are forma general (sintaxa) urmtoare:
PUT [#]numr_fiier,numr_articol,nume_variabil
unde
numr_fiier este numrul fiierului care se creaz;
numr_articol este numrul articolului care nmulit cu lungimea articolului
determin poziia scrierii;
nume_variabil este numele variabilei care conine datele ce urmeaz s fie
scrise.
Exemplu:
68

PUT # 2, nr, mat
Citirea unui articol din fiier n acces aleator se efec-tueaz cu comanda GET
#, care are forma general (sintaxa) urmtoare:
GET[#]numr_fiier,numr_articol,nume_variabil
unde:
numr_fiier este numrul fiierului care se citete;
numr_articol este numrul articolului care nmulit cu lungimea articolului
determin poziia citirii;
nume_variabil este numele variabilei care conine datele ce urmeaz s fie
citite.
Exemplu:
GET # 2, nr, mat


S ne reamintim...
Fiierul de date este o colecie (mulime) de date omogene ca natur i cerine de
prelucrare, nregistrate pe un suport tehnic de date, de pe care calculatorul le poate
citi (percepe) automat n procesul de prelucrare.





7.11. Rezumat

Datele constituie suportul formal al informaiilor, un model de reprezentare a
informaiilor la nivel fizic i logic.
La nivel fizic unei date i corespunde o zon de memorie de o anumit mrime,
situat la o anumit adres, n care sunt nregistrate pe o anumit perioad de
timp i ntr-o form specific valorile acestora.
La nivel logic unei date i se pot asocia:
un identificator, care reprezint numele ce se asociaz datei pentru a se
distinge de alte date i pentru a fi referit n procesul de prelucrare cu
calcu-latorul electronic;
valori, care pot fi de diferite tipuri (ntregi, reale, complexe, logice,
iruri de caractere);
atribute, care precizeaz proprietile informaionale ale datei i anume:
tipul, precizia de reprezentare intern, modul de alocare a memoriei
(static, dinamic), valoarea iniial.
n mediul de programare VBA, variabila este o zon de memorie care i
modific coninutul n timpul executrii programului.
Semnele (caracterele prelucrabile speciale) folosite pentru marcarea operaiilor
care se efectueaz asupra datelor n programele VBA se numesc operatori.
O funcie este o prelucrare predefinit destinat pentru efectuarea unei operaii
sau unor operaii care returneaz o valoare.
Procedurile in VBA se mpart n :
proceduri predefinite (ncorporate);
proceduri definite de utilizator.
Fiierul de date este o colecie (mulime) de date omogene ca natur i cerine
de prelucrare, nregistrate pe un suport tehnic de date, de pe care calculatorul
le poate citi (percepe) automat n procesul de prelucrare.
02:55
69






7.12. Test de autoevaluare a cunotinelor
(timp necesar : 20 minute)

1. O construcie tipic de limbaj VBA alctuit din operatori i operanzi se numete:
a. expresie b. funcie c. procedur d. parametru
2. n mediul VBA proprietile informaionale ale unei date sunt:
a. atribute b. valori c. structuri d. colecii
3. Prelucrarea predefinit destinat pentru efectuarea unei operaii (unor operaii)
care returneaz o valoare se numete:
a. expresie b. funcie c. procedur d. modul
4. Caracterele speciale folosite pentru marcarea operaiilor n programele elaborate
n mediul VBA se numesc:
a. argumente b. funcii c. operanzi d. operatori
5. Numele ce se asociaz unei date pentru a se distinge de alte date i pentru a se
referi n procesul de prelucrare se numete:
a. atribut b. constant c. variabil d. identificator
6. Dac la declararea unei variabile tipul de date nu este specificat, atunci se
consider implicit tipul:
a. Integer b. Single c. String d. Variant
7. Prin ataarea unui sufix (de exemplu %) la numele unei variabile se realizeaz:
a. declararea implicit b. declararea explicit
c. atribuirea unei valori d. precizarea domeniului
8. n mediul VBA clauzele THEN i ELSE se gsesc n instruciunea:
a. IFEND IF b. SELECT CASEEND SELECT
c. FORNEXT d. WHILEWEND
9. Locul unde se declar o variabil, adic zona de program unde variabila este
vizibil se numete:
a. ir b. modul c. masiv d. domeniu
10. n VBA variabilele multidimensionale sunt denumite:
a. masive (tablouri) b. structuri de date
c. colecii de date d. date omogene
Rspunsurile corecte la ntrebrile din testul de tip gril:
1 a 2 a 3 b 4 d 5 d 6 d 7 a 8 a 9 d 10 a


7.13. Test de evaluare a cunotinelor

Ce se nelege prin date n mediul de programare VBA ?
Care sunt criteriile de clasificare a datelor folosite n programele VBA ?
Cum se comport constantele i variabilele n timpul execuiei programelor VBA ?
70

Care sunt tipurile de operatori care se folosesc n cadrul programelor VBA ?
Care sunt tipurile de expresii care se folosesc n cadrul programelor VBA ?
Care sunt principalele funcii i cum se folosesc n cadrul progrmelor VBA ?
Care sunt procedurile n mediul VBA i cum se apeleaz aceste proceduri n
programele VBA ?
Ce se nelege prin controale i cum se folosesc n cadrul programelor VBA ?
Ce fel de fiiere de date cunoasteti i cum se folosesc n programele elaborate n
mediul VBA?


7.14. Teme de control
Se consider dou iruri de numere reprezentnd preul unitar, respectiv cantitatea
vndut pentru 12 mrfuri dintr-un magazin. Se cere s se elaboreze o procedur de tip
funcie n mediul de programare VBA pentru calcularea valorii totale a vnzrilor.
Se consider un ir de numere care reprezint valoarea stocurilor de mrfuri dintr-
un magazin pe o perioad de un an. Se cere s se elaboreze o procedur de tip
subrutin VBA pentru a determina pe ce lun (1,2,3,) valoarea stocurilor a fost cea
mai mic.
Se consider un ir de numere reprezentnd preul unitar al unor produse dintr-un
magazin. Se cere s se elaboreze o procedur VBA pentru calcularea preului mediu,
tiind c nu se cunoate cte numere sunt n ir.
Se consider un ir de numere reprezentnd preul unitar pentru N mrfuri dintr-un
magazin. Se cere s se elaboreze o procedur VBA pentru a determina care este preul
unitar cel mai mare, tiind c N este cunoscut.
Studiu comparativ privind posibilitile de exploatare ale fiierelor cu acces
secvenial i cu acces direct n mediul de programare VBA.


7.15. Bibliografie

I. Bibliografie obligatorie
1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro
Universitaria, Bucureti, 2012
2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureti, 2010
3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access,
Editura InfoMega, Bucureti, 2012
4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft
Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti,
2012

II. Bibliografie facultativ
1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureti, 2003
2. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura
CISON, Bucureti, 2002
71

UNITATEA DE NVARE 8. PROGRAME ELABORATE N MEDIUL DE
PROGRAMARE VBA

CUPRINS
8.1. Obiective
8.2. Competenele unitii de nvare
8.3. Programul 1
8.4. Programul 2
8.5. Programul 3
8.6. Programul 4
8.7. Programul 5
8.8. Programul 6
8.9. Programul 7
8.10 Programul 8


8.1. Obiective
n aceast unitate de nvare se vor prezenta programe elaborate pentru a rezolva
cteva probleme propuse pentru exemplificarea modului de lucru n mediul de
programare VBA Visual Basic Applications.


8.2. Competenele unitii de nvare
Dup parcurgerea unitii vei fi n msur s:
Elaborati programe pentru rezolvarea aplicatilor in mediul de programare
VBA;



Durata de parcurgere a acestei uniti de nvare este de 3 ore.

8.3. Programul 1

'Problema propusa spre rezolvare
'Sa se realizeze un program care calculeaza Salariul net al unei persoane
'lund n considerare salariul brut, retinerile (se includ aici si impozitele)
'si premierile (se considera ca s-au platit impozitele aferente acestor premieri)
Sub Exercitiul1()
'Se declara cele variabilele necesare
Dim SalariulNet, Retineri, Premieri, SalariulBrut As Double
'Sectiunea de preluare a datelor de la tastatura
SalariulBrut = InputBox("Introduceti salariul brut:", "Introducere Date")
Retineri = InputBox("Introduceti retinerile:", "Introducere Date")
Premieri = InputBox("Introduceti premierile:", "Introducere Date")
'Sectiunea de prelucrare a datelor
SalariulNet = Val(SalariulBrut) - Val(Retineri) + Val(Premieri)
'Sectiune de afisare a rezultatului
MsgBox "Salariul net este " & SalariulNet, vbOKOnly, "Rezultat prelucrare date"
End Sub
00:05
72




8.4 Programul 2


'Problema propusa spre rezolvare:
'Se dau 4 variabile reprezentand:
' Q1: Cererea la produsul X la momentul T1 respectiv
' Q2: Cererea la produsul X la momentul T2 respectiv
' P1: Pretul la produsul X la momentul T1
' P2: Pretul la produsul X la momentul T2
'Sa se realizeze un program care sa realizeze preluarea valorilor
'celor 4 variabile de la tastatura. Sa se calculeze expresia
'E = (Q2-Q1)/(P2-P1) si sa se afiseze rezultatul obtinut.
Sub Exercitiul2()
'Se declara cele 5 variabile care vor stoca datele (A,B,C,D) respectiv rezultatul (E)
Dim Q1, Q2, P1, P2, E As Double
'Sectiunea de preluare a datelor de la tastatura
Q1 = InputBox("Introduceti cererea la momentul T1:", "Introducere Date")
Q2 = InputBox("Introduceti cererea la momentul T2:", "Introducere Date")
P1 = InputBox("Introduceti pretul la momentul T1:", "Introducere Date")
P2 = InputBox("Introduceti pretul la momentul T2:", "Introducere Date")
'Sectiunea de prelucrare a datelor
'Se testeaza daca P2-P1 este diferit egal cu 0 caz in care expresia E = (Q2-Q1)/(P2-P1)
nu are sens.
'aceasta se implementeaza cu o conditie de tipul
If Val(P2) - Val(P1) = 0 Then
MsgBox "Expresia nu poate fi calculata.Impartire la 0!", vbOKOnly, "Eroare"
End
End If
E = (Val(Q2) - Val(Q1)) / (Val(P2) - Val(P1))
'Sectiune de afisare a rezultatului
MsgBox "Rezultatul expresiei este E = " & E, vbOKOnly, "Rezultat prelucrare
date"
End Sub


8.5 Programul 3


'Sa se calculeze salariul net al unei persoane daca se cunosc salariul tarifar,
'retinerile si sporul de vechime care se acorda conform graficului:
' Vechimea in munca mai mica de 3 ani, 0% din salariul tarifar
' Vechimea in munca intre 3 ani si 10 ani, 10% din salariul tarifar
' Vechimea in munca intre 10 ani si 20 ani, 20% din salariul tarifar
' Vechimea in munca peste 20 ani, 30%
Sub Exercitiul3()
'Se declara cele variabilele care vor stoca datele si respectiv cele care vor stoca
rezultatele
Dim SalariulTarifar As Currency
Dim VechimeaInMunca As Integer
01:00
00:20
73

Dim Retineri As Currency
Dim ProcentSporDeVechime
Dim SporulDeVechime As Currency
Dim SalariulNet As Currency
'Sectiunea de preluare a datelor de la tastatura
SalariulTarifar = Val(InputBox("Introduceti Salariul Tarifar:", "Introducere Date"))
VechimeaInMunca = Int(Val(InputBox("Introduceti Vechimea in Munca:",
"Introducere Date")))
Retineri = Val(InputBox("Introduceti Retineri:", "Introducere Date"))
'Sectiunea de prelucrare a datelor
'Determinarea procentului sporului de vechime
If VechimeaInMunca < 3 Then
ProcentSporDeVechime = 0
Else
If VechimeaInMunca >= 3 And VechimeaInMunca < 10 Then
ProcentSporDeVechime = 0.1 'adica 10%
Else
If VechimeaInMunca >= 10 And VechimeaInMunca < 20 Then
ProcentSporDeVechime = 0.2 'adica 20%
Else
ProcentSporDeVechime = 0.3 'adica 30%
End If
End If
End If
'Calcularea efectiva a sporului de vechime si a salariului net
SporulDeVechime = SalariulTarifar * ProcentSporDeVechime
SalariulNet = SalariulTarifar + SporulDeVechime - Retineri
'Sectiune de afisare a rezultatului
MsgBox "Sporul de Vechime = " & SporulDeVechime & " Salariul Net = " &
SalariulNet, vbOKOnly, "Rezultat prelucrare date"
End Sub


8.6 Programul 4

'Sa se calculeze dobanda i suma de ridicat pe care un client al unei banci
'O va ridica la sfarsitul perioadei de depozit cunoscut fiind faptul ca,
'variantele de depozit disponibile si dobanzile aferente sunt redate in
'graficul de mai jos:
' Durata exprimata in luni Rata Dobanzii
' 1 40% pe an
' 3 45% pe an
' 6 47% pe an
' 12 50% pe an
Sub Exercitiul4()
'Se declara variabilele care vor stoca datele si respectiv rezultatele
Dim SumaDepusa As Currency
Dim VariantaDeDepozit As Integer
Dim RataDobanzii As Currency
01:30
74

Dim Dobanda As Currency
Dim SumaDeRidicat As Currency
'Sectiunea de preluare a datelor de la tastatura
SumaDepusa = Val(InputBox("Introduceti Suma Depusa:", "Introducere Date"))
VariantaDeDepozit = InputBox("Introduceti Varianta de Depozit (1 - 1 luna,2 - 3
luni, 3 - 6 luni, 4 - 1 an):", "Introducere Date")
'Sectiunea de prelucrare a datelor
'Determinarea procentului sporului de vechime
Select Case VariantaDeDepozit
Case "1":
RataDobanzii = 0.4 / 12 '40% pe AN calculat pe 1 luna
Case "2":
RataDobanzii = (0.45 / 12) * 3 '45% pe AN calculat pe 3 luni
Case "3":
RataDobanzii = (0.47 / 12) * 6 '47% pe AN calculat pe 6 luni
Case "4":
RataDobanzii = (0.5 / 12) * 12 '50% pe AN calculat pe 12 luni
Case Else:
MsgBox "Optiune gresita!", vbOKOnly, "Eroare"
End
End Select
'Calcularea efectiva a sporului de vechime si a salariului net
Dobanda = SumaDepusa * RataDobanzii
SumaDeRidicat = SumaDepusa * (1 + RataDobanzii)
'Sectiune de afisare a rezultatului
MsgBox "Dobanda = " & Dobanda & " Suma de ridicat = " & SumaDeRidicat,
vbOKOnly, "Rezultat prelucrare date"
End Sub


8.7. Programul 5

'Unitatea economica x inregistreaza pe cele 12 luni ale unui an profit.
'Sa se realizeze o aplicatie care sa calculeze profitul total, mediu,
'minim si maxim pe cele 12 luni.
Sub Exercitiul5()
'Se declara variabilele care vor stoca datele si cele care vor stoca rezultatele
Dim Profit As Currency 'declararea unui masiv unidimensional care sa stocheze
pretul produselor
Dim Luna As Integer
Dim ProfitTotal As Currency
Dim ProfitMinim As Currency
Dim ProfitMaxim As Currency
Dim ProfitMediu As Currency

'Sectiunea de prelucrare a datelor

ProfitTotal = 0
01:45
75

TotalProduse = 0

For Luna = 1 To 12
'sectiune de introducere date
Profit = Val(InputBox("Introduceti profitul pe luna nr. " & Luna & " :",
"Introducere denumire produs"))

If Luna = 1 Then
ProfitMinim = Profit
ProfitMaxim = Profit
Else
If Profit > ProfitMaxim Then
ProfitMaxim = Profit
End If

If Profit < ProfitMinim Then
ProfitMinim = Profit
End If
End If

ProfitTotal = ProfitTotal + Profit
Next Luna

'Sectiune de afisare a rezultatului

MsgBox "Profit Total: " & ProfitTotal & "; Profit minim: " & ProfitMinim & ";
Profit maxim: " & ProfitMaxim & "; Profit mediu: " & ProfitTotal / 12, vbOKOnly,
"Rezultat final"

End Sub



8.8. Programul 6

'Sa se realizeze o aplicatie preia de la tastatura numele unui produs
'si efectueaza asupra lui urmatoarele operatii:
'il afiseaza cu litere mici
'il afiseaza cu majuscule
'converteste literele mici in litere mari si invers
Sub Exercitiul6()
Dim DenumireDePrelucrat As String
Dim Index As Byte
Dim LungimeDenumire As Byte
Dim DenumirePrelucrata As String

DenumireDePrelucrat = InputBox("Introduceti denumirea produsului :", "Introducere
denumire produs")

Debug.Print "Denumire introdusa: " & DenumireDePrelucrat
Debug.Print "Denumire cu litere mici: " & LCase(DenumireDePrelucrat)
02:00
76

Debug.Print "Denumire cu litere mari: " & UCase(DenumireDePrelucrat)
Index = 1
DenumirePrelucrata = ""
LungimeDenumire = Len(DenumireDePrelucrat)
Do
DenumirePrelucrata = DenumirePrelucrata & Chr(Asc(Mid(DenumireDePrelucrat,
Index, 1)) Xor 32)
Index = Index + 1
Loop Until (Index > LungimeDenumire)

Debug.Print "Denumire prelucrata :" & DenumirePrelucrata
End Sub



































8.9. Programul 7

'Se considera 3 masive unidimensionale care stocheaza DenumireProdus, PretProdus si
'CantitateProdus. Introducandu-se de la tastatura numarul de produse care se gasesc
intr-o gestiune x,
'sa se construiasca un program care sa preia denumirea acestor produse,cantitatea si
pretul lor,
'in cele trei masive. Se cere sa se afiseze valoarea stocului pentru fiecare produs,
valoarea minma
'valoarea maxima, valoarea medie si valoarea totala pe gestiunea x.
Sub Exercitiul8()
'Se declara cele variabilele care vor stoca datele si respectiv cele care vor stoca
rezultatele
Dim NumarDeProduse As Integer
Dim PretProdus() As Currency 'declararea unui masiv unidimensional care sa
stocheze pretul produselor
Dim DenumireProdus() As String 'declararea unui masiv unidimensional care sa
stocheze denumirea produselor
Dim CantitateProdus() As Long 'declararea unui masiv unidimensional care sa
stocheze cantitatea dintr-un produs
Dim Contor As Integer

Dim ValoareStoc() As Currency 'declararea unui masiv unidimensional care sa
stocheze valoarea stocului pentru un anumit produs
Dim ValoareTotalaStoc As Currency
Dim ValoareMinima As Currency
Dim ValoareMaxima As Currency
Dim ValoareMedie As Currency
Dim TotalProduse As Currency

'Sectiunea de preluare a datelor de la tastatura
Do
NumarDeProduse = Int(Val(InputBox("Introduceti numarul de produse:(minim 2)",
"Introducere Date")))
Loop Until NumarDeProduse >= 2

02:15
0
77





































'Se aloca spatiul pentru stocarea informatiilor cu privire la produse
ReDim PretProdus(NumarDeProduse)
ReDim DenumireProdus(NumarDeProduse)
ReDim CantitateProdus(NumarDeProduse)
ReDim ValoareStoc(NumarDeProduse)

'Sectiunea de prelucrare a datelor
ValoareTotalaStoc = 0
TotalProduse = 0

For Contor = 1 To NumarDeProduse
'sectiune de introducere date
DenumireProdus(Contor) = InputBox("Introduceti denumirea produsului " &
Contor & " :", "Introducere denumire produs")
PretProdus(Contor) = Val(InputBox("Introduceti pretul pentru produsul " &
DenumireProdus(Contor) & " :", "Introducere pret produs"))
CantitateProdus(Contor) = Val(InputBox("Introduceti cantitatea existenta in stoc
pentru produsul " & DenumireProdus(Contor) & " :", "Introducere pret produs"))

'sectiune de calcule date
ValoareStoc(Contor) = PretProdus(Contor) * CantitateProdus(Contor)

If Contor = 1 Then
ValoareMinima = ValoareStoc(Contor)
ValoareMaxima = ValoareStoc(Contor)
Else
If ValoareStoc(Contor) > ValoareMaxima Then
ValoareMaxima = ValoareStoc(Contor)
End If

If ValoareStoc(Contor) < ValoareMinima Then
ValoareMinima = ValoareStoc(Contor)
End If
End If

ValoareTotalaStoc = ValoareTotalaStoc + ValoareStoc(Contor)
TotalProduse = TotalProduse + CantitateProdus(Contor)
Next Contor

'Sectiune de afisare a rezultatului
For Contor = 1 To NumarDeProduse
MsgBox "Valoare Stoc: " & ValoareStoc(Contor) & " lei", vbOKOnly,
"Produsul: " & DenumireProdus(Contor)
Next Contor

MsgBox "Valoare Totala Stoc: " & ValoareTotalaStoc & "; Valoare minima: " &
ValoareMinima & "; Valoare maxima: " & ValoareMaxima & "; Valoare medie: " &
ValoareTotalaStoc / TotalProduse, vbOKOnly, "Rezultat final"

End Sub
02:45
78