352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

78
Programarea calculatoarelor Visual Basic for Applications (VBA) - suport de curs -

Transcript of 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

Page 1: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

Programarea calculatoarelor Visual Basic for Applications (VBA)

- suport de curs -

Page 2: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

2

Introducere

Suportul de curs reprezintă o sinteză a conţinutului disciplinei Programarea in Visual Basic

for Applications. El este destinat studenţilor de la forma de învăţământ la distanţă (ID) şi constituie

materialul bibliografic minim necesar pentru parcurgerea, însuşirea şi evaluarea disciplinei

respective.

Suportul de curs este structurat conform standardelor şi procedurilor de uz larg în

învăţământul universitar naţional şi internaţional, care se adresează învăţării individuale, pe baze

interactive. Parcurgerea suportului de curs, pe baza prezentelor instrucţiuni, asigură reţinerea

informaţiilor de bază, înţelegerea fenomenelor fundamentale şi aplicarea cunoştinţelor dobândite la

rezolvarea unor probleme specializate.

Suportul de curs este structurat pe trei module iar modulele sunt structurate, la rîndul lor, pe

unităţi de învăţare. Modulul reprezintă o categorie de probleme distincte din materia disciplinei, care

formează un tot unitar din punct de vedere al specificului cunoştinţelor, al însuşirii unui anumit

aspect al fenomenologiei disciplinei precum şi din perspectiva timpului necesar parcurgerii şi

însuşirii fondului informaţional respectiv. În acest sens, un modul conţine una sau mai multe unităţi

de învăţare. Unitatea de învăţare reprezintă o parte omogenă din componenţa modulului,

caracterizată de un volum strict limitat de cunoştinţe, care pot să fie parcurse şi însuşite printr-un

efort continuu de concentrare intelectuală, care se referă la conţinutul de idei al unităţii de învăţare.

Fiecare unitate de învăţare are o structură proiectată din perspectiva exigenţelor autoinstruirii, astfel

că folosirea suportului de curs se face pe baza unui program de autoinstruire.

Recomandăm astfel, câteva regului de bază în procedura de realizare a programului de

autoinstruire pe baza acestui suport de curs:

1. Unităţile de învăţare se parcurg în ordinea în care sunt prezentate, chiar în cazul în care

studentul apreciază că ar putea “sări” direct la o altă unitate de învăţare (de exemplu în cazul în care

studentul se află la a doua facultate sau în alte situaţii echivalente). Criteriile şi modalitatea de

“înlănţuire” a unităţilor de învăţare sunt prezentate la fiecare unitate de învăţare şi ele trebuie

respectate întocmai, sub sancţiunea nerealizării la parametri maximali a programului de autoinstruire;

2. Fiecare unitate de învăţare conţine teste destinate autoevaluării gradului şi corectitudinii

însuşirii cunoştinţelor specifice unităţii de învăţare, înţelegerii fenomenelor şi proceselor descrise sau

prezentate în unitatea de învăţare;

Fiecare test al unităţii de învăţare este prevăzut cu un sistem de notare (puncte) care însumează

un maximum de 100 puncte;

3. Ordinea logică a parcurgerii unităţii de învăţare este următoarea:

a) se citeşte scopul şi obiectivele unităţii de învăţare;

b) se citesc termenii de referinţă (cuvintele-cheie);

c) se parcurge conţinutul de idei al unităţii de învăţare;

d) se parcurge bibliografia recomandată;

e) se răspunde la întrebările de autocontrol, revăzând, dacă este necesar, conţinutul de idei al

unităţii de învăţare;

f) se elaborează, pe o pagină, câte un eseu pentru fiecare dintre temele de reflecţie propuse la

unitatea de învăţare;

g) se efectuează testele de autoevaluare după procedura descrisă;

h) se rezolvă exerciţiile, problemele sau studiile de caz propuse pentru laboratorul sau

lucrările practice propuse în unitatea de învăţare.

Pentru creşterea eficienţei utilizării suportului de curs şi fixarea temeinică a cunoştinţelor

dobândite, fiecare unitate de invatare se încheie cu: întrebări de autocontrol, teme de reflecţie, teme

pentru studii de caz şi teste de autoevaluare.

Page 3: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

3

Obiectivele cursului

Obiectul suportului de curs constă în însuşirea cunoştinţelor 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:

însuşirea temeinică a noţiunilor fundamentale privind programarea

calculatoarelor, în particular ale celor aparţinând ultimei generaţii de medii de

programare;

formarea deprinderilor practice necesare pentru elaborarea contextuală şi

generală a programelor pentru efectuarea de aplicaţii din domeniul economic;

cunoaşterea temeinică a logicii programării ca o condiţie necesară pentru

elaborarea corectă a programelor, conform regulilor de sintaxă şi de punctuaţie

ale mediilor de programare;

dobândirea unei viziuni de ansamblu asupra teoriei şi practicii in domeniul

programarii calculatoarelor.

Suportul de curs este structurat pe trei module, fiecare modul conţinând, în

funcţie de problematica abordată, unitati de invatare specifice.

Competenţe conferite

Capacitatea de alegere a facilităţilor mediului de programare VBA în funcţie

de domeniul de activitate din care provin aplicaţiile, de specificul acestora şi

de cerinţele şi exigenţele utilizatorilor.

Capacitatea de înţelegere a modului în care cunoaşterea conceptelor şi a

noţiunilor fundamentale privind prelucrarea datelor cu mediul de programare

VBA poate să contribuie la însuşirea corectă a altor concepte şi noţiuni 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, conţinând unitatile de invatare:

Unitatea 1. Noţiunile de instrucţiune, 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 programării calculatoarelor,

Page 4: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

4

conţinând unitatile de invatare:

Unitatea 3. Algoritmi şi algoritmizarea aplicaţiilor;

Unitatea 4. Reprezentarea (descrierea) algoritmilor şi forme de reprezentare;

Unitatea 5. Structuri fundamentale de prelucrare (control);

Unitatea 6. Etapele elaborării 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 elaborării programelor în acest mediu de

programare, conţinând capitolele:

Unitatea 7. Elemente de bază ale mediului de programare VBA;

Unitatea 8. Programe elaborate în mediul de programare VBA.

Cerinţe preliminare

Pentru înțelegerea conceptelor și noțiunilor prezentate în acest curs și pentru a le

aplica eficient în practică este necesară parcurgerea în prealabil a cursului de Bazele

Tehnologiei Informației din anul I de studiu.

Discipline deservite

Pe baza cunoştinţelor dobândite în cadrul disciplinei curente studenții 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 Unități de învățare este 2-3 ore.

Evaluarea studenților

Nota finala la disciplina Programarea calculatoarelor va fi stabilită prin :

- evaluarea finală (examen scris de tip grilă) – cu ponderea de 70%;

- evaluări pe parcurs (teme de control în cadrul activităților asistate) – cu

ponderea de 30%.

Page 5: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

5

Cuprins

INTRODUCERE ........................................................................................................................................................ 2 OBIECTIVELE CURSULUI ............................................................................................................................................ 3 COMPETENŢE CONFERITE .......................................................................................................................................... 3 RESURSE ŞI MIJLOACE DE LUCRU ................................................................................................................................. 3 STRUCTURA CURSULUI ............................................................................................................................................. 3 CERINŢE PRELIMINARE ............................................................................................................................................. 4 DISCIPLINE DESERVITE .............................................................................................................................................. 4 DURATA MEDIE DE STUDIU INDIVIDUAL ........................................................................................................................ 4 EVALUAREA STUDENŢILOR ........................................................................................................................................ 4

UNITATEA DE ÎNVĂŢARE 1. NOŢIUNILE DE INSTRUCŢIUNE, PROGRAM, LIMBAJ DE PROGRAMARE ŞI METALIMBAJ ................................................................................................................................................... 7

1.1. OBIECTIVE ...................................................................................................................................................... 7 1.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ................................................................................................................. 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 CUNOŞTINŢELOR......................................................................................................... 16 1.10. TEMĂ DE CONTROL ....................................................................................................................................... 16 1.11. BIBLIOGRAFIE .............................................................................................................................................. 17

UNITATEA DE ÎNVĂŢARE 2. TEHNICI DE PROGRAMARE SI EXPLOATARE A CALCULATOARELOR ELECTRONICE18

2.1. OBIECTIVE .................................................................................................................................................... 18 2.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 18 2.3. TEHNICI DE EXPLOATARE A SISTEMELOR DE CALCUL ............................................................................................... 18 2.4. REZUMAT ..................................................................................................................................................... 20 2.5. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR......................................................................................................... 21 2.6. TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................ 22 2.7. TEME DE CONTROL ......................................................................................................................................... 22 2.8. BIBLIOGRAFIE ................................................................................................................................................ 22

UNITATEA DE ÎNVĂŢARE 3. ALGORITMI ŞI ALGORITMIZAREA APLICAŢIILOR .................................................. 24

3.1. OBIECTIVE .................................................................................................................................................... 24 3.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 24 3.3. ALGORITMI .................................................................................................................................................. 24 3.4. PROPRIETĂŢILE ALGORITMILOR ......................................................................................................................... 25 3.5. TIPURI DE ALGORITMI ...................................................................................................................................... 26 3.6. OPERAŢIILE REPREZENTATE ÎN ALGORITMI ........................................................................................................... 26 3.7. CLASIFICAREA ALGORITMILOR ........................................................................................................................... 29 3.8. REZUMAT ..................................................................................................................................................... 31 3.9. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR......................................................................................................... 31 3.10. TEST DE EVALUARE A CUNOȘTINŢELOR .............................................................................................................. 32 3.11. BIBLIOGRAFIE .............................................................................................................................................. 32

UNITATEA DE ÎNVĂŢARE 4. DESCRIEREA ALGORITMILOR ŞI FORME DE REPREZENTARE ................................ 34

4.1. OBIECTIVE .................................................................................................................................................... 34 4.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 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 CUNOȘTINŢELOR......................................................................................................... 37

Page 6: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

6

4.8. TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................ 38 4.9. BIBLIOGRAFIE ................................................................................................................................................ 38

UNITATEA DE ÎNVĂŢARE 5. STRUCTURI FUNDAMENTALE DE PRELUCRARE (CONTROL) ................................. 40

5.1. OBIECTIVE .................................................................................................................................................... 40 5.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 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 CUNOȘTINŢELOR......................................................................................................... 44 5.8. TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................ 45 5.9. BIBLIOGRAFIE ................................................................................................................................................ 45

UNITATEA DE ÎNVĂŢARE 6. ETAPELE ELABORĂRII UNUI PROGRAM ÎNTR-UN MEDIU DE PROGRAMARE ........ 46

6.1. OBIECTIVE .................................................................................................................................................... 46 6.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 46 6.3. PRINCIPALELE ETAPE ALE ELABORĂRII UNUI PROGRAM ÎNTR-UN MEDIU DE PROGRAMARE .............................................. 46 6.4. REZUMAT ..................................................................................................................................................... 49 6.5 TEST DE AUTOEVALUARE A CUNOȘTINŢELOR.......................................................................................................... 50 6.6 TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................. 50 6.7 BIBLIOGRAFIE ................................................................................................................................................. 51

UNITATEA DE ÎNVĂŢARE 7. ELEMENTE DE BAZĂ ALE MEDIULUI DE PROGRAMARE VBA ................................ 52

7.1. OBIECTIVE .................................................................................................................................................... 52 7.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 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 FUNCŢII ......................................................................................................................................................... 59 7.8 PROCEDURI .................................................................................................................................................... 61 7.9. CONTROALE VISUAL BASIC (VBA) ..................................................................................................................... 64 7.10 LUCRUL CU FIŞIERE DE DATE ÎN MEDIUL VBA....................................................................................................... 65 7.11. REZUMAT ................................................................................................................................................... 68 7.12. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR....................................................................................................... 69 7.13. TEST DE EVALUARE A CUNOȘTINŢELOR .............................................................................................................. 69 7.14. TEME DE CONTROL ....................................................................................................................................... 70 7.15. BIBLIOGRAFIE .............................................................................................................................................. 70

UNITATEA DE ÎNVĂŢARE 8. PROGRAME ELABORATE ÎN MEDIUL DE PROGRAMARE VBA ............................... 71

8.1. OBIECTIVE .................................................................................................................................................... 71 8.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 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

Page 7: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

7

UNITATEA DE ÎNVĂŢARE 1. NOŢIUNILE DE INSTRUCŢIUNE, PROGRAM, LIMBAJ DE PROGRAMARE ŞI METALIMBAJ

CUPRINS

1.1. Obiective

1.2. Competenţele unităţii de învăţare

1.3. Programarea calculatoarelor

1.4. Limbaj de programare şi metalimbaj

1.5. Limbaj şi sistem de programare

1.6. Evoluţia limbajelor de programare

1.7. Clasificarea limbajelor de programare

1.8. Rezumat

1.9. Test de autoevaluare a cunoştinţelor

1.10. Temă de control 1.11. Bibliografie

1.1. Obiective

În această primă unitate de învățare se vor prezenta noţiunile asociate logic:

instrucţiune-program-limbaj de programare în contextul desfăşurării activităţilor de

programare. Tot în cadrul acestei unităti de învățare vom prezenta elementele unui

sistem de programare şi interacţiunile dintre aceste elemente în procesul de elaborare a

programelor.

1.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

folositi structurile formalizate de metalimbaj pentru elaborarea de programe

într-un limbaj de programare;

explicaţi regulile sintactice şi de punctuaţie specifice unui limbaj de

programare în funcţie de natura aplicaţiilor informatice;

identificaţi corespunzător posibilităţile de exploatare ale limbajelor de

programare în activitatea de elaborare a programelor.

Durata de parcurgere a primei unităţi de învăţare este de 3 ore.

Page 8: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

8

1.3. Programarea calculatoarelor

Noţiuni generale

În prelucrarea automată a datelor (PAD) programarea calculatoarelor este o

noţiune fundamentală, fiind în strânsă corelaţie cu alte noţiuni de bază din acest

domeniu, cum sunt noţiunile de: algoritm, limbaj de programare, program.

Pentru prelucrarea datelor, fără intervenţia utilizatorului în desfăşurarea acestui

proces, calculatorul electronic necesită, pe lângă datele de prelucrat, un ansamblu de

comenzi, care să-i indice acestuia, ce operaţii trebuie să execute pentru a obţine

rezultatele aşteptate de utilizator.

Ansamblul acestor comenzi reprezintă o descriere a procesului de prelucrare a datelor

completă şi fără ambiguităţi, definind toate acţiunile calculatorului electronic în orice

caz particular al aplicaţiei de efectuat. O astfel de descriere este denumită descriere

algoritmică, deoarece fără alte informaţii suplimentare, calculatorul poate să efectueze

toate operaţiile de prelucrare, furnizând rezultatele aşteptate de utilizator.

Descrierea algoritmică a acestui proces de prelucrare, după care calculatorul se

conduce în efectuarea unei aplicaţii, este denumită program. Deci, programul este o

exprimare a procesului de prelucrare automată, care indică operaţiile pe care

calculatorul trebuie să le execute, astfel încât din datele de prelucrat (iniţiale) să obţină

rezultatele aşteptate (finale). În orice program, ordinul primit de calculator pentru a

efectua o acţiune determinată (ca de exemplu: o operaţie de calcul, o operaţie logică

etc) se numeşte instrucţiune (comandă).

Elaborarea unui astfel de program necesită folosirea unui mijloc de comunicare

între utilizator şi calculator, încât toate specificaţiile din program (instrucţiunile), să

poată fi înţelese de calculator. Acest mijloc de comunicare, dintre utilizator şi

calculator, este denumit limbaj de programare.

Stabilirea metodelor corespunzătoare pentru efectuarea aplicaţiilor de

prelucrare a datelor, analiza logică a procesului de prelucrare, planificarea efectuării

operaţiilor de prelucrare şi verificarea rezultatelor obţnute constituie, în general,

obiectul programării calculatoarelor electronice.

Definiţi noţiunile: algoritm, limbaj de programare, program.

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

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

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

1.4. Limbaj de programare şi metalimbaj

Limbaj de programare

În sens lingvistic, prin limbaj se înţelege un sistem de comunicare specific

oamenilor alcătuit din sunete articulate, prin care oamenii îşi pot exprima gândurile,

sentimentele şi dorinţele. Acest sens precizează caracterul natural al acestui sistem

folosit de oameni şi aflat într-o continuă dezvoltare.

Odată cu dezvoltarea limbajului natural a apărut şi limbajul artificial. Acesta a

fost creat în mod intenţionat de oameni, pentru realizarea comunicării într-unul sau

altul din domeniile de activitate umană.

Acest tip de limbaj este dotat cu posibilitatea emiterii şi recepţionării formelor de

00:05

00:20

Page 9: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

9

reprezentare ale comunicării, dar pe care le foloseşte un număr mult mai restrâns de

persoane, astfel că asocierea semnificaţiilor este mai explicit formulată, iar

comunicarea şi înţelegerea să fie cât mai simple.

Orice limbaj se caracterizează prin:

▪ forme corespunzătoare de reprezentare a comunicării;

▪ reguli de organizare a acestor forme de reprezentare;

▪ semnificaţii asociate formelor respective de reprezentare;

▪ reguli de constituire a semnificaţiilor acestor forme de reprezentare;

▪ reguli de utilizare a limbajului.

Necesitatea elaborării de programe pentru rezolvarea oricăror aplicaţii cu

calculatorul electronic a avut ca rezultat particularizarea formelor de reprezentare a

comunicării în cadrul limbajelor artificiale şi apariţia 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 instrucţiuni exprimate simbolic, a operaţiilor de prelucrare a datelor

efectuate cu calculatorul electronic.

Evoluţia foarte rapidă şi impresionantă a construcţiei calculatoarelor

electronice a avut drept consecinţă apariţia unei diversităţi de limbaje de programare.

Într-o astfel de diversitate, folosirea unui limbaj de programare necesită

studierea unor probleme specifice, cum sunt următoarele:

▪ definirea limbajelor de programare;

▪ relaţia dintre utilizarea calculatoarelor şi limbajele de programare;

▪ relaţia dintre limbajele de programare şi calculatoarele electronice.

Pentru utilizator, limbajul de programare este important prin operaţiile de

prelucrare automată a datelor pe care le poate efectua. Astfel, apare noţiunea de

specializare a limbajelor de programare pentru diferite domenii şi cerinţe de

prelucrare.

Pentru orice limbaj de programare există trei aspecte:

▪ tipurile de date care pot fi prelucrate;

▪ operaţiile de prelucrare şi modul de înlănţuire a lor;

▪ regulile prin care se formează structuri complexe de date şi se execută operaţii

complexe de prelucrare.

Orice limbaj de programare se poate caracteriza prin elementele specifice

limbajului natural: alfabet, vocabular, gramatică, punctuaţie, semantică, pragmatică.

Alfabetul este reprezentat prin mulţimea simbolurilor folosite în cadrul

limbajului de programare.

Vocabularul este reprezentat prin mulţimea cuvintelor folosite pentru

alcătuirea construcţiilor de limbaj.

Gramatica este un ansamblu de reguli prin care se formează construcţiile de

limbaj, având două componente: sintaxa şi morfologia.

Sintaxa studiază ansamblul regulilor de formare a instrucţiunilor, având un

rol important în orice limbaj de programare, deoarece calculatorul electronic nu

acceptă decât construcţiile de limbaj fără nici o eroare de sintaxă.

Morfologia conţine ansamblul regulilor de modificare a formei cuvintelor, în

contextul folosirii cuvintelor în cadrul construcţiilor de limbaj.

Punctuaţia este un sistem de semne grafice convenţionale, care au rolul de a

indica folosirea corectă a alfabetului, cuvintelor şi instrucţiunilor (propoziţii sau fraze).

Punctuaţia are rol de auxiliar grafic al sintaxei.

Semantica studiază toate semnificaţiile care se atribuie cuvintelor, permiţând

identificarea sensului construcţiilor de limbaj primite de calculator. Semantica

Page 10: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

10

specifică operaţiile de executat pe o structură de date.

Pragmatica reglementează modalităţile de folosire practică a vocabularului,

cuvintelor, instrucţiunilor, în general, construcţiilor limbajului de programare.

Având în vedere cele prezentate anterior, limbajul de programare se poate

defini ca fiind un ansamblu (o mulţime) de simboluri, reguli de formare a

instrucţiunilor, reguli de punctuaţie, semnificaţii atribuite instrucţiunilor şi modalităţi

de utilizare practică a acestora în activitatea de elaborare a programelor pentru

prelucrarea automată a datelor.

Metalimbaj

Pentru ca programele să nu conţină erori de sintaxă este necesar ca regulile

unui limbaj (sintactice şi de punctuaţie) să fie cunoscute şi folosite corect. În acest

context, au fost elaborate structuri formalizate care cuprind toate instrucţiunile unui

limbaj de programare, prezentate într-o formă care permite respectarea regulilor

sintactice şi a celor de punctuaţie. Astfel de structuri formalizate alcătuiesc

metalimbajul fiecărui limbaj de programare, un instrument sintetic, sistematizat şi

simplificat de folosire în mod practic a oricărui limbaj de programare în activitatea de

elaborare a programelor de prelucrare automată a datelor pentru efectuarea de aplicaţii.

În concluzie, metalimbajul este un limbaj folosit pentru descrierea altor

limbaje. Ca atare, această noţiune este generală deoarece poate desemna orice notaţie

formală, eventual chiar un limbaj natural. De asemenea, această noţiune este relativă

deoarece metalimbajul este el însuşi un limbaj care trebuie definit, ceea ce implică

existenţa unui metalimbaj.

Să ne reamintim...

Limbajul de programare se poate defini ca fiind un ansamblu (o mulţime) de

simboluri, reguli de formare a instrucţiunilor, reguli de punctuaţie, semnificaţii

atribuite instrucţiunilor şi modalităţi 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 înţelesul acestuia, adică

în limbajul său propriu, denumit limbaj cod-maşină. Acest limbaj este dificil de

învăţat şi utilizat deoarece:

limbajul cod-maşină foloseşte 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-maşină propriu, ceea ce

constituie un mare dezavantaj pentru programatori, deoarece programatorul

trebuie să cunoască, în acest caz, fiecare limbaj în parte;

folosirea limbajelor cod-maşină poate fi un obstacol în extinderea domeniilor

de folosire a calculatorului şi realizarea portabilităţii programelor pentru

diferite tipuri de aplicaţii.

Aceste motive au determinat, ca încă din perioada primei generaţii de

00:40

00:50

Page 11: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

11

calculatoare electronice, odată cu apariţia şi folosirea limbajelor de asamblare, să se

treacă la programarea simbolică. Chiar dacă aceste limbaje sunt considerate în cadrul

evoluţiei limbajelor de programare ca fiind limbaje de nivel inferior (datorită

dependenţei lor de particularităţile 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 programării

simbolice, prin utilizarea codurilor mnemonice (pentru instrucţiuni) şi a adresării

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 (instrucţiuni), 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-maşină

al calculatorului folosit pentru rularea programului respectiv.

Programul care rezultă în urma scrierii instrucţiunilor acestuia într-un limbaj de

programare, conform unui algoritm de prelucrare, se numeşte program sursă.

Programele sursă trebuie traduse în limbajul propriu calculatorului, operaţie care se

efectuează de un program specializat denumit translator.

Translatorul îşi efectuează funcţia înainte de execuţia programului, obţinându-

se în final un program executabil. Programul executabil ce se execută independent de

translator, se numeşte compilator. Programele rezultate ca urmare a acţiunii

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ă funcţia proprie simultan cu execuţia

programului, este denumit interpretor. Execuţia programului este mai lentă, dar oferă

posibilitatea modificării programului şi în timpul rulării 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 acelaşi limbaj pot exista mai multe versiuni de

translatoare diferenţiate prin: restricţii de limbaj cu scopul de scurtare a timpului

necesar translatării, simplificări pentru însuşirea mai rapidă a limbajului, proceduri

care folosesc mai eficient performanţele calculatorului.

Sistem de programare

Existenţa, pe de o parte, a limbajelor de programare independente de structura

internă a calculatorului şi, pe de altă parte, a translatorului propriu fiecărui limbaj, a

avut ca rezultat definirea în domeniul general al software-ului, a unei unităţi noi, aceea

de sistem de programare. Acest sistem reprezintă o combinaţie dintre:

• limbajele de programare de nivel înalt folosite la scrierea programelor pentru

efectuarea de aplicaţii;

• programele de translatare (compilatoare şi interpretoare).

Sistemele de programare oferă programatorilor diverse avantaje, printre care

01:10

Page 12: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

12

următoarele:

▪ creşterea operativităţii activităţii de programare, rezultată din conciziunea

limbajelor de nivel înalt faţă de cele de nivel scăzut, ceea ce conduce la scurtarea

programelor;

▪ uşurinţa depanării programelor care rezultă din evidenţierea greşelilor de sintaxă

şi din posibilitatea corectării facile a acestora;

▪ eficienţa programului obiect, care rezultată din abilitatea programatorului de a

folosi cât mai bine performanţele calculatorului electronic;

▪ eficienţa folosirii memoriei calculatorului electronic, care poate să determine

viteza de execuţie a programului, asigurată de translator (compilator sau interpretor),

eventual fără nici o intervenţie din partea programatorului;

▪ uşurinţa învăţării programării, 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 (instrucţiuni), 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 către

firma IBM în colaborare cu Universitatea Harvard şi până în prezent, limbajele de

programare au evoluat într-un ritm deosebit de spectaculos. Apariţia şi dezvoltarea

rapidă a limbajelor de programare s-a aflat în strânsă legătură cu evoluţia

caracteristicilor constructive ale calculatoarelor. În evoluţia 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 aplicaţii din câteva domenii de activitate.

Limbajele utilizate erau de tip cod-maşină, iar programarea reprezenta un efort mare

pentru un grup restrâns de specialişti.

A doua perioadă, cuprinsă între anii 1950–1959 se caracterizează prin apariţia

limbajelor de programare automată şi a sistemelor de programare. Apar limbajele de

asamblare şi spre sfârşitul perioadei limbajele de programare evoluate, denumite

limbaje de programare de nivel înalt (FORTRAN, ALGOL, COBOL şi LISP).

Limbajul FORTRAN (FORmula TRANslation), apărut în 1956, a fost

destinat rezolvării unor aplicaţii din domeniul tehnico-ştiinţific.

Limbajul ALGOL (ALGOrithmic Language), apărut î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), apărut în 1959, a

fost elaborat pentru efectuarea de aplicaţii economice, având facilităţi pentru

organizarea datelor în fişiere, cu un volum mare de date.

Limbajul LISP (LISt Processing), apărut în anul 1958, a fost elaborat ca un

limbaj conversaţional destinat pentru prelucrarea de liste, folosind modele logico-

matematice.

A treia perioadă, dintre anii 1960–1969, este marcată de preocuparea pentru

elaborarea şi dezvoltarea unui limbaj de programare universal care să întrunească

01:20

Page 13: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

învăţarea rapidă a programării.

A patra perioadă, cuprinsă între anii 1970–1979, se caracterizează prin

apariţia de noi limbaje de programare: PASCAL, PROLOG, ADA.

Limbajul PASCAL, apărut în 1971, a fost elaborat pentru efectuarea de

aplicaţii tehnico-ştiinţifice şi aplicaţii economice. Acest limbaj satisface cerinţele

programării 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 relaţii între acestea. Este un limbaj

conversaţional, asemănător cu LISP.

Limbajul ADA, apărut în anul 1979, este destinat satisfacerii cerinţelor de

programare în timp real.

A cincea perioadă, situată după anul 1980 şi până în prezent, este o perioadă

care se caracterizează prin proliferarea unui număr mare de limbaje de programare

care răspund unor necesităţi diverse de stocare şi prelucrare automată a datelor. De

asemenea, au apărut aşa-numitele dialecte, adică versiuni ale unor limbaje existente.

Numărul limbajelor de programare create a depăşit 1000, dintre care aproximativ 200

limbaje au o răspândire mai mare.

Prelucrarea unui volum tot mai mare de date şi necesitatea perfecţionării

tehnicilor de acces la un astfel de volum de date, a condus la perfecţionarea tehnicilor

de stocare, regăsire şi prelucrare a datelor, o deosebită răspândire având 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 funcţie 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 reţea;

sisteme de gestiune a bazelor de date relaţionale;

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 informaţii (sunet şi

imagine) presupune, de asemenea, tehnici speciale de stocare şi regăsire, precum şi

limbaje adecvate.

Cerinţele din ce în ce mai mari de prelucrare automată a datelor au condus la

necesitatea creşterii vitezei de realizare a programelor, precum şi a reducerii

posibilităţilor de eroare. Aceste două cerinţe au condus la apariţia unui nou concept de

programare, denumit programarea orientată obiect, care să ofere prototipuri mult

mai uşor de inserat în cadrul unor aplicaţii. Necesitatea folosirii calculatoarelor

electronice de către un număr tot mai mare de utilizatori a sporit preocupările în sensul

accesibilităţii totale, realizată prin limbaj natural, voce sau imagine.

Cum se clasifica SGBD-urile în funcţie de modul de organizare a datelor ?

…………………………………………………………………………...................

………………………………………………………………………………………

………………………………………………………………………………………

01:50

Page 14: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

14

1.7. Clasificarea limbajelor de programare

Evoluţia 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 clasificări, în funcţie de diferite criterii.

În funcţie de caracteristicile de bază, limbajele de programare se pot clasifica

astfel:

▪ limbaje de programare în cod-maşină;

▪ 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-maşină se caracterizează prin faptul că

programatorul trebuie să specifice în amănunţime modul de execuţie, alocarea

resurselor hardware (memorie, discuri, periferice). Adresarea memoriei se face cu

indicarea exactă a locaţiilor de memorie.

Limbajele de programare simbolică se caracterizează prin faptul că

programatorul foloseşte coduri mnemonice pentru operaţii şi adrese simbolice pentru

desemnarea locaţiilor de memorie. Datorită dependenţei de caracteristicile construc-

tive şi funcţionale 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 apărut limbajul de programare C, numit şi asamblor

independent de maşină. Acest limbaj este orientat pe calculator fără să fie dependent

de fiecare tip de calculator. Limbajul C oferă programatorilor accesul la calcu-lator şi

la facilităţile sistemului de operare într-o măsură mult mai mare dacât 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 decât de limbajul cod-maşină, astfel că se numesc, din

această cauză, limbaje de nivel înalt. Aceste limbaje sunt ca atare limbaje artificiale,

având o anumită structură, denumită gramatică şi care folosesc un vocabular pentru

exprimarea cerinţelor de programare. Folosirea acestor limbaje conduce la mărirea

productivităţii de elaborare a programelor. Translatarea dintr-un asemenea limbaj de

nivel înalt, în limbaj cod-maşină este asigurată de un program denumit translator.

Limbajele de programare neprocedurale (limbajele de nivel foarte înalt) se

caracterizează prin faptul că succesiunea comenzilor (instrucţiunilor) nu se mai

stabileşte conform unui algoritm de prelucrare şi nu mai influenţează decât într-o mică

măsură ordinea lor de execuţie. Aceste limbaje de programare fac saltul de la modul

cum se rezolvă o problemă la ceea ce se doreşte 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, fără a-l mai obliga să precizeze şi

modul de rezolvare.

După funcţiile îndeplinite de limbajele de programare, se disting:

limbaje de interogare simplă;

limbaje de interogare complexă;

generatoare de situaţii şi rapoarte;

Page 15: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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 fişierelor şi bazelor de date

pe un singur tip de înregistrare logică, folosind un criteriu de selecţie mai puţin

complex.

Limbajele de interogare complexă permit consultarea datelor din mai multe

tipuri de înregistrări logice, aparţinând uneia sau mai multor baze de date (SQL –

Structured Query Language, QBE – Query By Exemple etc).

Generatoarele de situaţii şi rapoarte se caracterizează prin folosirea a trei

funcţii de bază: selecţia datelor căutate, ordonarea după anumite criterii şi editarea

situaţiilor într-o structură formalizată (exemplu, Report Writer).

Limbajele grafice permit reprezentarea sub formă grafică a rezultatelor

prelucrării automate (ca de exemplu, ADRS/B6, SAS, FoxGraph etc).

Sistemele de fundamentare a deciziilor se adresează specialiştilor din diverse

domenii de activitate, pentru realizarea de aplicaţii complexe (de exemplu,

MULTIPLAN, LOTUS, EXCEL etc).

Generatoarele de aplicaţii se folosesc pentru obţinerea de programe

translatabile pe baza descrierii datelor de intrare şi de ieşire (exemplu, ARGUS,

LEDA, dBASE IV, FoxPro etc).

Limbajele de nivel înalt permit elaborarea de programe cu o mai mare uşurinţă,

lărgind astfel sfera utilizatorilor, precum şi creşterea 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 activităţilor de elaborare şi executare a

programelor pentru efectuarea completă a aplicaţiilor şi anume:

editarea programelor sursă, care constă în introducerea instrucţiunilor

(comenzilor) de la tastatură, folosind editorul de texte al mediului de

programare sau compatibil cu acesta;

verificarea corectitudinii instrucţiunilor (comenzilor) introduse şi sesizarea

erorilor de sintaxă;

asistarea utilizatorilor (programatorilor) la introducerea instrucţiunilor şi

eliminarea erorilor de sintaxă care apar la editarea programelor sursă;

translatarea (compilarea) programelor sursă şi obţi-nerea programelor obiect

executabile;

depanarea programelor şi eliminarea erorilor de sintaxă şi semantică care apar

după lansarea în execuţie a programelor sursă şi a celor obiect;

executarea programelor cu date de probă şi eliminarea unor eventuale erori

logice;

salvarea (memorarea) programelor şi pregătirea lor pentru exploatarea curentă

cu date complete.

Cum se clasifica limbajele de programare din punct de vedere al funcţiilor pe

care le îndeplinesc ?

…………………………………………………………………………...................

………………………………………………………………………………………

………………………………………………………………………………………

Page 16: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

16

1.8. Rezumat

Programul este o exprimare a procesului de prelucrare automată, care indică

operaţiile pe care calculatorul trebuie să le execute, astfel încât din datele de

prelucrat (iniţiale) să obţină rezultatele aşteptate (finale). În orice program, ordinul

primit de calculator pentru a efectua o acţiune determinată (ca de exemplu: o

operaţie de calcul, o operaţie logică etc.) se numeşte instrucţiune (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ă, punctuaţie, semantică,

pragmatică .

Metalimbajul este un limbaj folosit pentru descrierea altor limbaje.

Limbajul intern al unui calculator se numeşte limbaj maşină (cod maşină).

Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma

unei succesiuni de comenzi (instrucţiuni), executate într-o anumită ordine, stabilită

de programator.

1.9. Test de autoevaluare a cunoştinţelor

(timp necesar: 20 min.)

1) Cum se caracterizeaza un limbaj de programare?

2) Cum se numeşte limbajul intern al calculatorului?

3) Ce reprezinta un program sursă?

4) Ce rol are compilatorul?

5) Cum se clasifica SGBD-urile în funcţie de modul de organizare a datelor ?

6) Ce intelegeti prin medii de programare?

Răspunsuri:

1) Un limbaj de programare se poate caracteriza prin elementele specifice

limbajului natural: alfabet, vocabular, gramatică, punctuaţie, semantică,

pragmatică.

2) Limbajul intern al unui calculator se numeşte limbaj maşină (cod maşină).

3) Programul care rezultă în urma scrierii instrucţiunilor acestuia într-un limbaj de

programare, conform unui algoritm de prelucrare, se numeşte program sursă.

4) Compilatorul are rolul de a transforma programele sursă în programe obiect.

5) În funcţie 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 reţea;

sisteme de gestiune a bazelor de date relaţionale;

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 activităţilor de elaborare şi executare a programelor

pentru efectuarea completă a aplicaţiilor.

1.10. Temă de control

Alcătuiţi un scurt referat cu tema „Tipuri de limbaje de programare”.

02:40

Page 17: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

17

1.11. Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,

2012

5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,

Editura Tribuna Economică, Bucureşti, 2004

6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi

practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002

7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,

Bucureşti, 2003

8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA

VECHE, Bucureşti, 2004

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura

Economică, Bucureşti, 2000

3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 18: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

18

UNITATEA DE ÎNVĂŢARE 2. TEHNICI DE PROGRAMARE SI EXPLOATARE A CALCULATOARELOR ELECTRONICE

CUPRINS

2.1. Obiective

2.2. Competenţele unităţii de învăţare

2.3. Tehnici de exploatare a sistemelor de calcul

2.4. Rezumat

2.5. Test de autoevaluare a cunoştinţelor 2.6. Test de evaluare a cunoştinţelor

2.7. Bibliografie

2.1. Obiective

În această unitate de învățare se vor prezenta noţiunile de programare şi de

exploatare a calculatoarelor, precum şi modul de folosire a tehnicilor de programare

în activitatea de elaborare a programelor.

2.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

Utilizaţi tehnicile avansate în activitatea de elaborare a programelor;

Identificaţi metoda eficientă de lucru folosită în scopul elaborarii unui

program;

Utilizaţi corect regulile sintactice şi de punctuaţie specifice unui limbaj de

programare în funcţie de natura aplicaţiilor informatice.

Durata de parcurgere a acestei unităţi de învăţare 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 noţiuni legate de tehnicile de exploatare a sistemelor de calcul.

Odată cu dezvoltarea tehnologiilor de fabricaţie a componentelor fizice ale

calculatoarelor electronice s-au creat premizele perfecţionării tehnicilor de

exploatare ale acestora, prin intermediul unor noi componente software, capabile să

folosească eficient resursele hardware.

Tehnicile utilizate pentru execuţia programelor au în vedere atât algoritmii

de reprezentare şi gradul de utilizare a resurselor sistemului de calcul, cât şi modul

în care sunt realizate obiectivele sistemului de operare, în condiţiile de creştere a

eficienţei de exploatare a sistemelor de calcul.

Următoarele noţiuni sunt legate de modul de exploatare a sistemelor de

calcul:

monoprogramming;

multiprogramming;

time-sharing;

real-time system.

00:05

Page 19: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

19

Monoprogramming (monoprogramarea) reprezintă tehnica în care

execuţia 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 secvenţial, ceea ce înseamnă că un

program nu poate intra în sistem, decât după ce programul anterior şi-a terminat

execuţia.

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 funcţie de priorităţile unităţii centrale de

prelucrare. Aceasta înseamnă că în acelaşi interval de timp, mai multe programe

sunt încărcate în memoria calculatorului, accesul fiecărui program la resurse fiind

impus de către unitatea centrală. Această tehnică, privind încărcarea simultană a

mai multor programe, care folosesc partajat unitatea centrală de prelucrare, este

considerată execuţie concurentă şi are ca obiectiv mărirea gradului de ocupare a

unităţii centrale. Este însă necesar să se facă distincţie între multiprogramare şi

multiprelucrare.

Atunci când mai multe programe ocupă în acelaşi timp memoria

calculatorului şi îşi partajează resursele, exploaterea unui sistem de calcul este în

multiprogramare, iar când î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 diferenţa dintre multiprogramare şi multiprelucrare ? …………………………………………………………………………...................

………………………………………………………………………………………

…………………………………………………………………………...................

Time–sharing (execuţia programelor prin divizarea timpului) este tehnica

de exploatare, caracterizată de folosirea concurentă a resurselor unui sistem de

calcul, de către mai mulţi utilizatori, prin intermediul terminalelor plasate local sau

la distanţă. Această tehnică este, prin însăşi natura sa, o tehnică de lucru

conversaţională şi constă în comutarea sau multiplexarea resurselor de timp între

utilizatori.

Termenul de multiplexare, provenit din telecomunicaţi, semnifică partajarea

resurselor sistem, astfel încât să se creeze efectul de folosire simultană a resurselor,

de mai mulţi utilizatori.

Dacă în cazul multiprogramării, obiectivul central este creşterea gradului de

ocupare al unităţii centrale, timpul de răspuns neconstituind un obiectiv major, în

cazul tehnicii time-sharing, unitatea centrală este partajată pe bază de cerere,

prioritatea fiind optimizarea timpului de răspuns al sistemului de calcul.

Notiunea de time–sharing reprezintă:

00:30

Page 20: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

20

…………………………………………………………………………...................

………………………………………………………………………………………

…………………………………………………………………………...................

Real–time system (sistem de calcul în timp real) este sistemul în care

timpul de răspuns, rezultat în urma execuţiei calculelor şi a celorlalte operaţii, este

suficient de mic, încât poate controla procesele ce se desfăşoară î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 răspuns foarte

mic pentru a nu se perturba procesele controlate. Un exemplu de astfel de sisteme

sunt sistemele care controlează desfăşurarea proceselor tehnologice.

Notiunea de real-time system reprezintă: ………………………………………………………………………….......

………………………………………………………………………………

………………………………………………………………………….......

Analiza eficienţei exploatării sistemelor de calcul se poate efectua din mai

multe puncte de vedere, printre care cele mai importante se referă la:

performanţele tehnice ale echipamentelor de prelucrare automată a datelor;

tehnicile folosite în exploaterea sistemelor de calcul;

tehnicile folosite pentru realizarea programelor în scopul efectuării de

aplicaţii.

Analiza eficienţei exploatării sistemelor de calcul se referă la ?

…………………………………………………………………………...................

………………………………………………………………………………………

Să ne reamintim...

Real–time system (sistem de calcul în timp real) este sistemul în care timpul de

răspuns, rezultat în urma execuţiei calculelor şi a celorlalte operaţii, este suficient

de mic, încât poate controla procesele ce se desfăşoară î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 funcţie de priorităţile unităţii centrale de prelucrare.

Time–sharing (execuţia programelor prin divizarea timpului) este tehnica

de exploatare, caracterizată de folosirea concurentă a resurselor unui sistem

de calcul, de către mai mulţi utilizatori, prin intermediul terminalelor plasate

local sau la distanţă. 01:30

Page 21: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

21

Real–time system (sistem de calcul în timp real) este sistemul în care

timpul de răspuns, rezultat în urma execuţiei calculelor şi a celorlalte

operaţii, este suficient de mic, încât poate controla procesele ce se

desfăşoară în cadrul sistemului respectiv.

2.5. Test de autoevaluare a cunoștințelor

(timp necesar : 20 minute)

1. Suportul formal al informaţiilor, modelul de reprezentare a informaţiilor la nivel

fizic şi logic sunt:

a. structurile b. datele c. comenzile d. instrucţiunile

2. Pentru efectuarea oricărei aplicaţii 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 numeşte:

a.limbaj pseudocod b.limbaj procedural

c.limbaj neprocedural d.limbaj algoritmic

4. Reprezentarea procesului de prelucrare automată a datelor completă şi fără

ambiguităţi se numeşte:

a. procesare b. evaluare c. reprezentare d. descriere algoritmică

5. Descrierea algoritmică procesului de prelucrare, după care calculatorul poate

efectua orice aplicaţie, este denumită:

a. algoritm b. program c. instrucţiune d. comandă

6. În orice program, ordinul primit de calculator de a efectua o acţiune determinată

se numeşte:

a. instrucţiune b. codificare c. operaţie d. aplicaţie

7. Forma de reprezentare a comunicării dintre utilizator şi calculator se numeşte:

a. limbaj natural b. limbaj artificial

c. limbaj de programare d. intrucţiune

8. Mulţimea simbolurilor care sunt folosite într-un limbaj de programare se

numeşte:

a. instrucţiune b. program c. alfabet d. vocabular

9. Ansamblul regulilor de formare a instrucţiunilor în cadrul limbajelor de

programare se numeşte:

a. alfabet b. vocabular c. sintaxă d. semantică

10. Limbajele care fac saltul de la modul cum se rezolvă la ceea ce se doreşte

prin rezolvarea problemei se numesc limbaje:

a. algoritmice b. de nivel înalt c. procedurale d. neprocedurale

Răspunsurile corecte la întrebările 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

Page 22: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

22

2.6. Test de evaluare a cunoștințelor

A. Care sunt criteriile de alegere a mediilor de programare în activitatea de

elaborare a programelor pentru efectuarea aplicaţiilor informatice;

B. Care sunt posibilităţile de exploatare ale mediilor de programare faţă de

limbajele de programare, în procesul de elaborare a programelor;

C. Ce se înţelege, în sens lingvistic, printr-un sistem de comunicare specific

oamenilor alcătuit din sunete articulate ?

D. Cum se numeşte sistemul de comunicare creat în mod intenţionat de

oameni, pentru realizarea comunicării într-unul sau altul din domeniile de

activitate umană ?

E. Cum se numeşte sistemul de comunicare destinat descrierii prin directive,

comenzi sau instrucţiuni, exprimate simbolic, a operaţiilor de prelucrare

automată a datelor ?

F. Cum este denumit ansamblul regulilor de modificare a formei cuvintelor, în

contextul întrebuinţării lor, în cadrul unui limbaj de programare ?

G. Cum se numeşte programul elaborat într-un limbaj de nivel înalt (superior

limbajului cod-maşină) conform algorit-mului aplicaţiei ?

H. Cum se numeşte limbajul de programare elaborat ca o variantă simplificată

a limbajului FORTRAN cu scopul de a fi folosit interactiv pentru învăţarea

rapidă a programării calculatoarelor ?

I. Cum se numeşte programul obţinut după translatarea unui program sursă,

folosind un program de translatare corespunzător ?

2.7. Teme de control

a) Realizaţi un studiu comparativ privind posibilităţile de folosire ale limbajelor

de programare în funcţie de nivelul situat faţă de limbajul în cod-maşină.

b) Alcătuiţi un scurt referat cu tema: „Modul de alegere a unui limbaj de

programare în funcţie de domeniile de folosire, specificul aplicaţiilor şi

particularităţile limbajelor de programare”.

c) Alcătuiţi un scurt referat cu tema: „Influenţa exercitată de către

caracteristicile mediilor de programare asupra activităţiilor de elaborare a

programelor, în funcţie de specificul aplicaţiilor”.

2.8. Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,

2012

5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,

Editura Tribuna Economică, Bucureşti, 2004

6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi

Page 23: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

23

practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti,

2002

7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,

Bucureşti, 2003

8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura

CURTEA VECHE, Bucureşti, 2004

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura

Economică, Bucureşti, 2000

3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 24: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

24

UNITATEA DE ÎNVĂŢARE 3. ALGORITMI ŞI ALGORITMIZAREA APLICAŢIILOR

CUPRINS

3.1. Obiective

3.2. Competenţele unităţii de învăţare

3.3. Algoritmi

3.4. Proprietăţile algoritmilor

3.5. Tipuri de algoritmi

3.6. Operaţiile reprezentate în algoritmi

3.7. Clasificarea algoritmilor

3.8. Rezumat

3.9. Test de autoevaluare a cunoştinţelor

3.10. Test de evaluare a cunoştinţelor

3.11. Bibliografie

3.1. Obiective

În această unitate de învățare se va prezenta noţiunes de algoritm ca premiză pentru

înţelegerea modului de algoritmizare a oricărei aplicaţii. De asemenea, se vor prezenta

proprietăţile algoritmilor, tipurile de algoritmi şi operaţiile care se reprezintă în

algorimi pentru construcţia corectă a algoritmilor şi reprezentarea corespunzătoare

logică a aplicaţiilor.

3.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

Definiţi noţiunea de algoritm în sens general şi în sens restrictiv;

Identificaţi proprietăţile algoritmilor pentru definirea lor corectă sub aspect

formal şi logic, precum şi tipurile de algoritmi în funcţie de natura operaţiilor

de efectuat şi de natura datelor folosite;

Efectuaţi algoritmizarea aplicaţiilor pentru adaptarea lor la cerinţele prelucrării

automate.

Utilizaţi corect operatorii şi operanzii în construcţia algoritmilor pentru

algoritmizarea aplicaţiilor.

Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.

3.3. Algoritmi

În prelucrarea automată a datelor, logica programării calculatoarelor este

denumirea pentru ansamblul operaţiilor de determinare, reprezentare şi evaluare a

algoritmilor de rezolvare a aplicaţiilor cu calculatorul electronic.

Însă, în contextul realizării produselor informatice, această denumire este

extinsă, prin implicaţiile sale, asupra modului de concepere a structurii de ansamblu a

produselor informatice, cu dependenţele funcţionale specifice, precum şi asupra

modului de realizare a acestor produse.

Definiţii

Denumirea de algoritm provine din contopirea cuvântului alhovism, dupã

00:05

Page 25: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

25

numele unui matematician arab (ALHVARISMI care a trăit în evul mediu), cu

cuvântul grec arithmos (număr).

Definirea noţiunii (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 înţelege orice proces

aritmetic sau algebric care se efectuează după nişte reguli bine determinate.

* În sens matematic mai riguros un algoritm este o mulţime finită de operaţii

(instrucţiuni, comenzi) cunoscute care, executate într-o ordine bine stabilită, pornind

de la un set de valori (intrarea algoritmului) ce aparţine unei mulţimi de asemenea

seturi, mulţime numită domeniul de definiţie al algoritmului, produc în timp finit un alt

set de valori (ieşirea algoritmului).

* În contextul în care se foloseşte calculatorul electronic, noţiunea de

algoritm este definitã ca un ansamblu de reguli ce determină în mod univoc un proces

finit de operaţii de prelucrare automată asupra unor informaţii admisibile iniţiale în

scopul obţinerii informaţiilor finale care sunt aşteptate de utilizatori.

Definiţi noţiunea de algoritm.

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

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

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

3.4. Proprietăţile algoritmilor

Pentru definirea corectă sub aspect formal, algoritmii trebuie să îndeplinească

cel puţin trei condiţii esenţiale: 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 acelaşi tip. Această

proprietate justifică însuşi sensul (scopul) pentru care un algoritm este elaborat. Cu cât

sfera de aplicabilitate a algoritmului este mai largă, cu atât eficienţa folosirii acestuia

este mai mare.

Finitudinea este proprietatea algoritmilor potrivit căreia informaţiile finale

rezultă din informaţiile iniţiale printr-un numãr finit de transformări (operaţii). Această

proprietate pune în evidenţă faptul că dacă în parcurgerea unui algoritm, dintr-un

anumit motiv (de obicei dintr-o eroare în logica elaborării), o operaţie sau un grup de

operaţii se executã la infinit, atunci pentru a ieşi din această stare (a întrerupe această

execuţie) este necesară o intervenţie din exterior.

Unicitatea este proprietatea algoritmilor conform căreia transformările

(operaţiile), precum şi ordinea lor de efectuare, prin care se obţin anumite informaţii

finale din informaţiile iniţiale, sunt univoc determinate de regulile algoritmului.

Aceasta înseamnã că ori de câte ori se porneşte de la acelaşi set de valori ale

informaţiilor (variabilelor) de intrare se obţin întotdeauna aceleaşi informaţii finale

(rezultate).

Aceste trei proprietăţi caracterizează algoritmii numai sub aspect formal.

Pentru a fi însă corespunzător şi din punct de vedere al problemei de rezolvat (sub

aspect logic), orice algoritm mai trebuie sã fie corect şi eficient.

Corectitudinea este o condiţie indispensabilă pentru orice algoritm, fiind

determinată de metoda de rezolvare a problemei aleasă de utilizator.

Eficienţa unui algoritm este impusă de modul cum se lucrează la calculator şi

de timpul de răspuns al calculatorului. În prezent modul de lucru la calculator este, de

00:30

Page 26: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

26

obicei, modul conversaţional, iar timpul de răspuns al calculatorului este timpul care

trece de la introducerea datelor în calculator de către utilizator şi până la obţinerea

rezultatelor. Aceasta înseamnă că, deşi un algoritm poate fi corect sub aspect formal şi

al metodei de rezolvare, este posibil să fie ineficient dacă, de exemplu, furnizează

rezultatele mai târziu decât momentul aşteptat. 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 puţin trei condiţii esenţiale: generalitate,

finitudine şi unicitate. Pentru a fi însă corespunzător şi din punct de vedere al

problemei de rezolvat (sub aspect logic), orice algoritm mai trebuie sã fie corect şi

eficient.

Ce înţelegeţi prin generalitate, finitudine şi unicitate?

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

Dar prin corectitudinea si eficienţa unui algoritm?

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

3.5. Tipuri de algoritmi

În funcţie de natura operaţilor conţinute şi informaţilor folosite, algoritmii se

pot împărţi în două mari grupe: algoritmi numerici şi algoritmi nenumerici.

* Algoritmii numerici sunt algoritmii care, în urma efectuării unui număr finit de

operaţii aritmetice elementare asupra unor informaţii numerice, furnizează un rezultat

numeric ce constituie soluţia sau aproximaţia acesteia pentru problema rezolvată. În

această grupă se includ algoritmii ce corespund metodelor de calcul numeric, cum

sunt: rezolvarea ecuaţiilor, integrarea şi derivarea numerică, calculul matriceal.

Algoritmii numerici se caracterizează prin:

▪ mărginirea (limitarea) în timp a duratei de execuţie;

▪ definirea riguroasă a fiecărui ciclu (pas) din cadrul structurii algoritmului;

▪ executabilitatea tuturor acţiunilor (operaţiilor) conţinute;

▪ corectitudinea metodelor de evaluare a algoritmilor.

* Algoritmii nenumerici denumiţi şi algoritmi de prelucrare sunt algoritmii în

care soluţia rezolvării problemelor (rezultatul prelucrării) se obţine în urma efectuării

unui număr finit de operaţii care nu sunt operaţii aritmetice (de exemplu: sortarea,

indexarea, filtrarea, ventilarea, regruparea, interclasarea etc.).

În această grupă se includ toţi algoritmii de prelucrare a datelor organizate

structural în fişiere de date şi baze de date. În algoritmii de prelucrare pot fi incluse, în

funcţie de natura aplicaţiilor, şi operaţii aritmetice care se constituie în subalgoritmi

numerici.

Definiţi noţiunile de algoritmi numerici si algoritmi nenumerici. ........................................................................................................................................

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

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

3.6. Operaţiile reprezentate în algoritmi

01:00

Page 27: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

27

În structura algoritmilor, informaţiile iniţiale (datele de intrare) sunt

transformate în informaţii finale (date de ieşire) prin diferite operaţii (acţiuni), care, în

principal, sunt:

▪ Operaţii de calcul, ce se referã la operaţiile obişnuite (adunare, scãdere,

înmulţire, impărţire şi ridicare la putere) şi la celelalte operaţii mai complexe ce se pot

executa prin reducerea la operaţii aritmetice elementare.

Aceste operaţii sunt reprezentate prin simbolurile cunoscute din matematicã sau prin

simbolurile folosite în limbajele de programare:

+ pentru adunare,

- pentru scădere,

* pentru înmulţire,

/ pentru impărţire,

** pentru ridicare la putere;

( ) pentru subexpresii.

Aceste operaţii când sunt specificate în cadrul expresiilor se execută în mod

natural, conform ordinei de prioritate cunoscută din matematică, sau în mod forţat,

prin folosirea parantezelor rotunde.

Operaţii de atribuire, prin care se stabileşte conţinutul unor variabile cu

anumite valori, care pot fi valori ale unor constante, ale altor variabile sau ale

unor expresii.

Aceste operaţii se pot reprezenta prin trei simboluri diferite:

<-- simbol prin care se indicã sensul atribuirii; variabila destinaţie este situată

în partea stângă a simbolului;

:= simbol tipic pentru operaţia de atribuire, pentru a se deosebi de simbolul

"=" folosit în matematică;

= simbol preluat din matematică, dar folosit cu altă semnificaţie şi anume:

"se atribuie valoarea".

Indiferent care dintre aceste simboluri se foloseşte, în operaţiile de atribuire

există o sursă de valori cu care se execută operaţia, situată în dreapta simbolului, şi o

destinaţie care primeşte aceste valori, situată stângă simbolului.

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

I<-- I + 1 I := I + 1 I = I + 1

Să ne reamintim...

Operaţiile de calcul se referã la operaţiile obişnuite (adunare, scãdere, înmulţire,

impărţire şi ridicare la putere) şi la celelalte operaţii mai complexe ce se pot executa

prin reducerea la operaţii aritmetice elementare.

Operaţii de decizie, ce se referă la verificarea unei condiţii logice şi în funcţie

de rezultatul obţinut se alege fie o alternativă de urmat (în cazul algoritmilor cu

ramificaţii), fie continuarea, respectiv terminarea, procesului repetitiv (în cazul

algoritmilor ciclici).

După modul de exprimare a condiţiilor logice, operaţiile de decizie pot fi

reprezentate prin două feluri de simboluri:

◦ simbolul de comparare;

◦ simbolurile de relaţie.

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

Page 28: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

28

Rezultatul unei astfel de comparări pune în evidenţă trei alternative: mai mic decât,

egal cu şi mai mare decât.

Exemple:

A : B D : 0

Să ne reamintim...

După modul de exprimare a condiţiilor logice, operaţiile de decizie pot fi reprezentate

prin două feluri de simboluri: simboluri de comparare; simboluri de relaţie.

Punând în evidenţă aceste trei alternative, nu se recomandă ca simbolul de comparare

să fie folosit pentru formularea condiţiilor logice, deoarece complică structura

algoritmilor şi, în consecinţă, reprezentarea acestora.

Simbolurile relaţionale sunt simbolurile folosite în matematică sau cele folosie

în limbajele de programare, cum sunt urmãtoarele:

< mai mic decât

> mai mare decât

= egal cu

<= mai mic decât sau egal cu

>= mai mare decât sau egal cu

<> nu este egal cu

Exemple:

A < B A > B A = B

A <= B A >= B A <> B

Punând în evidenţă numai două alternative (adevărat şi fals), simbolurile de relaţie

(relaţionale) sunt cele care se recomandã să fie folosite pentru formularea (exprimarea)

condiţiilor logice.

▪ Operaţii de intrare şi ieşire, ce se referã la introducerea informaţiilor admisibile

iniţiale (datelor de intrare) în memoria calculatorului şi la obţinerea informaţiilor finale

(rezultatelor sau datelor de ieşire).

În prelucrarea automată a datelor, operaţia de intrare se mai numeşte şi operaţie

de citire şi constă în introducerea de date de la tastatură sau de pe un suport tehnic de

date, iar operaţia de ieşire se mai numeşte operaţie de scriere sau de afişare şi constă

în furnizarea de date pe ecranul monitorului sau pe imprimantă. Pentru descrierea

operaţiilor de intrare şi ieşire nu sunt simboluri speciale (consacrate), dar se folosesc în

mod frecvent cuvintele CITEŞTE şi SCRIE.

▪ Alte operaţii, prin care se desemnează diferite operaţii (acţiuni) care se întâlnesc,

de obicei, în algoritmii nenumerici (de prelucrare), ca de exemplu: căutare, extragere,

sortare, interclasare etc. Aceste operaţii nu se reprezintă prin simboluri speciale

(consacrate), ci chiar prin denumirea lor.

Ordinea de execuţie a operaţiilor defineşte structura de control a algoritmului.

Această structură, indiferent de tipul algoritmului, prezintă anumite similitudini, care

derivă din cele două caracteristici de bază ale oricărui algoritm: iterativitatea şi

recursivitatea.

01:50

Page 29: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

29

* Iterativitatea constă în reluarea anumitor operaţii 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ă,

obţinerea valorilor succesive ale unei variabile recursive se poate asigura print-un

proces iterativ.

Definiţi cele două caracteristici de bază ale unui algoritm. ........................................................................................................................................

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

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

3.7. Clasificarea algoritmilor

După modul de succesiune a operaţiilor (acţiunilor) pe care le implică, algoritmii se

împart în trei mari grupe:

• algoritmi liniari sau cu structură secvenţială;

• algoritmi cu ramificaţii sau cu structură alternativă;

• algoritmi ciclici sau cu structură repetitivă.

Algoritmii liniari (cu structură secvenţială) conţin operaţii care se succed în

secvenţă (operaţie după operaţie) de la admiterea informaţiilor iniţiale (datelor de

intrare) şi până la obţinerea informaţiilor finale (datelor de ieşire), fără condiţii

prestabilite de execuţie şi fără repetări ale operaţiilor.

Exemplu:

Calculul expresiei E = A + B – C implică efectuarea în ordine secvenţială a

celor trei operaţii specificate:

adunarea valorii variabilei A cu valoarea variabilei B;

scăderea din suma obţinutã a valorii variabilei C;

atribuirea rezultatului obţinut variabilei E.

Algoritmii cu ramificaţii (cu structură alternativă) conţin operaţii (acţiuni)

care se execută în funcţie de îndeplinirea sau neîndeplinirea unor condiţii logice din

structura algoritmilor; structura se ramifică pe alternative distincte, fiecare având

operaţii care se executã condiţionat.

Exemplu:

Calculul rădacinilor ecuaţiei de gradul doi se desfăşoarã pe etape, astfel:

• etapa 1: se calculează discriminantul ecuaţiei pe baza formulei cunoscute;

• etapa 2: se compară discriminantul D cu zero;

• etapa 3: se calculează rădăcinile ecuaţiei astfel:

• dacã D>0 se execută operaţiile pentru obţinerea celor douã rădăcini reale

şi distincte;

• dacã D=0 se execută operaţiile pentru obţinerea celor două rădăcini reale

şi egale;

• dacã D<0 se execută operaţiile pentru obţinerea celor două rădăcini

02:05

Page 30: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

30

complexe.

Algoritmii ciclici (cu structură repetitivă) conţin operaţii (acţiuni) care se

executã ciclic (repetat), în funcţie de îndeplinirea sau neindeplinirea unei condiţii

impuse. În structura unui algoritm ciclic parcurgerea o singură dată a blocului de

operaţii repetabile se numeşte ciclu sau pas. Elementele unui ciclu (pas) sunt: corpul

ciclului, reprezentat de blocul de operaţii care se repetã şi condiţia impusă, de care

depinde continuarea sau terminarea procesului repetitiv.

În funcţie de posibilitatea cunoaşterii numărului de cicluri (paşi) înainte de a

începe procesul ciclic (repetitiv), algoritmii ciclici sunt de două feluri:

• algoritmi ciclici cu un număr cunoscut de cicluri (paşi) sau cu variabilă de

ciclare;

• algoritmi ciclici cu un număr necunoscut de cicluri (paşi) sau cu condiţie

logică.

Algoritmii ciclici cu un număr cunoscut de cicluri sunt algoritmii ciclici în

structura cărora blocul de operaţii se repetă până când se ajunge la numărul de cicluri

prestabilit. Acest număr de cicluri este controlat de o variabilã denumită variabilă de

ciclare (contor sau numărător) simbolizată, în general, cu V.

Variabila de ciclare V este determinată elementele:

• valoarea iniţială Vi;

• valoarea finală Vf;

• raţia (pasul) de variaţie R.

Aceste trei elemente se găsesc într-o relaţie bine definită cu variabila de ciclare

şi anume:

• la începutul procesului repetitiv variabilei de ciclare V i se atribuie valoarea

iniţială Vi pe baza relaţiei V=Vi;

• după efectuarea fiecărui ciclu (pas)variabila de ciclare V se modifică pe baza

relaţiei V=V+R şi apoi se verifică condiţia V>Vf, astfel că:

• dacă această condiţie este falsă, atunci procesul de ciclare continuă;

• dacă această condiţie este adevărată, atunci acest proces se termină.

Algoritmii ciclici cu un număr necunoscut de cicluri sunt algoritmii ciclici în

care blocul de operaţii se repetă în funcţie de îndeplinirea sau neîndeplinirea unei

anumite condiţii care se numeşte condiţie logică.

Ţinând seama de locul unde este situată condiţia logică în structura algoritmilor

ciclici cu un număr necunoscut de cicluri se pot distinge:

• algoritmi ciclici cu condiţia logică situată anterior;

• algoritmi ciclici cu condiţia logică situată posterior.

Algoritmii ciclici cu condiţia logică situată anterior sunt algoritmii în care

condiţia logică se verifică înainte de executarea blocului de operaţii. Ca atare, când

condiţia logică este falsă de la prima verificare, blocul de operaţii nu se execută

niciodatã şi se încheie procesul repetitiv.

Algoritmii ciclici cu condiţia logică situată posterior sunt algoritmii în care

condiţia logică este verificată după executarea blocului de operaţii. Când condiţia

logică este falsă de la prima verificare, blocul de operaţii se execută o singură dată şi

Page 31: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

31

se încheie procesul repetitiv.

Care sunt diferenţele între algoritmii ciclici cu condiţia logică situată anterior si

algoritmii ciclici cu condiţia logică situată posterior ?

…………………………………………………………………………………………..

…………………………………………………………………………………………...

3.8. Rezumat

Noţiunea de algoritm este definitã ca un ansamblu de reguli ce determină în

mod univoc un proces finit de operaţii de prelucrare automată asupra unor

informaţii admisibile iniţiale în scopul obţinerii informaţiilor finale care sunt

aşteptate de utilizatori.

Algoritmii au următoarele proprietăţi: generalitate, finitudine, unicitate,

corectitudine şi eficienţă.

În funcţie de natura operaţilor conţinute şi informaţilor folosite, algoritmii se

pot împărţi în două mari grupe: algoritmi numerici şi algoritmi nenumerici.

Algoritmii numerici sunt algoritmii care, în urma efectuării unui număr finit

de operaţii aritmetice elementare asupra unor informaţii numerice, furnizează

un rezultat numeric ce constituie soluţia sau aproximaţia acesteia pentru

problema rezolvată.

Algoritmii nenumerici denumiţi şi algoritmi de prelucrare sunt algoritmii în

care soluţia rezolvării problemelor (rezultatul prelucrării) se obţine în urma

efectuării unui număr finit de operaţii care nu sunt operaţii aritmetice (de

exemplu: sortarea, indexarea, filtrarea, ventilarea, regruparea, interclasarea

etc.).

Operaţiile reprezentate în algoritmi pot fi de tipul urmator: operaţii de calcul,

operaţii de atribuire, operaţii de decizie, operaţii de intrare/iesire.

După modul de succesiune a operaţiilor (acţiunilor) pe care le implică,

algoritmii se împart în trei mari grupe:

- algoritmi liniari sau cu structură secvenţială;

- algoritmi cu ramificaţii sau cu structură alternativă;

- algoritmi ciclici sau cu structură repetitivă.

3.9. Test de autoevaluare a cunoștințelor

(timp necesar : 20 minute)

1) Definiţi noţiunea de algoritm.

2) Definiţi proprietatea de Generalitate.

3) Definiţi proprietatea de Finitudine.

4) Prin ce se caracterizează algoritmii numerici?

5) Ce întelegeţi prin operaţiile de decizie?

6) Care sunt caracteristicile de bază ale unui algoritm?

7) Cum pot fi reprezentate operaţiile de decizie?

8) Ce întelegeţi prin algoritmii ciclici cu un număr cunoscut de cicluri?

02:40

Page 32: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

32

Răspunsuri:

1) Noţiunea de algoritm este definitã ca un ansamblu de reguli ce determină în

mod univoc un proces finit de operaţii de prelucrare automată asupra unor

informaţii admisibile iniţiale în scopul obţinerii informaţiilor finale care sunt

aşteptate de utilizatori.

2) Generalitatea este proprietatea algoritmilor prin care orice algoritm nu rezolvã

în general o singurã problemã, ci o clasã de probleme de acelaşi tip.

3) Finitudinea este proprietatea algoritmilor potrivit căreia informaţiile finale

rezultă din informaţiile iniţiale printr-un numãr finit de transformări (operaţii).

4) Algoritmii numerici se caracterizează prin:

▪ mărginirea (limitarea) în timp a duratei de execuţie;

▪ definirea riguroasă a fiecărui ciclu (pas) din cadrul structurii algoritmului;

▪ executabilitatea tuturor acţiunilor (operaţiilor) conţinute;

▪ corectitudinea metodelor de evaluare a algoritmilor.

5) Operaţiile de decizie se referă la verificarea unei condiţii logice şi în funcţie de

rezultatul obţinut se alege fie o alternativă de urmat (în cazul algoritmilor cu

ramificaţii), fie continuarea, respectiv terminarea procesului repetitiv (în cazul

algoritmilor ciclici).

6) Caracteristicile de bază ale unui algoritm sunt: iterativitatea şi recursivitatea.

7) Operaţiile de decizie pot fi reprezentate prin două feluri de simboluri:

- simbolul de comparare;

- simbolul de relaţie.

8) Algoritmii ciclici cu un număr cunoscut de cicluri sunt algoritmii ciclici în

structura cărora blocul de operaţii se repetă până când se ajunge la numărul de

cicluri prestabilit.

3.10. Test de evaluare a cunoștințelor

Care sunt operaţiile reprezentate în algoritmi?

Cum se clasifică algoritmii după modul de succesiune a operaţiilor (acţiunilor) pe care

le implică?

3.11. Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,

2012

5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,

Editura Tribuna Economică, Bucureşti, 2004

6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi

Page 33: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

33

practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002

7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,

Bucureşti, 2003

8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA

VECHE, Bucureşti, 2004

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura

Economică, Bucureşti, 2000

3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 34: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

34

UNITATEA DE ÎNVĂŢARE 4. DESCRIEREA ALGORITMILOR ŞI FORME DE REPREZENTARE

CUPRINS

4.1. Obiective

4.2. Competenţele unităţii de învăţare

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 cunoştinţelor 4.8. Test de evaluare a cunoştinţelor

4.9. Bibliografie

4.1. Obiective

În această unitate de învățare se vor prezenta principalele forme folosite pentru

reprezentarea (descrierea) algoritmilor în scopul adaptării specificaţiilor acestora la

specificul construcţiilor limbajelor de programare. De asemenea, se vor prezenta

simbolurile folosite la construcţia blocurilor din schemele logice de sistem şi de

program.

4.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

Utilizaţi formele de reprezentare (descriere) a algoritmilor în scopul adaptării

descrierii algoritmice la specificul limbajului de programare în care se

elaborează programele;

Identificaţi simbolurile standard folosite la construirea blocurilor din care se

alcătuiesc schemele logice de sistem şi de program;

Construiţi scheme logice de sistem şi de program adaptate la specificul sintaxei

instrucţiunilor program ale limbajului de programare folosit.

Durata de parcurgere a acestei unităţi de învăţare 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ă operaţie se numeşte 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

Page 35: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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 răspândită în practica

programării calculatoarelor, care se remarcă prin simplitate şi claritate de a reflecta în

mod concentrat şi complet logica efectuării unei aplicaţii (rezolvării unei probleme) cu

calculatorul electronic.

Schema logică este o formă grafică de reprezentare a algoritmilor alcătuită din

blocuri de operaţii legate prin săgeţi sau linii de flux.

Orice schemă logică începe cu un bloc de intrare (START) şi se termină cu un

bloc de ieşire (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ă ieşire, cu excepţia blocului de decizie, care are o singură

intrare şi două ieşiri (câte una pentru fiecare alternativă), a blocului de intrare care are

numai ramura de ieşire şi a blocului de ieşire care are numai ramura de intrare.

Modul de parcurgere a algoritmilor (cum se trece de la un bloc la altul) se indică

explicit prin săgeţi sau implicit prin linii de flux. Legătura dintre blocurile schemei

logice poate fi numai univocă, condiţie impusă de noţiunea de algoritm. În interiorul

blocurilor se specificã operaţiile de efectuat (operatorii) şi datele de prelucrat

(operanzii).

În funcţie de natura operaţiilor pe care le conţin, blocurile schemei logice sunt

descrise prin diferite simboluri (figuri geometrice) standardizate. Există o diversitate de

simboluri folosite în acest scop, totuşi blocurile fundamentale necesare elaborării unei

scheme logice, cu denumirea şi semnificaţia corespunzătoare, sunt următoarele:

Blocul terminal. Acest bloc marchează începutul, respectiv sfârşitul

algoritmului, astfel că în interiorul blocului se scrie, după caz, START sau STOP.

Blocul de intrare/ieşire. Marchează operaţiile de CITIRE/SCRIERE a datelor.

Blocul de calcul. Indică operaţiile de calcul şi de atribuire, iar în algoritmii de

prelucrare poate indica şi o procedură sau o secvenţă de operaţii.

Blocul de decizie. Pune în evidenţă operaţiile 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 secvenţe autonome; (în interiorul

blocului se scrie numele procedurii).

Săgeata. Indică sensul de parcurgere a algoritmului şi uneşte blocurile între ele.

Dacă este plasată în interiorul blocului de calcul, atunci indică o operaţie de atribuire.

Conectorul de procedură. Indică punctele de întâlnire ale săgeţilor (liniilor de

flux) sau locurile de conec-tare a două părţi din schema logică, pe aceeaşi pagină.

Conectorul de pagină. Leagă două blocuri (părţi) 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

Page 36: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

36

Să ne reamintim...

Blocurile fundamentale necesare elaborării unei scheme logice sunt: blocul terminal,

blocul de intrare/ieşire, blocul de calcul, blocul de decizie, blocul de procedură,

săgeata, 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 către descrierea progresivã a

specificaţiilor algoritmilor, denumit limbaj pseudocod.

Limbajul pseudocod poate fi definit ca un limbaj simbolic situat între limbajul

natural şi limbajele de programare, obţinut 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ă foloseşte 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. Având semnificaţii

stricte în construcţiile sintactice, aceste cuvinte mai sunt denumite şi cuvinte cheie şi se

scriu îngroşate sau subliniate.

Între blocurile de operaţii din schemele logice şi cuvintele cheie din limbajul

pseudocod există o oarecare echivalenţă, care se poate observa comparând conţinutul

blocurilor respective cu cuvintele cheie, folosite pentru descrierea specificaţiilor unui

algoritm.

Reprezentarea algoritmilor în limbajul pseudocod se realizează prin propoziţii.

În funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt:

propoziţii simple, prin care se exprimă operaţii ce urmează să fie transpuse

direct într-un limbaj de programare (ca de exemplu, citeşte două numere,

calculează suma, afişează suma etc);

propoziţii complexe, prin care se exprimă un grup de operaţii care trebuie

detaliate ulterior, în scopul transpunerii într-un limbaj de programare; pentru a fi

diferenţiate, propoziţiile complexe se marchează la început cu semnul #.

Fiecare propoziţie simplă sau complexă trebuie să înceapă cu un verb, care să

exprime cât mai corect operaţia 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 punctuaţie, cum sunt:

caracterul ';' folosit pentru separarea expresiilor;

caracterul '.' folosit pentru marcarea, alături de cuvântul sfârşit, încheierea

algoritmilor.

Pentru reprezentarea unui algoritm în limbajul pseudocod folosind aceste semne

de punctuaţie, este necesară şi suficientă o singură frază.

Reprezentarea algoritmilor prin limbaj pseudocod asigură:

flexibilitate mare în descrierea algoritmilor;

posibilitatea exprimării algoritmilor în limbaj natural;

transpunere facilă într-un limbaj de progamare.

01:00

5

Page 37: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

37

Spre deosebire de schemele logice, pseudocodul este mai complet în descrierea

algoritmilor, posedând 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 propoziţii. În

funcţie de felul operaţiilor pe care le descriu, propoziţiile 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 alcătuită

din blocuri de operaţii legate prin săgeţi sau linii de flux.

Orice schemă logică începe cu un bloc de intrare (START) şi se termină cu

un bloc de ieşire (STOP). Între aceste două blocuri terminale se interpun

celelalte blocuri aranjate conform algoritmului pe care îl descrie.

Blocurile fundamentale necesare elaborării unei scheme logice sunt: blocul

terminal, blocul de intrare/ieşire, blocul de calcul, blocul de decizie, blocul

de procedură, săgeata, conectorul de procedură, conectorul de pagină.

Limbajul pseudocod poate fi definit ca un limbaj simbolic situat între

limbajul natural şi limbajele de programare, obţinut prin introducerea în

limbajul natural a unor reguli specifice limbajelor de programare.

Reprezentarea algoritmilor în limbajul pseudocod se realizează prin

propoziţii. În funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt

simple şi complexe.

4.7. Test de autoevaluare a cunoștințelor

(timp necesar : 20 minute)

1. Ce reprezinta o schema logica?

2. Care sunt blocurile fundamentale necesare elaborării 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?

Răspunsuri:

1. Schema logică este o formă grafică de reprezentare a algoritmilor alcătuită

01:50

Page 38: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

38

din blocuri de operaţii legate prin săgeţi sau linii de flux.

2. Blocurile fundamentale necesare elaborării unei scheme logice sunt: blocul

terminal, blocul de intrare/ieşire, blocul de calcul, blocul de decizie, blocul

de procedură, săgeata, conectorul de procedură, conectorul de pagină.

3. Blocul terminal marchează începutul, respectiv sfârşitul 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 secvenţe

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, obţinut prin introducerea în

limbajul natural a unor reguli specifice limbajelor de programare.

6. Reprezentarea algoritmilor în limbajul pseudocod se realizează prin

propoziţii. În funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt

simple şi complexe..

7. Avantajele reprezentarii algoritmilor in limbajul pseudocod sunt:

flexibilitate mare în descrierea algoritmilor;

posibilitatea exprimării algoritmilor în limbaj natural;

transpunere facilă într-un limbaj de progamare.

4.8. Test de evaluare a cunoștințelor

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 numeşte forma grafică de reprezentare a algoritmilor alcătuită din

blocuri de operaţii legate prin săgeţi ?

Cum se numeşte forma de reprezentare a algoritmilor orientată către

descrierea progresivă a specificaţiilor ?

4.9. Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti, 2012

5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,

Editura Tribuna Economică, Bucureşti, 2004

6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi

practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002

7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,

Page 39: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

39

Bucureşti, 2003

8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA

VECHE, Bucureşti, 2004

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura

Economică, Bucureşti, 2000

3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 40: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

40

UNITATEA DE ÎNVĂŢARE 5. STRUCTURI FUNDAMENTALE DE PRELUCRARE (CONTROL)

CUPRINS

5.1. Obiective

5.2. Competenţele unităţii de învăţare

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 cunoştinţelor

5.8. Test de evaluare a cunoştinţelor

5.9. Bibliografie

5.1. Obiective

În această unitate de învățare 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 instrucţiunile prin care aceste structuri de prelucrare

(control) sunt reprezentate în programele elaborate (de exemplu în limbajul VBA).

5.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

Identificaţi structurile fundamentale de prelucrare (control) în care orice

algoritm se poate descompune pentru elaborarea programului de prelucrare.

Descompuneţi orice aplicaţie în structuri fundamentale de prelucrare (control)

pentru reprezentarea lor prin instrucţiuni în orice mediu de programare.

Reprezentaţi structurile fundamentale de prelucrare (control) prin instrucţiuni

specifice mediului de programare VBA.

Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.

5.3. Structuri fundamentale de control

Structurile de control reprezintă componentele programării structurate.

Programarea structurată este un stil de programare care se bazează pe

respectarea unei discipline de programare şi folosirea riguroasă a câtorva structuri de

calcul. Ca rezultat se va ajunge la un algoritm uşor de urmărit, clar şi corect.

Termenul programare nu este identic cu cel de programare propriu-zisă. Este

vorba de întreaga activitate depusă pentru obţinerea unui program, deci atât proiectarea

algoritmului cât şi traducerea acestuia în limbajul de programare ales.

Indiferent cât de complex ar fi un algoritm, s-a demonstrat matematic că acesta

poate fi descompus în structurile fundamentale de prelucrare (control) următoare:

• structura secvenţială;

• structura alternativă;

00:05

Page 41: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

41

• structura repetitivă.

Reprezentarea în schema logică:

a) structura

secvenţială

b) structura

alternativă

c) structura

repetitivă

Figura 5.1. Structurile fundamentale de control

Reprezentarea structurii secvenţiale

Structura secvenţială este o succesiune de operaţii care se execută

necondiţionat şi fără repetări, î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 selecţie

00:30

Page 42: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

42

normală (IF-THEN-ELSE)

Structura alternativă de tip selecţie normală (IF-THEN-ELSE) conţine un bloc

de decizie şi două secvenţe de operaţii, care se execută alternativ, după cum condiţia

logică este adevărată sau falsă.

Reprezentarea structurii alternative de tip selecţie

simplă (IF-THEN şi IF-ELSE)

În acest tip de structură alternativă secvenţa de operaţii este inclusă în ramura

introdusă de clauza THEN sau în ramura introdusă de clauza ELSE, după cum condiţia

logică are valoarea logică adevărat sau fals.

Reprezentarea structurii alternative de tip selecţie

multiplă (CASE-OF)

Structura alternativă de tip selecţie multiplă are o variabilă selector I şi o

mulţime finită de n secvenţe de operaţii 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 execuţia uneia din secvenţele Si, altfel se execută

secvenţa de operaţii 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 condiţie logică

Structurile repetitive cu condiţie logică conţin o secvenţă de operaţii care se

execută ciclic atât timp cât o condiţie logică este adevărată sau falsă. Condiţia logică

poate fi situată înainte de secvenţa de operaţii (varianta WHILE-DO) sau după această

secvenţa (varianta DO-UNTIL). Atunci când condiţia logică este falsă de la prima

testare, în varianta WHILE-DO nu se execută niciodată secvenţa de operaţii din

structură şi se încheie procesul ciclic, iar în varianta DO-UNTIL această secvenţă de

operaţii se execută o singură dată.

Structura repetitivă cu conditie iniţială

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

Page 43: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

43

Figura 5.3. Schema logica pentru structura repetitivă cu conditie iniţială

Structura repetitivă cu condiţie 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 condiţie finală

Reprezentarea structurii repetitive cu variabilă

de ciclare (DO-FOR)

Această structură conţine o secvenţă de operaţii ce se execută repetat până

rezultă un număr prestabilit de cicluri. Procesul repetitiv este controlat de o variabilă

de ciclare V, cu valoarea iniţială Vi, ce se modifică pe parcurs prin relaţia V=V+R şi

care este testată ciclic prin relaţia V >Vf. Acest proces se termină când este îndeplinită

condiţia V > Vf .

Cum este alcătuită structura repetitivă?

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

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

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

5.6 Rezumat

Page 44: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

44

Orice algoritm poate fi descompus în următoarele structuri fundamentale de

control:

– structura secvenţială;

– structura alternativă;

– structura repetitivă.

Structura secvenţială este o succesiune de operaţii care se execută

necondiţionat şi fără repetări, î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 condiţie iniţială 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 condiţie finală este de forma bloc de instructiuni, apoi

conditie.

5.7. Test de autoevaluare a cunoștințelor

(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 condiţie iniţială?

5. Cum este alcatuita structura repetitivă cu condiţie finală?

Răspunsuri:

1. Structurile fundamentale de control sunt următoarele:

• structura secvenţială;

• structura alternativă;

• structura repetitivă.

2. Structura secvenţială este o succesiune de operaţii care se execută necondiţionat

şi fără repetări, î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 condiţie iniţială 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 condiţie finală este de forma bloc de instructiuni, apoi

conditie.

01:30

Page 45: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

45

5.8. Test de evaluare a cunoștințelor

Ce diferenţă există între cele trei structuri de control ale unui algoritm?

Cum se numeşte forma grafică de reprezentare a algoritmilor alcătuită din

blocuri de operaţii legate prin săgeţi ?

Cum se numeşte forma de reprezentare a algoritmilor orientată către

descrierea progresivă a specificaţiilor ?

5.9. Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,

2012

5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,

Editura Tribuna Economică, Bucureşti, 2004

6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi

practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002

7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,

Bucureşti, 2003

8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA

VECHE, Bucureşti, 2004

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura

Economică, Bucureşti, 2000

3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 46: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

46

UNITATEA DE ÎNVĂŢARE 6. ETAPELE ELABORĂRII UNUI PROGRAM ÎNTR-UN MEDIU DE PROGRAMARE

CUPRINS

6.1. Obiective

6.2. Competenţele unităţii de învăţare

6.3. Principalele etape ale elaborării unui program într-un mediu de programare

6.4. Rezumat

6.5. Test de autoevaluare a cunoştinţelor

6.6. Test de evaluare a cunoştinţelor

6.7. Bibliografie

6.1. Obiective

În această unitate de învățare se vor prezenta principalele etape care trebuie parcurse

logic şi cronologic pentru elaborarea unui program în orice mediu de programare,

precum si operaţiile care trebuie efectuate în fiecare etapă pentru elaborarea unui

program în mediul VBA.

6.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

Parcurgeti principalele etape în ordinea lor logică şi cronologică în scopul

elaborării unui program în orice mediu de programare;

Efectuati operaţiile specifice fiecărei etape pentru elaborarea unui program în

mediul VBA.

Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.

6.3. Principalele etape ale elaborării unui program într-un mediu de programare

Elaborarea unui program în orice mediu de programare implică desfăşurarea

unor activităţi şi efectuarea unor operaţii, într-o ordine atât logică, cât şi cronologică,

care se pot grupa pe diferite etape şi tipuri de activităţi (operaţii).

Etapele principale şi activităţile (operaţiile) implicate sunt următoarele:

1. Definirea aplicaţiei de prelucrat (problemei de rezolvat). Este etapa în cadrul

căreia se stabileşte caracterul prelucrabil al aplicaţiei (problemei), adică posibilitatea

de efectuare cu calculatorul electronic. Orice aplicaţie sau problemă prelucrabilă se

poate defini direct, prin relaţii matematice sau descriptiv, prin propoziţii şi fraze.

Totodată, orice aplicaţie sau problemă prelucrabilă trebuie definită complet şi corect

00:05

Page 47: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

47

pentru a fi posibilă prelucrarea (rezolvarea) acesteia cu calculatorul electronic.

2. Analiza logică a aplicaţiei (problemei) definite anterior. În această etapă se

precizează care sunt şi sub ce formă se prezintă rezultatele (datele de ieşire) aşteptate

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

Explicaţi in ce consta etapa de „definire a problemei de rezolvat”. Dar etapa de

„analiza logică a aplicaţiei”?

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

3. Elaborarea algoritmului (algoritmilor) de efectuare a aplicaţiei (rezolvare

a problemei). Este etapa în care se precizează regulile necesare pentru efectuarea

operaţiilor de prelucrare implicate într-o ordine determinată. Ordinea de efectuare a

acestor operaţii este de obicei ordinea secvenţială, cu specificarea explicită a

modificării acestei ordini şi a altor cerinţe de prelucrare.

Algoritmii elaboraţi pot fi algoritmi de prelucrare sau de calcul şi/sau

combinaţii dintre un algoritm de prelucrare şi (sub)algoritmi de calcul. Prin aceşti

algoritmi se pun în evidenţă structurile fundamentale de prelucrare (de control), pe

baza cărora urmează să se contureze elaborarea ulterioară a programului pentru

efectuarea aplicaţiei (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

aplicaţiei.

În acest context, schema logică constituie o descriere mai explicită a

algoritmului, în special când 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 operaţiilor de prelucrare specificate de algoritmi.

Să ne reamintim...

Etapa de elaborare a algoritmului pune în evidenţă structurile fundamentale de de

control, pe baza cărora urmează să se contureze elaborarea ulterioară a programului

pentru efectuarea aplicaţiei.

00:40

Page 48: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

48

Avantajele etapei de stabilire a schemelor logice sunt urmatoarele:

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

5. Scrierea programului sub formă de text sursă. În această etapă se

concretizează toate activităţile desfăşurate în etapele anterioare sub formă de program

text sursă scris pe un formular de programare (tipizat sau netipizat) şi conţinând

instrucţiunile pentru codificarea specificaţiilor algoritmului (algoritmilor) aplicaţiei.

Elaborarea programului implică îndeplinirea unor cerinţe, printre care în mod

necesar sunt următoarele: 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 funcţie de specificul execuţiei instrucţiunilor, un astfel de program (monolit

sau modul) este alcătuit din trei părţi distincte:

▪ prima parte a programului, care conţine instrucţiuni pentru executarea operaţiilor

iniţiale, adică a acelor operaţii care se efectuează o singură dată la începutul

programului (ca de exemplu: instrucţiuni pentru declararea şi dimensionarea

variabilelor, reprezentând datele de intrare (de prelucrat), datele de ieşire (rezultatele

prelucrării) şi variabilele intermediare (de lucru); iniţializarea unor variabile;

deschiderea tabelelor (fişierelor) bază de date etc);

▪ a doua parte a programului, conţinând instrucţiuni pentru executarea operaţiilor

din corpul programului, adică a operaţiilor care sunt specifice fiecărei aplicaţii (ca de

exemplu: instrucţiuni de calcul, de atribuire, de control al structurilor fundamentale de

prelucrare etc);

▪ a treia parte a programului, care conţine instrucţiuni pentru executarea operaţiilor

finale, adică a acelor operaţii care se efectuează o singură dată la sfârşitul programului

(ca de exemplu: afişarea rezultatelor prelucrării şi/sau a unor mesaje specifice fiecărei

aplicaţii (pe ecran sau imprimantă), închiderea tabelelor (fişierelor) bază de date etc).

Să ne reamintim...

In etapa de scriere a programului se concretizează toate activităţile desfăşurate în

etapele anterioare sub formă de program text sursă scris pe un formular de

programare (tipizat sau netipizat) şi conţinând instrucţiunile pentru codificarea

specificaţiilor algoritmilor aplicaţiei.

6. Introducerea programului text sursă în memoria calculatorului. Este etapa

în care se editează programul elaborat în etapa anterioară, adică se introduc

instrucţiunile 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 corectări ale unor eventuale erori de tastare, pentru a evita apariţia

unor mesaje de erori de sintaxă în etapa următoare de lansare în execuţie a

programului.

7. Lansarea în execuţie a programului sursă editat anterior. În această

etapă utilizatorul poate proceda, în funcţie de versiunea (varianta) de limbaj (mediu)

de programare folosită, la execuţia programului sursă editat. De asemenea, în această

Page 49: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

49

etapă, utilizatorul poate să efectueze depanarea programului pentru eliminarea unor

eventuale erori de sintaxă şi de logică. Această etapă se consideră încheiată după

obţinerea rezultatelor (datelor de ieşire) aşteptate, folosind un volum redus de date

(date de probă).

In ce etapa se pot efectua corectări ale unor eventuale erori de tastare ?

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

8. Elaborarea documentaţiei finale a programului. Este etapa în care se

strâng împreună toate documentele care au rezultat din parcurgerea etapelor anterioare

şi se elaborează instrucţiunile 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 aplicaţiei sau rezolvarea problemei se

desfăşoară şi activităţile care sunt necesare pentru îmbunătăţirea performanţelor sau

adaptării permanente a programului la modificările survenite în domeniul de

provenienţă a aplicaţiei.

Procesul de elaborare a unui program în orice limbaj (mediu) de programare nu

este un proces continuu, care se desfăşoară fără întrerupere de la prima până la ultima

etapă, ci este un proces iterativ, care implică parcurgerea unei etape sau a mai multor

etape, apoi analiza activităţilor desfăşurate şi întoarcerea, dacă este cazul, pentru

îmbunătăţirea sau chiar refacerea unora dintre aceste activităţi.

In ce etapa se pot efectua activităţi pentru îmbunătăţirea performanţelor sau adaptării

permanente a programului la modificările aparute?

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

6.4. Rezumat

Principalele etape ale elaborării unui program într-un mediu de programare sunt:

- definirea problemei de rezolvat

- analiza logică a aplicaţiei

- 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 execuţie a programului sursă

- elaborarea documentaţiei finale a programului

- exploatarea curentă şi actualizarea ulterioară a programului

01:40

Page 50: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

50

6.5 Test de autoevaluare a cunoștințelor

(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 numeşte:

a. generalitate b. unicitate c. recursivitate d. iterativitate

2. Într-un algoritm numeric operaţia de decizie se poate simboliza printr-un operator:

a. de atribuire b. de comparare c. aritmetic d. de calcul

3. Operaţiile care se succed fără condiţii prestabilite de execuţie şi fără

repetări sunt în algoritmii:

a. cu orice structură b. cu structură alternativă

c. cu structură repetitivă d. cu structură secvenţială

4. Într-un algoritm numeric operaţia 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 operaţia de decizie cu operator de relaţie 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 execuţie a operaţiilor în algoritm defineşte:

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. săgeţi c. blocuri cu operaţii d. conectori de procedură

8. Operaţiile care se succed cu condiţii prestabilite de execuţie şi fără repetări sunt în

algoritmii:

a. cu orice structură b. cu structură alternativă

c. cu structură repetitivă d. cu structură secvenţială

9. Selecţia unei alternative de prelucrare, printr-o variabilă selector, se efectuează în

structura:

a. de tip selecţie simplă b. de tip selecţie normală

c. de tip selecţie multiplă d. repetitivă

10. Alternativa de execuţie vidă poate exista în structura fundamentală de prelucrare

(control):

a. de tip selecţie simplă b. de tip selecţie normală

c. de tip selecţie multiplă d. repetitivă

Răspunsurile corecte la întrebările 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 cunoștințelor

Page 51: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

51

În care etapă de elaborare a unui program se stabileşte caracterul prelucrabil

al aplicaţiei ?

Care sunt părţile distincte din care este alcătuit orice program în funcţie de

specificul execuţiei instrucţiunilor ?

Cum se numeşte şi în ce constă procesul de elaborare a unui program care

implică parcurgerea unei etape sau a mai multor etape şi analiza activităţilor

desfăşurate ?

6.7 Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,

2012

5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,

Editura Tribuna Economică, Bucureşti, 2004

6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi

practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002

7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,

Bucureşti, 2003

8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA

VECHE, Bucureşti, 2004

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura

Economică, Bucureşti, 2000

3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 52: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

52

UNITATEA DE ÎNVĂŢARE 7. ELEMENTE DE BAZĂ ALE MEDIULUI DE PROGRAMARE VBA

CUPRINS

7.1. Obiective

7.2. Competenţele unităţii de învăţare

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. Funcţii

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 cunoştinţelor 7.13. Test de evaluare a cunoştinţelor

7.14. Tema de cotrol

7.15. Bibliografie

7.1. Obiective

▪ Însuşirea şi folosirea corectă la elaborarea programelor a elementelor de bază

ale mediului de programare VBA;

▪ Cunoaşterea şi folosirea corectă, în programele VBA, a datelor şi structurilor

de date (constante, variabile, masive);

▪ Cunoaşterea şi folosirea corectă, în programele VBA, a operatorilor şi

expresiilor;

▪ Cunoaşterea şi folosirea corectă, în programele VBA, a funcţiilor şi

procedurilor;

▪ Cunoaşterea şi folosirea corectă, în programele VBA, a controalelor;

▪ Cunoaşterea şi folosirea corectă, în programele VBA, a fişierelor de date.

7.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

înţelegeti rolul datelor şi criteriilor de clasificare a acestora în programele

elaborate în mediul VBA;

folosiţi constantele şi variabilele în programele elaborate în mediul VBA;

folosiţi operatorii şi expresiile în programele elaborate în mediul VBA;

utilizaţi funcţiile şi procedurile în programele elaborate în mediul VBA;

utilizaţi controalele si sa prelucrati fişierele de date în programele elaborate în

mediul VBA.

Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.

Page 53: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

53

7.3. Date şi structuri de date. Clasificarea datelor

Date şi structuri de date

Datele constituie suportul formal al informaţiilor, un model de reprezentare a

informaţiilor la nivel fizic şi logic.

La nivel fizic unei date îi corespunde o zonă de memorie de o anumită mărime,

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ă proprietăţile informaţionale ale datei şi anume: tipul,

precizia de reprezentare internă, modul de alocare a memoriei (static, dinamic),

valoarea iniţială.

Clasificarea datelor

Datele se pot clasifica după diferite criterii şi anume:

● după gradul de complexitate:

▪ date elementare (scalare), care sunt definite ca entităţi indivizibile;

▪ colecţii de date, alcătuite dintr-o mulţime de date elementare între care se

stabilesc relaţii şi structuri;

● după tipul componentelor:

▪ date omogene, când toate componentele sunt de acelaşi tip;

▪ date eterogene, când componentele sunt de tipuri diferite;

● după modul de alocare a zonelor de memorie:

▪ date de tip static, care se declară explicit şi cărora se alocă zone de memorie

în timpul translatării programului;

▪ date de tip dinamic, cărora zonele de memorie se alocă în timpul execuţiei

programului;

● după modul de păstrare în zonele de memorie în timpul execuţiei

programului:

▪ constante, adică date care îşi păstrează aceeaşi valoare în timpul execuţiei

programului;

▪ variabile, adică date care îşi modifică valoarea în timpul execuţiei

programului.

Enumeraţi 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

Page 54: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

54

Applications, ca de exemplu:

◦ vb OK Only, care afişează numai butonul OK şi are valoarea 0;

◦ vb OK Cancel, care afişează 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 aplicaţiei;

▫ 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ă conţinutul în timpul executării 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 conţină caractere punct;

▫ să nu fie cuvînt rezervat.

Variabilele pot fi:

▪ variabile definite de utilizator (ca de exemplu: COD_MAT; DEN_MAT; STOC);

▪ variabile definite ca proprietăţi pentru fiecare din obiectele de pe formă (ca de

exemplu: variabile numerice (lungimea şi lăţimea 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 fără 1 octet 0 - 255

Boolean fără 2 octeţi Adevărat sau Fals

Integer % 2 octeţi -32768 şi 32767

Long & 4 octeţi -2147483 şi 147483647

Sinngle ! 4 octeţi -3.40E38 şi 3.40E38

Double # 8 octeţi -1.80E308 şi 1.80E308

Currency @ 8 octeţi -9.22E14 şi 9.22E14

Date fără 8 octeţi Ian 1.100 - Dec 31.999

Object fără 4 octeţi Adresa oricărui obiect

00:20

Page 55: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

55

String $ octet/caracter Max. 65500 octeţi

Variant fără după caz În funcţie de tip

User-Defined fără după caz În funcţie 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 ataşează un sufix, de exemplu %

VAL_PROD% = 25000

◦ dacă sufixul este omis, tipul variabilei se consi-deră Variant.

Declararea explicită. Se realizează cu instrucţiunea

DIM nume_variabilă AS tip_variabilă [lungime]

unde lungime este lungimea în octeţi 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 păstrează 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 opţiunea Module din meniul Insert sau din alte variante de VB,

00:30

Page 56: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

56

pentru a afişa 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ă instrucţiunea declarativă; de exemplu:

Dim Cod_mat As Integer

La nivel global variabilele declarate pot fi folosite de toate subprocedurile şi

funcţiile. Pentru a declara o variabilă la nivel global se procedează astfel:

a) se selectează opţiunea New Module din meniul File, după care apare

fereastra pentru scrierea instrucţiunilor;

b) se execută click pe caseta listă Proc şi se selec-tează Declaration;

c) se tastează instrucţiunile 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

combinaţii de tipuri predefinite (ca de exemplu: Byte, Integer, Single, Double, String

etc), conform sintaxei următoare:

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 excepţia tipului Object.

Tipurile de date definite de utilizator (User-Defined) se folosesc de regulă în

programele care prelucrează baze de date, când într-un articol se regăsesc câmpuri de

orice tip de date şi se declară în secţiunea General/Declaration a modulului de cod cu

ajutorul cuvintelor cheie Type şi End Type, fiind vizibile în orice parte a aplicaţiei.

Exemplu:

Type MATERIALE

Cod_mat As Integer

Den_mat As String*20

U_m As String

00:40

5

Page 57: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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 obişnuite,

fiecare având numele său propriu. În unele cazuri este mai avantajoasă folosirea unor

variabile multidimensionale, numite masive sau tablouri.

Masivul (tabloul) este o mulţime de elemente de acelaşi tip (omogene), astfel

alcătuită încât fiecărui element i se asociază un indice (o dată de tip scalar) care indică

poziţia elementului în masiv.

Pentru apariţie în programele VBA, masivul (tabloul) trebuie declarat, folosind

forma generală (sintaxă) următoare:

{Global/Dim/Static}nume_masiv

([indice_1 To]indice_max_1...)

[As tip_dată]

unde:

Global/Dim/Static – alocă memorie masivelor şi iniţi-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 instrucţiunea Option

Base;

indice_max j reprezintă valoarea maximă pentru dimensiunea j;

tip_dată este tipul de dată corespunzător; implicit acest tip este Variant.

Exemple:

DIM Vânzări (20)

DIM Tarife (10) As Integer

DIM Preţuri (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 Clienţi (1 TO 6)

Descrieţi sintaxa masivului în programele VBA:

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

7.6 Operatori şi expresii

Operatori

Semnele (caracterele prelucrabile speciale) folosite pentru marcarea operaţiilor

care se efectuează asupra datelor în programele VBA se numesc operatori.

În VBA operatorii sunt de patru feluri:

01:00

Page 58: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

58

◦ operatori aritmetice (numerici);

◦ operatori relaţionali (de comparare);

◦ operatori logici;

◦ operatori de concatenare.

Operatorii aritmetici sunt:

+ pentru adunare;

─ pentru scădere;

* pentru înmulţire;

/ pentru împărţire cu rezultat sub formă de număr fracţionar;

\ pentru împărţire cu rezultat sub formă de număr întreg;

MOD(MODULO) - pentru împărţire şi reţinerea numai a restului împărţirii;

^ pentru ridicarea la putere.

Ordinea de efectuare a operaţiilor aritmetice (evaluarea operatorilor aritmetici)

este cea naturală, adică:

◦ ridicarea la putere;

◦ înmulţirea şi împărţirea;

◦ adunarea şi scăderea.

Această ordine de prioritate se poate schimba prin folosirea parantezelor

rotunde. Astfel operaţiile incluse în aceste paranteze au prioritatea cea mai mare.

Operatorii relaţionali (de comparare) sunt:

< mai mic decât

> mai mare decât

= egal cu

< = mai mic decît şi egal cu

< = mai mare decât şi egal cu

< > diferit de

Operatorii logici sunt:

AND pentru înmulţire 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 operaţiilor 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

funcţiei Cstr (număr);

& pentru a forţa ca o variabilă să devină de tipul adecvat.

Expresii

O expresie este o construcţie tipică de limbaj alcătuită din operatori şi operanzi.

Ca operatori se pot folosi operatori aritmetici, opera-tori relaţionali, operatori

logici şi operatori de concatenare.

Ca operanzi se pot folosi constante, variabile, funcţii.

Page 59: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

59

În funcţie de natura operatorilor, expresiile pot fi:

◦ expresii aritmetice;

◦ expresii relaţionale;

◦ expresii logice;

◦ expresii pentru şiruri de caractere.

7.7 Funcţii

O funcţie este o prelucrare predefinită destinată pentru efectuarea unei operaţii

sau unor operaţii care returnează o valoare.

Forma generală (sintaxa) funcţiei este:

Rezultat = nume_funcţie ([listă_argumente])

unde:

nume_funcţie este identificatorul (numele) de apel al funcţiei;

listă_argumente este lista care conţine argumentele (parametri) funcţiei; dacă

sunt cel puţin două argumente, acestea se separă prin virgulă.

Mediul de programare VBA dispune de numeroase funcţii, dintre care

principalele categorii sunt:

◦ funcţii pentru dialog cu utilizatorul;

◦ funcţii matematice şi statistice;

◦ funcţii pentru şiruri de caractere

◦ funcţii de editare;

◦ funcţii financiare.

Funcţii pentru dialog cu utilizatorul

Funcţia InputBox( ). Este o funcţie folosită pentru afişarea într-o casetă de

dialog un mesaj_invitaţie, aşteptînd ca utilizatorul să introducă date de la tastatură,

apoi atribuie unei variabile o valoare de tip Variant sau String, în funcţie de forma

generală (sintaxa) folosită.

Forma generală (sintaxa) acestei funcţii 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_invitaţie care se adresează utilizatorului, fiind

singura opţiune obligatorie;

title este un text (un şir de caractere) care se afişează pe bara de titlu a casetei

de dialog;

default este un şir de caractere care reprezintă un răspuns prestabilit ce se va

afişa 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

poziţionarea afişării pe ecran a datelor tastate (faţă de colţul din stânga sus al

ecranului);

01:20

Page 60: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

60

helpfile, context sunt un şir de caractere, respectiv un întreg, fiind argumente

prin care se realizează asistenţa software pentru utilizatori.

Funcţia MsgBox( ). Este funcţia al cărei rol constă în afişarea pe ecran a unui

mesaj într-o casetă de dialog, specificând prin argumente titlul şi mesajul casetei şi

precizând tipul butoanelor afişate în fereastra casetei.

Forma generală (sintaxa) simplificată a acestei funcţii este:

MsgBox(prompt,[type],[title],[helpfile],[context])

unde:

prompt este un şir de caractere reprezentând mesajul care se afişează în caseta

de dialog, fiind singura opţiune obligatorie;

type este o expresie numerică care specifică numărul şi tipul butoanelor ce vor

fi afişate (OK, Cancel, Abort etc);

title este o expresie şir de caractere care se afişează pe bara de titlu a casetei de

dialog;

helpfile, context sunt opţiuni similare cu cele din funcţia InputBox( ).

În mediul VBA pe lângă funcţia MsgBox( ) există şi procedura MsgBox.

Funcţii matematice şi statistice

În VBA există diverse astfel de funcţii; 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ă rădăcina pătrată din expN;

INT (expN) - determină partea întreagă pentru expN.

Funcţii pentru şiruri de caractere

În VBA există o diversitate de funcţii 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ă spaţiile de la începutul şirului de caractere

specificat;

RTrim(exp_şir) - elimină spaţiile de la sfâşitul şirului

de caractere specificat;

Val(şir_caractere) - transformă şirul de caractere într-un număr;

Chr( ) - returnează caracterul corespunzător codului;

Asc( ) - returnează codul corespunzător caracterului.

Funcţii de editare

Format( ). Este folosită pentru afişarea unei expresii într-o formă dorită.

Exemplu:

…………………

…………………

Val = Cant * Preţ

Valoare = Format (Val,”###0.00”)

Print Valoare

Page 61: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

61

Funcţii financiare

DDB - calculează şi furnizează cota de amortizare a unui bun pe parcursul unei

perioade specificate;

FV - calculează şi redă valoarea viitoare a unei investiţii;

IPMT - calculează şi furnizează suma dobânzilor unei investiţii pentru o perioadă

dată;

IRR - calculează şi furnizează rata de rentabilitate internă a unei investiţii;

MIRR - similară cu IRR, dar fără a ţine seama de costu-rile de finanţare şi de

plusvaloarea de reinvestire;

NPER - calculează şi furnizează numărul plăţi pentru o investiţie dată;

NPV - calculează şi furnizează valoarea actuală a unei investiţii pe baza fluxurilor

financiare variabile;

PMT - calculează suma totală a fiecărei rambursări periodice;

PPMT - calculează partea vărsământului principal al unui împrumut pentru o

perioadă dată;

PV - calculează valoarea actuală a unei investiţii;

RATE - calculează rata dobânzii pe perioada unei investiţii 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.

Funcţii definite de utilizator

Definirea unei funcţii se realizează conform sintaxei:

[Static][Private]FUNCTION nume_funcţie

([listă_argumente])

secvenţă_instrucţiuni_1

[EXIT funcţie]

[secvenţă_instrucţiuni_2]

END FUNCTION

7.8 Proceduri

Mediul VBA conţine o serie de proceduri care sunt folosite pentru efectuarea unor

operaţii frecvent întâlnite în aplicaţii.

Procedurile se împart în :

◦ proceduri predefinite (încorporate);

◦ proceduri definite de utilizator.

Procedurile predefinite (încorporate)

Aceste proceduri se pot folosi de sine stătător (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 fişier FileCopy ”F1.dat”, “F2.dat”

Name Redenumeşte un fişier Name “F1.dat” As “F2.dat”

01:50

Page 62: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

62

Kill Şterge un fişier Kill “F1.dat”

Date Stabileşte data sistemului Date # Dec 10.1999#

MsgBox Afişează o informaţie MsgBox “Media”& media

Print Afişează pe fundal Print “Media =”& media

Procedura MsgBox. Afişează un mesaj într-o casetă de dialog fără a returna o

valoare.

Forma generală (sintaxa):

MsgBox(prompt,[type],[title],[helpfile],[context])

unde:

elementele de sintaxă (opţiunile) au aceeaşi semnificaţie ca la funcţia MsgBox, cu

deosebirea că opţiunea type descrie numărul şi tipul butoanelor din caseta de dialog,

tipul pictogramei, butoanele prestabilite şi modalitatea casetei.

Procedurile definite de utilizator

Sunt proceduri care conţin instrucţiuni introduse de utilizator pentru efectuarea

operaţiilor specifice aplicaţiilor acestora în scopul de a optimiza activitatea de

programare.

Forma generală (sintaxa) este:

[Static][Private] Sub nume_procedură

([listă-parametri])

secvenţă_instrucţiuni_1

[Exit Sub]

[secvenţă_instrucţiuni_2]

End sub

unde:

Static - precizează domeniul de vizibilitate al procedurii, atunci când se doreşte

păstrarea 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

cărora 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 ataşată unui obiect (ca de

exemplu: formă, buton de comandă, casetă de validare etc). Astfel, când se execută un

click pe obiectul formă se declanşează evenimentul click, urmat de lansarea automată

în execuţie a procedurii eveniment care-i corespunde.

O procedură eveniment poate fi lansată în execuţie şi în mod explicit (apelată

de către utilizator), caz în care evenimentul asociat nu are loc. Pentru fiecare tip de

obiect există un număr prestabilit de evenimente ce pot să apară.

Page 63: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

63

Deoarece la apariţia evenimentului procedura asociată este apelată automat,

acest tip de programare se numeşte “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 alcătuit din mai multe proceduri de tratare a

evenimentelor conţinute. Pentru a creşte calitatea programului se recomandă

împărţirea acestor proceduri în alte proceduri mai mici, pentru ca aplicaţia să fie mai

uşor de elaborat şi, după caz, de modificat.

Procedurile generale sunt rutine create de programator pentru a evita repetările

în procedurile de tratare a eveni-mentelor. Dacă mai multe astfel de proceduri conţin

aceleaşi instrucţiuni, atunci se recomandă folosirea procedurilor generale care să

conţină instrucţiunile comune.

Procedurile generale sunt lansate în execuţie explicit prin apelul lansat dintr-o

anumită parte a codului aplicaţiilor. 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 instrucţiunii 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ă:

Page 64: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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 alcătui interfaţa unei

aplicaţii, într-un număr limitat numai la capacitatea şi cerinţele aplicaţiei.

În aceste ferestre, denumite forme (forms) se pot introduce diferite elemente

vizibile de acţionare, denumite controale (controls).

Aceste controale se pot poziţiona, dimensiona şi aranja în fereastră (în pagină)

potrivit cerinţelor aplicaţiei şi opţiunii 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 opţiune (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 unităţi de disc (Drive list boxes);

▫ Liste de directori (Directory list boxes);

▫ Liste de fişiere (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

fişierele cu extensia .VBX.

Etichete (Labels). Eticheta este un obiect VBA folosit pentru:

▫ afişarea unui text într-o fereastră (form);

▫ identificarea altor obiecte.

Etichetele au diferite proprietăţi:

◦ Name - identifică obiectul într-o procedură (exemplu: lblEtichete);

◦ Caption - şir de caractere care se afişează pe obiect (exemplu: “Tastarea textului”);

02:10

Page 65: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

65

◦ Alignment - aliniază textul în cadrul unui context dat;

◦ BorderStyle - stabileşte tipul de chenar;

◦ Font - stabileşte corpul, stilul şi dimensiunea caracterelor;

◦ AutoSize şi WordWrap - stabileşte afişarea pe mai multe linii şi lungimi.

Casetele de text (Text boxes), denumite şi casete de editare, se folosesc pentru

afişarea informaţiilor furnizate în faza de editare sau introduse în timpul executării

procedurii.

Casetele de text au diferite proprietăţi:

◦ Name - identifică obiectul în procedură (exemplu: txtExamen);

◦ Border Style - stabileşte tipul de chenar;

◦ Font - stabileşte corpul, stilul şi dimensiunea caracterelor;

◦ Passwordchar - ascunde textul (exemplu: *);

◦ Tag - stochează informaţiile;

◦ MultiLine - afişează mai multe linii de text;

◦ Alignment - aliniază textul la: stănga, dreapta, centru;

◦ SelStart - stabileşte poziţia iniţială pentru selectarea textului;

◦ SelLenglh - stabileşte lungimea textului selectat.

Butoanele de opţiune (Option buttons). Butoanele de opţiune se folosesc

pentru a afişa opţiuni, care pot fi activate sau dezactivate prin stabilirea proprietăţii

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 opţiune, casete de validare).

Casetele de listă (List boxes). Casetele de listă se folosesc pentru a afişa liste

de articole din care utilizatorul poate selecta un articol sau mai multe articole.

Casetele combinate (ComboBox). Aceste casete sunt o combinaţie între

casetele de text (Text boxes) şi casetele cu listă, existând trei stiluri de casete

combinate, în funcţie de valoarea proprietăţii Style şi anume:

0 - casetă combinată derulantă care conţine o casetă cu listă derulantă şi o casetă

de text;

1 - casetă combinată simplă, care conţine o casetă de text şi o listă nederulantă;

2 - casetă cu listă derulantă, care permite doar selectarea din lista derulantă.

7.10 Lucrul cu fişiere de date în mediul VBA

Fişiere de date

Definiţia unui fişier de date. Fişierul de date este o colecţie (mulţime) de date

omogene ca natură şi cerinţe de prelucrare, înregistrate pe un suport tehnic de date, de

pe care calculatorul le poate “citi” (percepe) automat în procesul de prelucrare.

Pentru fişierele de date create în scopul prelucrării ulterioare, suportul tehnic de

date este un suport refolosibil (de regulă discul magnetic). În astfel de fişiere se pot

memora date numerice, texte şi informaţii diverse (imagini, sunete).

Operaţii de lucru cu fişiere de date

Deschiderea fişierelor. Lucrul cu un fişier de date implică, în primul rând,

validarea accesului la fişier, operaţie denumită deschiderea fişierului, care se

efectuează folosind comanda OPEN. Această comandă permite alocarea unei zone de

memorie tampon pentru operaţiile de intrare şi ieşire şi specifică modul de acces

02:30

Page 66: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

66

asociat acestei zone.

Comanda OPEN are forma generală (sintaxa):

OPEN nume_fişier FOR mod_deschidere

AS # număr_fişier LEN = expresie

unde:

nume_fişier este un şir de caractere care, pe lângă numele fişierului, poate să

conţină numele unui folder şi al unui disc; dacă fişierul nu există în momentul

deschiderii, acesta este creat implicit la execuţia comenzii OPEN;

mod_deschidere specifică modul în care va fi deschis fişierul;

# număr_fişier specifică numărul prin care fişierul poate fi identificat în

diferite situaţii de lucru, având mărimea cuprinsă între 1 şi 511;

expresie este un număr mai mic sau egal cu 32767.

Exemplu:

OPEN fisdat FOR APPEND AS #1

Închiderea fişierelor. După terminarea lucrului cu un fişier de date, acest fişier

trebuie închis, adică să se interzică accesul ulterior la fişier. Operaţia se efectuează cu

comanda CLOSE, care are forma generală (sintaxa):

CLOSE listă_numere_fişiere

unde:

listă_numere_fişiere specifică unul sau mai multe numere separate prin

virgulă; dacă nu se specifică această listă (opţiune), atunci se închid toate fişierele, iar

după execuţia instrucţiunii CLOSE asocierea dintre fişier şi numele acestuia se

încheie.

Exemple:

CLOSE

CLOSE #1

Exploatarea fişierelor în acces secvenţial. Această operaţie se execută atât la

crearea fişierului, cât şi la prelu-crarea ulterioară a acestuia şi constă în scrierea,

respectiv citirea a câte o înregistrare în/din fişier.

Scrierea unei înregistrări (articol) în fişier în acces secvenţial se efectuează cu

comanda PRINT #, care are forma generală (sintaxa) următoare:

PRINT #număr_fişier,listă_expresii

unde:

număr_fişier este numărul atribuit fişierului, care urmează să fie creat;

listă_expresii specifică expresia şir sau numerică, respectiv expresiile care se

scriu în fişier; pentru a scrie un articol vid după număr_fişier se specifică numai

virgulă.

Expresia poate fi, după caz, un titlu de tabel, un chenar sau un câmp 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 înregistrări (articol) din fişier în acces secvenţial se efectuează cu

comanda LINE INPUT #, care are forma generală (sintaxa) următoare:

Page 67: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

67

LINE INPUT #număr_fişier, nume_variabilă

unde:

număr_fişier este numărul atribuit fişierului;

nume_variabilă este o variabilă de tip şir.

Exemplu:

LINE INPUT #1,1

Execuţia comenzii LINE INPUT # are ca efect citirea din fişier a înregistrării

(articolului) caracter după caracter până la întâlnirea unui retur de car Chr(13) sau

secvenţei retur de car_salt la linie nouă Chr(13) + Chr(10).

Pentru exploatarea unui fişier în acces secvenţial este necesar ca în comanda

OPEN:

▪ la opţiunea mod_deschidere se poate specifica:

▫ APPEND pentru a adăuga articole (linii de caractere) la sfârşitul fişierului

existent;

▫ INPUT pentru citirea de articole (linii de caractere) din fişier;

▫ OUTPUT pentru crearea unui nou fişier.

Pentru exploatarea unui fişier în acces aleator (direct), la opţiunea

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 fişier folosind un număr

nou, fără a închide în prealabil copia deschisă anterior;

▫ APPEND sau OUTPUT trebuie mai întâi să se închidă fişierul pentru a fi ulterior

redeschis cu un alt număr.

Când se lucrează cu mai multe fişiere simultan, în opţiunea #număr_fişier din

comanda OPEN trebuie să se folosească funcţia FREEFILE care returnează următorul

număr de fişier, pentru a evita folosirea aceluiaşi număr.

Exploatarea fişierelor în acces aleator (direct). Această operaţie se execută,

atât la crearea fişierelor, cât şi la prelucrarea ulterioară a acestora şi constă în scrierea

în fişier sub formă de articole de lungime fixă, respectiv citirea unui articol fără a

parcurge articolele precedente din fişier.

La deschiderea unui fişier în acces aleator (direct), în comanda OPEN trebuie

să se precizeze lungimea articolului.

Scrierea unui articol în fişier în acces aleator se efectuează cu comanda PUT #

care are forma generală (sintaxa) următoare:

PUT [#]număr_fişier,număr_articol,nume_variabilă

unde

număr_fişier este numărul fişierului care se crează;

număr_articol este numărul articolului care înmulţit cu lungimea articolului

determină poziţia scrierii;

nume_variabilă este numele variabilei care conţine datele ce urmează să fie

scrise.

Exemplu:

Page 68: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

68

PUT # 2, nr, mat

Citirea unui articol din fişier în acces aleator se efec-tuează cu comanda GET

#, care are forma generală (sintaxa) următoare:

GET[#]număr_fişier,număr_articol,nume_variabilă

unde:

număr_fişier este numărul fişierului care se citeşte;

număr_articol este numărul articolului care înmulţit cu lungimea articolului

determină poziţia citirii;

nume_variabilă este numele variabilei care conţine datele ce urmează să fie

citite.

Exemplu:

GET # 2, nr, mat

Să ne reamintim...

Fişierul de date este o colecţie (mulţime) de date omogene ca natură şi cerinţe 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 informaţiilor, un model de reprezentare a

informaţiilor la nivel fizic şi logic.

La nivel fizic unei date îi corespunde o zonă de memorie de o anumită mărime,

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ă proprietăţile informaţionale ale datei şi anume:

tipul, precizia de reprezentare internă, modul de alocare a memoriei

(static, dinamic), valoarea iniţială.

În mediul de programare VBA, variabila este o zonă de memorie care îşi

modifică conţinutul în timpul executării programului.

Semnele (caracterele prelucrabile speciale) folosite pentru marcarea operaţiilor

care se efectuează asupra datelor în programele VBA se numesc operatori.

O funcţie este o prelucrare predefinită destinată pentru efectuarea unei operaţii

sau unor operaţii care returnează o valoare.

Procedurile in VBA se împart în :

◦ proceduri predefinite (încorporate);

◦ proceduri definite de utilizator.

Fişierul de date este o colecţie (mulţime) de date omogene ca natură şi cerinţe

de prelucrare, înregistrate pe un suport tehnic de date, de pe care calculatorul

le poate “citi” (percepe) automat în procesul de prelucrare.

02:55

Page 69: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

69

7.12. Test de autoevaluare a cunoștințelor

(timp necesar : 20 minute)

1. O construcţie tipică de limbaj VBA alcătuită din operatori şi operanzi se numeşte:

a. expresie b. funcţie c. procedură d. parametru

2. În mediul VBA proprietăţile informaţionale ale unei date sunt:

a. atribute b. valori c. structuri d. colecţii

3. Prelucrarea predefinită destinată pentru efectuarea unei operaţii (unor operaţii)

care returnează o valoare se numeşte:

a. expresie b. funcţie c. procedură d. modul

4. Caracterele speciale folosite pentru marcarea operaţiilor în programele elaborate

în mediul VBA se numesc:

a. argumente b. funcţii 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 numeşte:

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 ataşarea 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 găsesc în instrucţiunea:

a. IF…END IF b. SELECT CASE…END SELECT

c. FOR…NEXT d. WHILE…WEND

9. Locul unde se declară o variabilă, adică zona de program unde variabila este

vizibilă se numeşte:

a. şir b. modul c. masiv d. domeniu

10. În VBA variabilele multidimensionale sunt denumite:

a. masive (tablouri) b. structuri de date

c. colecţii de date d. date omogene

Răspunsurile corecte la întrebările 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 cunoștințelor

▪ Ce se înţelege 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 execuţiei programelor VBA ?

Page 70: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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 funcţii ş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 înţelege prin controale şi cum se folosesc în cadrul programelor VBA ?

▪ Ce fel de fişiere de date cunoasteti şi cum se folosesc în programele elaborate în

mediul VBA?

7.14. Teme de control

▪ Se consideră două şiruri de numere reprezentând preţul unitar, respectiv cantitatea

vândută pentru 12 mărfuri dintr-un magazin. Se cere să se elaboreze o procedură de tip

funcţie în mediul de programare VBA pentru calcularea valorii totale a vânzărilor.

▪ Se consideră un şir de numere care reprezintă valoarea stocurilor de mărfuri 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 reprezentând preţul unitar al unor produse dintr-un

magazin. Se cere să se elaboreze o procedură VBA pentru calcularea preţului mediu,

ştiind că nu se cunoaşte câte numere sunt în şir.

▪ Se consideră un şir de numere reprezentând preţul unitar pentru N mărfuri dintr-un

magazin. Se cere să se elaboreze o procedură VBA pentru a determina care este preţul

unitar cel mai mare, ştiind că N este cunoscut.

▪ Studiu comparativ privind posibilităţile de exploatare ale fişierelor cu acces

secvenţial şi cu acces direct în mediul de programare VBA.

7.15. Bibliografie

I. Bibliografie obligatorie

1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro

Universitaria, Bucureşti, 2012

2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,

Bucureşti, 2010

3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,

Editura InfoMega, Bucureşti, 2012

4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft

Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,

2012

II. Bibliografie facultativă

1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura

CURTEA VECHE, Bucureşti, 2003

2. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura

CISON, Bucureşti, 2002

Page 71: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

71

UNITATEA DE ÎNVĂŢARE 8. PROGRAME ELABORATE ÎN MEDIUL DE PROGRAMARE VBA

CUPRINS

8.1. Obiective

8.2. Competenţele unităţii de învăţare

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 învățare se vor prezenta programe elaborate pentru a rezolva

câteva probleme propuse pentru exemplificarea modului de lucru în mediul de

programare VBA –Visual Basic Applications.

8.2. Competenţele unităţii de învăţare

După parcurgerea unităţii veţi fi în măsură să:

Elaborati programe pentru rezolvarea aplicatilor in mediul de programare

VBA;

Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.

8.3. Programul 1

'Problema propusa spre rezolvare

'Sa se realizeze un program care calculeaza Salariul net al unei persoane

'luând î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

Page 72: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

Page 73: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

Page 74: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

Page 75: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

Page 76: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

Page 77: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

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

Page 78: 352 Curs ID Programarea VBA 2013 Final Postat Elis ZI 5343

78