Sunteți pe pagina 1din 78

Programarea calculatoarelor

Visual Basic for Applications (VBA)


- suport de curs -

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

Obiectivele cursului Obiectul suportului de curs const n nsuirea cunotinelor de baz privind programarea calculatoarelor i formarea deprinderilor practice necesare pentru elaborarea de programe, pe exemplul mediului de programare Visual Basic for Applications (VBA). Obiectivele principale ale suportului de curs sunt: nsuirea temeinic a noiunilor fundamentale privind programarea calculatoarelor, n particular ale celor aparinnd ultimei generaii de medii de programare; formarea deprinderilor practice necesare pentru elaborarea contextual i general a programelor pentru efectuarea de aplicaii din domeniul economic; cunoaterea temeinic a logicii programrii ca o condiie necesar pentru elaborarea corect a programelor, conform regulilor de sintax i de punctuaie ale mediilor de programare; dobndirea unei viziuni de ansamblu asupra teoriei i practicii in domeniul programarii calculatoarelor. Suportul de curs este structurat pe trei module, fiecare modul coninnd, n funcie de problematica abordat, unitati de invatare specifice. Competene conferite Capacitatea de alegere a facilitilor mediului de programare VBA n funcie de domeniul de activitate din care provin aplicaiile, de specificul acestora i de cerinele i exigenele utilizatorilor. Capacitatea de nelegere a modului n care cunoaterea conceptelor i a noiunilor fundamentale privind prelucrarea datelor cu mediul de programare VBA poate s contribuie la nsuirea corect a altor concepte i noiuni legate de programarea calculatoarelor; Capacitatea de a elabora programe n mediul de programare VBA.

Resurse i mijloace de lucru Pentru parcurgerea acestui curs va fi nevoie de utilizarea Sistemului de Gestiune a Bazelor de Date Microsoft ACCESS 2010, care este parte a pachetului software integrat MICROSOFT OFFICE 2010. Structura cursului Suportul de curs este structurat pe trei module astfel: Modulul I este un modul de prezentare teoretic i metodologic a problematicii abordate, coninnd unitatile de invatare: Unitatea 1. Noiunile de instruciune, program, limbaj de programare i metalimbaj; Unitatea 2. Tehnici de programare i exploatare a calculatoarelor electronice; Modulul II este un modul de abordare i tratare a logicii programrii calculatoarelor, 3

coninnd unitatile de invatare: Unitatea 3. Algoritmi i algoritmizarea aplicaiilor; Unitatea 4. Reprezentarea (descrierea) algoritmilor i forme de reprezentare; Unitatea 5. Structuri fundamentale de prelucrare (control); Unitatea 6. Etapele elaborrii unui program ntr-un mediu de programare; Modulul III este un modul de abordare a mediului de programare Visual Basic for Applications (VBA) i tratare practic a elaborrii programelor n acest mediu de programare, coninnd capitolele: Unitatea 7. Elemente de baz ale mediului de programare VBA; Unitatea 8. Programe elaborate n mediul de programare VBA. Cerine preliminare Pentru nelegerea conceptelor i noiunilor prezentate n acest curs i pentru a le aplica eficient n practic este necesar parcurgerea n prealabil a cursului de Bazele Tehnologiei Informaiei din anul I de studiu. Discipline deservite Pe baza cunotinelor dobndite n cadrul disciplinei curente studenii vor fi capabili s urmeze cursurile de Sisteme informatice financiar-bancare, Sisteme informatice de gestiune, Sisteme informatice in marketing, Informatica n afaceri, Comer electronic.

Durata medie de studiu individual Timpul mediu necesar parcurgerii unei Uniti de nvare este 2-3 ore.

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

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

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

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


CUPRINS

1.1. Obiective 1.2. Competenele unitii de nvare 1.3. Programarea calculatoarelor 1.4. Limbaj de programare i metalimbaj 1.5. Limbaj i sistem de programare 1.6. Evoluia limbajelor de programare 1.7. Clasificarea limbajelor de programare 1.8. Rezumat 1.9. Test de autoevaluare a cunotinelor 1.10. Tem de control 1.11. Bibliografie 1.1. Obiective n aceast prim unitate de nvare se vor prezenta noiunile asociate logic: instruciune-program-limbaj de programare n contextul desfurrii activitilor de programare. Tot n cadrul acestei unitti de nvare vom prezenta elementele unui sistem de programare i interaciunile dintre aceste elemente n procesul de elaborare a programelor. 1.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: folositi structurile formalizate de metalimbaj pentru elaborarea de programe ntr-un limbaj de programare; explicai regulile sintactice i de punctuaie specifice unui limbaj de programare n funcie de natura aplicaiilor informatice; identificai corespunztor posibilitile de exploatare ale limbajelor de programare n activitatea de elaborare a programelor. Durata de parcurgere a primei uniti de nvare este de 3 ore.

1.3. Programarea calculatoarelor Noiuni generale n prelucrarea automat a datelor (PAD) programarea calculatoarelor este o noiune fundamental, fiind n strns corelaie cu alte noiuni de baz din acest domeniu, cum sunt noiunile de: algoritm, limbaj de programare, program. Pentru prelucrarea datelor, fr intervenia utilizatorului n desfurarea acestui proces, calculatorul electronic necesit, pe lng datele de prelucrat, un ansamblu de comenzi, care s-i indice acestuia, ce operaii trebuie s execute pentru a obine rezultatele ateptate de utilizator. Ansamblul acestor comenzi reprezint o descriere a procesului de prelucrare a datelor complet i fr ambiguiti, definind toate aciunile calculatorului electronic n orice caz particular al aplicaiei de efectuat. O astfel de descriere este denumit descriere algoritmic, deoarece fr alte informaii suplimentare, calculatorul poate s efectueze toate operaiile de prelucrare, furniznd rezultatele ateptate de utilizator. Descrierea algoritmic a acestui proces de prelucrare, dup care calculatorul se conduce n efectuarea unei aplicaii, este denumit program. Deci, programul este o exprimare a procesului de prelucrare automat, care indic operaiile pe care calculatorul trebuie s le execute, astfel nct din datele de prelucrat (iniiale) s obin rezultatele ateptate (finale). n orice program, ordinul primit de calculator pentru a efectua o aciune determinat (ca de exemplu: o operaie de calcul, o operaie logic etc) se numete instruciune (comand). Elaborarea unui astfel de program necesit folosirea unui mijloc de comunicare ntre utilizator i calculator, nct toate specificaiile din program (instruciunile), s poat fi nelese de calculator. Acest mijloc de comunicare, dintre utilizator i calculator, este denumit limbaj de programare. Stabilirea metodelor corespunztoare pentru efectuarea aplicaiilor de prelucrare a datelor, analiza logic a procesului de prelucrare, planificarea efecturii operaiilor de prelucrare i verificarea rezultatelor obnute constituie, n general, obiectul programrii calculatoarelor electronice. Definii noiunile: algoritm, limbaj de programare, program. .................................................................................................................................... .................................................................................................................................... ................................................................................................................................... 1.4. Limbaj de programare i metalimbaj Limbaj de programare n sens lingvistic, prin limbaj se nelege un sistem de comunicare specific oamenilor alctuit din sunete articulate, prin care oamenii i pot exprima gndurile, sentimentele i dorinele. Acest sens precizeaz caracterul natural al acestui sistem folosit de oameni i aflat ntr-o continu dezvoltare. Odat cu dezvoltarea limbajului natural a aprut i limbajul artificial. Acesta a fost creat n mod intenionat de oameni, pentru realizarea comunicrii ntr-unul sau altul din domeniile de activitate uman. Acest tip de limbaj este dotat cu posibilitatea emiterii i recepionrii formelor de 8

00:05

00:20

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

specific operaiile de executat pe o structur de date. Pragmatica reglementeaz modalitile de folosire practic a vocabularului, cuvintelor, instruciunilor, n general, construciilor limbajului de programare. Avnd n vedere cele prezentate anterior, limbajul de programare se poate defini ca fiind un ansamblu (o mulime) de simboluri, reguli de formare a instruciunilor, reguli de punctuaie, semnificaii atribuite instruciunilor i modaliti de utilizare practic a acestora n activitatea de elaborare a programelor pentru prelucrarea automat a datelor. Metalimbaj Pentru ca programele s nu conin erori de sintax este necesar ca regulile unui limbaj (sintactice i de punctuaie) s fie cunoscute i folosite corect. n acest context, au fost elaborate structuri formalizate care cuprind toate instruciunile unui limbaj de programare, prezentate ntr-o form care permite respectarea regulilor sintactice i a celor de punctuaie. Astfel de structuri formalizate alctuiesc metalimbajul fiecrui limbaj de programare, un instrument sintetic, sistematizat i simplificat de folosire n mod practic a oricrui limbaj de programare n activitatea de elaborare a programelor de prelucrare automat a datelor pentru efectuarea de aplicaii. n concluzie, metalimbajul este un limbaj folosit pentru descrierea altor limbaje. Ca atare, aceast noiune este general deoarece poate desemna orice notaie formal, eventual chiar un limbaj natural. De asemenea, aceast noiune este relativ deoarece metalimbajul este el nsui un limbaj care trebuie definit, ceea ce implic existena unui metalimbaj. S ne reamintim... Limbajul de programare se poate defini ca fiind un ansamblu (o mulime) de simboluri, reguli de formare a instruciunilor, reguli de punctuaie, semnificaii atribuite instruciunilor i modaliti de utilizare practic a acestora n activitatea de elaborare a programelor pentru prelucrarea automat a datelor. Metalimbajul este un limbaj folosit pentru descrierea altor limbaje. 1.5. Limbaj i sistem de programare Niveluri de limbaj de programare Pentru ca un program s poat fi executat pe orice tip de calculator electronic, trebuie ca programul s fie transmis calculatorului respectiv pe nelesul acestuia, adic n limbajul su propriu, denumit limbaj cod-main. Acest limbaj este dificil de nvat i utilizat deoarece: limbajul cod-main folosete cifrele binare, programele au un caracter abstract i neinteligibil, iar dimensiunea mare a programelor rezultate face foarte laborios acest mod de lucru; fiecare calculator electronic dispune de un limbaj cod-main propriu, ceea ce constituie un mare dezavantaj pentru programatori, deoarece programatorul trebuie s cunoasc, n acest caz, fiecare limbaj n parte; folosirea limbajelor cod-main poate fi un obstacol n extinderea domeniilor de folosire a calculatorului i realizarea portabilitii programelor pentru diferite tipuri de aplicaii. Aceste motive au determinat, ca nc din perioada primei generaii de 10

00:40

00:50

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

urmtoarele: creterea operativitii activitii de programare, rezultat din conciziunea limbajelor de nivel nalt fa de cele de nivel sczut, ceea ce conduce la scurtarea programelor; uurina depanrii programelor care rezult din evidenierea greelilor de sintax i din posibilitatea corectrii facile a acestora; eficiena programului obiect, care rezultat din abilitatea programatorului de a folosi ct mai bine performanele calculatorului electronic; eficiena folosirii memoriei calculatorului electronic, care poate s determine viteza de execuie a programului, asigurat de translator (compilator sau interpretor), eventual fr nici o intervenie din partea programatorului; uurina nvrii programrii, care duce la economisirea timpului pentru a deprinde modul de lucru cu un anumit limbaj de programare. S ne reamintim... Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma unei succesiuni de comenzi (instruciuni), executate ntr-o anumit ordine, stabilit de programator. Datorit acestor caracteristici, aceste limbaje sunt cunoscute i sub denumirea de limbaje algoritmice. 1.6. Evolutia limbajelor de programare De la construirea primului calculator electronic Mark 1 n anul 1944 de ctre firma IBM n colaborare cu Universitatea Harvard i pn n prezent, limbajele de programare au evoluat ntr-un ritm deosebit de spectaculos. Apariia i dezvoltarea rapid a limbajelor de programare s-a aflat n strns legtur cu evoluia caracteristicilor constructive ale calculatoarelor. n evoluia software-ului s-au succedat mai multe etape. Prima perioad, situat ntre 1944 i 1950, este perioada de nceput n exploatarea limitat a calculatoarelor electronice i n activitatea de elaborare a programamelor pentru efectuarea de aplicaii din cteva domenii de activitate. Limbajele utilizate erau de tip cod-main, iar programarea reprezenta un efort mare pentru un grup restrns de specialiti. A doua perioad, cuprins ntre anii 19501959 se caracterizeaz prin apariia limbajelor de programare automat i a sistemelor de programare. Apar limbajele de asamblare i spre sfritul perioadei limbajele de programare evoluate, denumite limbaje de programare de nivel nalt (FORTRAN, ALGOL, COBOL i LISP). Limbajul FORTRAN (FORmula TRANslation), aprut n 1956, a fost destinat rezolvrii unor aplicaii din domeniul tehnico-tiinific. Limbajul ALGOL (ALGOrithmic Language), aprut n 1958, a fost elaborat pentru rezolvarea de probleme matematice, fiind un limbaj cu structuri logice apropiate de modul de scriere a formulelor matematice. Limbajul COBOL (COmmon Business Oriented Language), aprut n 1959, a fost elaborat pentru efectuarea de aplicaii economice, avnd faciliti pentru organizarea datelor n fiiere, cu un volum mare de date. Limbajul LISP (LISt Processing), aprut n anul 1958, a fost elaborat ca un limbaj conversaional destinat pentru prelucrarea de liste, folosind modele logicomatematice. A treia perioad, dintre anii 19601969, este marcat de preocuparea pentru elaborarea i dezvoltarea unui limbaj de programare universal care s ntruneasc 12

01:20

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

13 01:50

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

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

15

02:40

1.8. Rezumat Programul este o exprimare a procesului de prelucrare automat, care indic operaiile pe care calculatorul trebuie s le execute, astfel nct din datele de prelucrat (iniiale) s obin rezultatele ateptate (finale). n orice program, ordinul primit de calculator pentru a efectua o aciune determinat (ca de exemplu: o operaie de calcul, o operaie logic etc.) se numete instruciune (comand). Mijlocul de comunicare dintre utilizator i calculator este denumit limbaj de programare. Orice limbaj de programare se poate caracteriza prin elementele specifice limbajului natural: alfabet, vocabular, gramatic, punctuaie, semantic, pragmatic . Metalimbajul este un limbaj folosit pentru descrierea altor limbaje. Limbajul intern al unui calculator se numete limbaj main (cod main). Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma unei succesiuni de comenzi (instruciuni), executate ntr-o anumit ordine, stabilit de programator. 1.9. Test de autoevaluare a cunotinelor (timp necesar: 20 min.) 1) 2) 3) 4) 5) 6) Cum se caracterizeaza un limbaj de programare? Cum se numete limbajul intern al calculatorului? Ce reprezinta un program surs? Ce rol are compilatorul? Cum se clasifica SGBD-urile n funcie de modul de organizare a datelor ? Ce intelegeti prin medii de programare?

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

16

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

17

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


CUPRINS

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

2.1. Obiective n aceast unitate de nvare se vor prezenta noiunile de programare i de exploatare a calculatoarelor, precum i modul de folosire a tehnicilor de programare n activitatea de elaborare a programelor. 2.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: Utilizai tehnicile avansate n activitatea de elaborare a programelor; Identificai metoda eficient de lucru folosit n scopul elaborarii unui program; Utilizai corect regulile sintactice i de punctuaie specifice unui limbaj de programare n funcie de natura aplicaiilor informatice. Durata de parcurgere a acestei uniti de nvare este de 2 ore. 2.3. Tehnici de exploatare a sistemelor de calcul Pentru a prezenta tehnicile de programare este necesar, ca n prealabil, s se defineasc unele noiuni legate de tehnicile de exploatare a sistemelor de calcul. Odat cu dezvoltarea tehnologiilor de fabricaie a componentelor fizice ale calculatoarelor electronice s-au creat premizele perfecionrii tehnicilor de exploatare ale acestora, prin intermediul unor noi componente software, capabile s foloseasc eficient resursele hardware. Tehnicile utilizate pentru execuia programelor au n vedere att algoritmii de reprezentare i gradul de utilizare a resurselor sistemului de calcul, ct i modul n care sunt realizate obiectivele sistemului de operare, n condiiile de cretere a eficienei de exploatare a sistemelor de calcul. Urmtoarele noiuni sunt legate de modul de exploatare a sistemelor de calcul: monoprogramming; multiprogramming; time-sharing; real-time system. 18

00:05

Monoprogramming (monoprogramarea) reprezint tehnica n care execuia programelor este realizat n modul de operare batch (pe loturi), n care un singur program, cel ce se execut, beneficiaz de toate resursele sistemului de calcul. Intrarea n sistem a programelor se face secvenial, ceea ce nseamn c un program nu poate intra n sistem, dect dup ce programul anterior i-a terminat execuia. S ne reamintim... Monoprogramarea reprezint un mod de exploatare a sistemelor de calcul prin executarea serial a programelor. Multiprogramming (multiprogramarea) reprezint tehnica n care mai multe programe (task-uri) sunt rulate simultan, resursele sistemului de calcul fiind comutate de la un program la altul, n funcie de prioritile unitii centrale de prelucrare. Aceasta nseamn c n acelai interval de timp, mai multe programe sunt ncrcate n memoria calculatorului, accesul fiecrui program la resurse fiind impus de ctre unitatea central. Aceast tehnic, privind ncrcarea simultan a mai multor programe, care folosesc partajat unitatea central de prelucrare, este considerat execuie concurent i are ca obiectiv mrirea gradului de ocupare a unitii centrale. Este ns necesar s se fac distincie ntre multiprogramare i multiprelucrare. Atunci cnd mai multe programe ocup n acelai timp memoria calculatorului i i partajeaz resursele, exploaterea unui sistem de calcul este n multiprogramare, iar cnd ntr-un sistem de calcul exist mai multe procesoare, exploatarea sistemului de calcul este n multiprelucrare (multiprocessing). Ca atare, multiprogramarea este un concept software, iar multiprelucrarea este un concept hardware. Care este diferena dintre multiprogramare i multiprelucrare ? ................... ................... Timesharing (execuia programelor prin divizarea timpului) este tehnica de exploatare, caracterizat de folosirea concurent a resurselor unui sistem de calcul, de ctre mai muli utilizatori, prin intermediul terminalelor plasate local sau la distan. Aceast tehnic este, prin nsi natura sa, o tehnic de lucru conversaional i const n comutarea sau multiplexarea resurselor de timp ntre utilizatori. Termenul de multiplexare, provenit din telecomunicai, semnific partajarea resurselor sistem, astfel nct s se creeze efectul de folosire simultan a resurselor, de mai muli utilizatori. Dac n cazul multiprogramrii, obiectivul central este creterea gradului de ocupare al unitii centrale, timpul de rspuns neconstituind un obiectiv major, n cazul tehnicii time-sharing, unitatea central este partajat pe baz de cerere, prioritatea fiind optimizarea timpului de rspuns al sistemului de calcul. Notiunea de timesharing reprezint: 19

00:30

................... ................... Realtime system (sistem de calcul n timp real) este sistemul n care timpul de rspuns, rezultat n urma execuiei calculelor i a celorlalte operaii, este suficient de mic, nct poate controla procesele ce se desfoar n cadrul sistemului respectiv. Analiza unui sistem care opereaz n timp real se poate face din mai multe puncte de vedere: hardware, software, programare, testare, depanare i utilizare. Sistemele de calcul care opereaz n timp real au un timp de rspuns foarte mic pentru a nu se perturba procesele controlate. Un exemplu de astfel de sisteme sunt sistemele care controleaz desfurarea proceselor tehnologice. Notiunea de real-time system reprezint: ....... ....... Analiza eficienei exploatrii sistemelor de calcul se poate efectua din mai multe puncte de vedere, printre care cele mai importante se refer la: performanele tehnice ale echipamentelor de prelucrare automat a datelor; tehnicile folosite n exploaterea sistemelor de calcul; tehnicile folosite pentru realizarea programelor n scopul efecturii de aplicaii. Analiza eficienei exploatrii sistemelor de calcul se refer la ? ...................

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

01:30

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 (taskuri) sunt rulate simultan, resursele sistemului de calcul fiind comutate de la un program la altul, n funcie de prioritile unitii centrale de prelucrare. Timesharing (execuia programelor prin divizarea timpului) este tehnica de exploatare, caracterizat de folosirea concurent a resurselor unui sistem de calcul, de ctre mai muli utilizatori, prin intermediul terminalelor plasate local sau la distan. 20

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

2.5. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Suportul formal al informaiilor, modelul de reprezentare a informaiilor la nivel fizic i logic sunt: a. structurile a.organizat b. datele c. comenzile d. instruciunile c.sistematizat d.algoritmizat 2. Pentru efectuarea oricrei aplicaii cu ajutorul calculatorului este necesar s fie: b.structurat 3. Limbajul de programare cel mai apropiat de limbajul natural se numete: a.limbaj pseudocod c.limbaj neprocedural b.limbaj procedural d.limbaj algoritmic

4. Reprezentarea procesului de prelucrare automat a datelor complet i fr ambiguiti se numete: a. procesare b. evaluare c. reprezentare d. descriere algoritmic 5. Descrierea algoritmic procesului de prelucrare, dup care calculatorul poate efectua orice aplicaie, este denumit: a. algoritm b. program c. instruciune d. comand 6. n orice program, ordinul primit de calculator de a efectua o aciune determinat se numete: a. instruciune b. codificare c. operaie d. aplicaie 7. Forma de reprezentare a comunicrii dintre utilizator i calculator se numete: a. limbaj natural b. limbaj artificial c. limbaj de programare d. intruciune 8. Mulimea simbolurilor care sunt folosite ntr-un limbaj de programare se numete: a. instruciune b. program c. alfabet d. vocabular 9. Ansamblul regulilor de formare a instruciunilor n cadrul limbajelor de programare se numete: a. alfabet b. vocabular c. sintax d. semantic 10. Limbajele care fac saltul de la modul cum se rezolv la ceea ce se dorete prin rezolvarea problemei se numesc limbaje: a. algoritmice b. de nivel nalt c. procedurale d. neprocedurale

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

9c

10 d

21

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

2.7. Teme de control a) Realizai un studiu comparativ privind posibilitile de folosire ale limbajelor de programare n funcie de nivelul situat fa de limbajul n cod-main. b) Alctuii un scurt referat cu tema: Modul de alegere a unui limbaj de programare n funcie de domeniile de folosire, specificul aplicaiilor i particularitile limbajelor de programare. c) Alctuii un scurt referat cu tema: Influena exercitat de ctre caracteristicile mediilor de programare asupra activitiilor de elaborare a programelor, n funcie de specificul aplicaiilor. 2.8. Bibliografie I. Bibliografie obligatorie 1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro Universitaria, Bucureti, 2012 2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria, Bucureti, 2010 3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access, Editura InfoMega, Bucureti, 2012 4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti, 2012 5. Surcel T. i colectiv Medii de programare pentru gestiunea bazelor de date, Editura Tribuna Economic, Bucureti, 2004 6. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i 22

practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002 7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON, Bucureti, 2003 8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura CURTEA VECHE, Bucureti, 2003 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002

23

UNITATEA DE NVARE 3. ALGORITMI I ALGORITMIZAREA APLICAIILOR


CUPRINS

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

3.1. Obiective n aceast unitate de nvare se va prezenta noiunes de algoritm ca premiz pentru nelegerea modului de algoritmizare a oricrei aplicaii. De asemenea, se vor prezenta proprietile algoritmilor, tipurile de algoritmi i operaiile care se reprezint n algorimi pentru construcia corect a algoritmilor i reprezentarea corespunztoare logic a aplicaiilor. 3.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: Definii noiunea de algoritm n sens general i n sens restrictiv; Identificai proprietile algoritmilor pentru definirea lor corect sub aspect formal i logic, precum i tipurile de algoritmi n funcie de natura operaiilor de efectuat i de natura datelor folosite; Efectuai algoritmizarea aplicaiilor pentru adaptarea lor la cerinele prelucrrii automate. Utilizai corect operatorii i operanzii n construcia algoritmilor pentru algoritmizarea aplicaiilor. Durata de parcurgere a acestei uniti de nvare este de 3 ore. 3.3. Algoritmi n prelucrarea automat a datelor, logica programrii calculatoarelor este denumirea pentru ansamblul operaiilor de determinare, reprezentare i evaluare a algoritmilor de rezolvare a aplicaiilor cu calculatorul electronic. ns, n contextul realizrii produselor informatice, aceast denumire este extins, prin implicaiile sale, asupra modului de concepere a structurii de ansamblu a produselor informatice, cu dependenele funcionale specifice, precum i asupra modului de realizare a acestor produse. Definiii Denumirea de algoritm provine din contopirea cuvntului alhovism, dup 24

00:05

numele unui matematician arab (ALHVARISMI care a trit n evul mediu), cu cuvntul grec arithmos (numr). Definirea noiunii (conceptului) de algoritm a evoluat odat cu dezvoltarea studiilor matematice i a tehnicii de calcul (mai ales a calculatoarelor electronice). * n matematica contemporan prin algoritm se poate nelege orice proces aritmetic sau algebric care se efectueaz dup nite reguli bine determinate. * n sens matematic mai riguros un algoritm este o mulime finit de operaii (instruciuni, comenzi) cunoscute care, executate ntr-o ordine bine stabilit, pornind de la un set de valori (intrarea algoritmului) ce aparine unei mulimi de asemenea seturi, mulime numit domeniul de definiie al algoritmului, produc n timp finit un alt set de valori (ieirea algoritmului). * n contextul n care se folosete calculatorul electronic, noiunea de algoritm este definit ca un ansamblu de reguli ce determin n mod univoc un proces finit de operaii de prelucrare automat asupra unor informaii admisibile iniiale n scopul obinerii informaiilor finale care sunt ateptate de utilizatori. Definii noiunea de algoritm. ........................................................................................................................................ ....................................................................................................................................... ...................................................................................................................................... 3.4. Proprietile algoritmilor Pentru definirea corect sub aspect formal, algoritmii trebuie s ndeplineasc cel puin trei condiii eseniale: generalitate, finitudine i unicitate. Generalitatea este proprietatea algoritmilor prin care orice algoritm nu rezolv n general o singur problem, ci o clas de probleme de acelai tip. Aceast proprietate justific nsui sensul (scopul) pentru care un algoritm este elaborat. Cu ct sfera de aplicabilitate a algoritmului este mai larg, cu att eficiena folos irii acestuia este mai mare. Finitudinea este proprietatea algoritmilor potrivit creia informaiile finale rezult din informaiile iniiale printr-un numr finit de transformri (operaii). Aceast proprietate pune n eviden faptul c dac n parcurgerea unui algoritm, dintr-un anumit motiv (de obicei dintr-o eroare n logica elaborrii), o operaie sau un grup de operaii se execut la infinit, atunci pentru a iei din aceast stare (a ntrerupe aceast execuie) este necesar o intervenie din exterior. Unicitatea este proprietatea algoritmilor conform creia transformrile (operaiile), precum i ordinea lor de efectuare, prin care se obin anumite informaii finale din informaiile iniiale, sunt univoc determinate de regulile algoritmului. Aceasta nseamn c ori de cte ori se pornete de la acelai set de valori ale informaiilor (variabilelor) de intrare se obin ntotdeauna aceleai informaii finale (rezultate). Aceste trei proprieti caracterizeaz algoritmii numai sub aspect formal. Pentru a fi ns corespunztor i din punct de vedere al problemei de rezolvat (sub aspect logic), orice algoritm mai trebuie s fie corect i eficient. Corectitudinea este o condiie indispensabil pentru orice algoritm, fiind determinat de metoda de rezolvare a problemei aleas de utilizator. Eficiena unui algoritm este impus de modul cum se lucreaz la calculator i de timpul de rspuns al calculatorului. n prezent modul de lucru la calculator este, de 25

00:30

obicei, modul conversaional, iar timpul de rspuns al calculatorului este timpul care trece de la introducerea datelor n calculator de ctre utilizator i pn la obinerea rezultatelor. Aceasta nseamn c, dei un algoritm poate fi corect sub aspect formal i al metodei de rezolvare, este posibil s fie ineficient dac, de exemplu, furnizeaz rezultatele mai trziu dect momentul ateptat. De asemenea, un algoritm poate fi ineficient i sub alte aspecte, cum sunt: precizia, volumul de date necesare, resurse folosite etc. S ne reamintim... Algoritmii trebuie s ndeplineasc cel puin trei condiii eseniale: generalitate, finitudine i unicitate. Pentru a fi ns corespunztor i din punct de vedere al problemei de rezolvat (sub aspect logic), orice algoritm mai trebuie s fie corect i eficient. Ce nelegei prin generalitate, finitudine i unicitate? ................................................................................................................... Dar prin corectitudinea si eficiena unui algoritm? ...................................................................................................................

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

01:00

01:15

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

S ne reamintim... Operaiile de calcul se refer la operaiile obinuite (adunare, scdere, nmulire, imprire i ridicare la putere) i la celelalte operaii mai complexe ce se pot executa prin reducerea la operaii aritmetice elementare. Operaii de decizie, ce se refer la verificarea unei condiii logice i n funcie de rezultatul obinut se alege fie o alternativ de urmat (n cazul algoritmilor cu ramificaii), fie continuarea, respectiv terminarea, procesului repetitiv (n cazul algoritmilor ciclici). Dup modul de exprimare a condiiilor logice, operaiile de decizie pot fi reprezentate prin dou feluri de simboluri: simbolul de comparare; simbolurile de relaie. Simbolul de comparare este caracterul special: (dou puncte), care se poate folosi pentru a compara o variabil cu alt variabil sau o variabil cu o constant. 27

01:30 5

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

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

01:50

Punnd n eviden aceste trei alternative, nu se recomand ca simbolul de comparare s fie folosit pentru formularea condiiilor logice, deoarece complic structura algoritmilor i, n consecin, reprezentarea acestora. Simbolurile relaionale sunt simbolurile folosite n matematic sau cele folosie n limbajele de programare, cum sunt urmtoarele: < mai mic dect > mai mare dect = egal cu <= mai mic dect sau egal cu >= mai mare dect sau egal cu <> nu este egal cu Exemple: A<B A>B A=B A <= B A >= B A <> B Punnd n eviden numai dou alternative (adevrat i fals), simbolurile de relaie (relaionale) sunt cele care se recomand s fie folosite pentru formularea (exprimarea) condiiilor logice. Operaii de intrare i ieire, ce se refer la introducerea informaiilor admisibile iniiale (datelor de intrare) n memoria calculatorului i la obinerea informaiilor finale (rezultatelor sau datelor de ieire). n prelucrarea automat a datelor, operaia de intrare se mai numete i operaie de citire i const n introducerea de date de la tastatur sau de pe un suport tehnic de date, iar operaia de ieire se mai numete operaie de scriere sau de afiare i const n furnizarea de date pe ecranul monitorului sau pe imprimant. Pentru descrierea operaiilor de intrare i ieire nu sunt simboluri speciale (consacrate), dar se folosesc n mod frecvent cuvintele CITETE i SCRIE. Alte operaii, prin care se desemneaz diferite operaii (aciuni) care se ntlnesc, de obicei, n algoritmii nenumerici (de prelucrare), ca de exemplu: cutare, extragere, sortare, interclasare etc. Aceste operaii nu se reprezint prin simboluri speciale (consacrate), ci chiar prin denumirea lor. Ordinea de execuie a operaiilor definete structura de control a algoritmului. Aceast structur, indiferent de tipul algoritmului, prezint anumite similitudini, care deriv din cele dou caracteristici de baz ale oricrui algoritm: iterativitatea i recursivitatea. 28

* Iterativitatea const n reluarea anumitor operaii de prelucrare, n general cu alte valori ale variabilelor. * Recursivitatea reprezint procesul de determinare a valorii unei variabile, la un moment dat, pe baza uneia sau a mai multor valori anterioare. Din cele prezentate rezult c, se poate face o asociere ntre recursivitate i iterativitate, n sensul c, obinerea valorilor succesive ale unei variabile recursive se poate asigura print-un proces iterativ. Definii cele dou caracteristici de baz ale unui algoritm. ........................................................................................................................................ ....................................................................................................................................... ...................................................................................................................................... 3.7. Clasificarea algoritmilor Dup modul de succesiune a operaiilor (aciunilor) pe care le implic, algoritmii se mpart n trei mari grupe: algoritmi liniari sau cu structur secvenial; algoritmi cu ramificaii sau cu structur alternativ; algoritmi ciclici sau cu structur repetitiv. Algoritmii liniari (cu structur secvenial) conin operaii care se succed n secven (operaie dup operaie) de la admiterea informaiilor iniiale (datelor de intrare) i pn la obinerea informaiilor finale (datelor de ieire), fr condiii prestabilite de execuie i fr repetri ale operaiilor.

02:05

Exemplu: Calculul expresiei E = A + B C implic efectuarea n ordine secvenial a celor trei operaii specificate: adunarea valorii variabilei A cu valoarea variabilei B; scderea din suma obinut a valorii variabilei C; atribuirea rezultatului obinut variabilei E. Algoritmii cu ramificaii (cu structur alternativ) conin operaii (aciuni) care se execut n funcie de ndeplinirea sau nendeplinirea unor condiii logice din structura algoritmilor; structura se ramific pe alternative distincte, fiecare avnd operaii care se execut condiionat. Exemplu: Calculul rdacinilor ecuaiei de gradul doi se desfoar pe etape, astfel: etapa 1: se calculeaz discriminantul ecuaiei pe baza formulei cunoscute; etapa 2: se compar discriminantul D cu zero; etapa 3: se calculeaz rdcinile ecuaiei astfel: dac D>0 se execut operaiile pentru obinerea celor dou rdcini reale i distincte; dac D=0 se execut operaiile pentru obinerea celor dou rdcini reale i egale; dac D<0 se execut operaiile pentru obinerea celor dou rdcini 29

complexe.

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

se ncheie procesul repetitiv.

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

02:40

3.8. Rezumat Noiunea de algoritm este definit ca un ansamblu de reguli ce determin n mod univoc un proces finit de operaii de prelucrare automat asupra unor informaii admisibile iniiale n scopul obinerii informaiilor finale care sunt ateptate de utilizatori. Algoritmii au urmtoarele proprieti: generalitate, finitudine, unicitate, corectitudine i eficien. n funcie de natura operailor coninute i informailor folosite, algoritmii se pot mpri n dou mari grupe: algoritmi numerici i algoritmi nenumerici. Algoritmii numerici sunt algoritmii care, n urma efecturii unui numr finit de operaii aritmetice elementare asupra unor informaii numerice, furnizeaz un rezultat numeric ce constituie soluia sau aproximaia acesteia pentru problema rezolvat. Algoritmii nenumerici denumii i algoritmi de prelucrare sunt algoritmii n care soluia rezolvrii problemelor (rezultatul prelucrrii) se obine n urma efecturii unui numr finit de operaii care nu sunt operaii aritmetice (de exemplu: sortarea, indexarea, filtrarea, ventilarea, regruparea, interclasarea etc.). Operaiile reprezentate n algoritmi pot fi de tipul urmator: operaii de calcul, operaii de atribuire, operaii de decizie, operaii de intrare/iesire. Dup modul de succesiune a operaiilor (aciunilor) pe care le implic, algoritmii se mpart n trei mari grupe: - algoritmi liniari sau cu structur secvenial; - algoritmi cu ramificaii sau cu structur alternativ; - algoritmi ciclici sau cu structur repetitiv. 3.9. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1) 2) 3) 4) 5) 6) 7) 8) Definii noiunea de algoritm. Definii proprietatea de Generalitate. Definii proprietatea de Finitudine. Prin ce se caracterizeaz algoritmii numerici? Ce ntelegei prin operaiile de decizie? Care sunt caracteristicile de baz ale unui algoritm? Cum pot fi reprezentate operaiile de decizie? Ce ntelegei prin algoritmii ciclici cu un numr cunoscut de cicluri?

31

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

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

practice, cap. 5 (Programarea n limbajul VBA), Editura InfoMega, Bucureti, 2002 7. Popa Gh. i colectiv Baze de date Access, cap. VI (Module), Editura CISON, Bucureti, 2003 8. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura CURTEA VECHE, Bucureti, 2003 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002

33

UNITATEA DE NVARE 4. DESCRIEREA ALGORITMILOR I FORME DE REPREZENTARE


CUPRINS

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

4.1. Obiective n aceast unitate de nvare se vor prezenta principalele forme folosite pentru reprezentarea (descrierea) algoritmilor n scopul adaptrii specificaiilor acestora la specificul construciilor limbajelor de programare. De asemenea, se vor prezenta simbolurile folosite la construcia blocurilor din schemele logice de sistem i de program. 4.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: Utilizai formele de reprezentare (descriere) a algoritmilor n scopul adaptrii descrierii algoritmice la specificul limbajului de programare n care se elaboreaz programele; Identificai simbolurile standard folosite la construirea blocurilor din care se alctuiesc schemele logice de sistem i de program; Construii scheme logice de sistem i de program adaptate la specificul sintaxei instruciunilor program ale limbajului de programare folosit. Durata de parcurgere a acestei uniti de nvare este de 2 ore. 4.3. Reprezentarea algoritmilor Dup ce un algoritm a fost elaborat (stabilit sau precizat), este necesar s fie prezentat ntr-o form accesibil pentru elaborarea ulterioar a programului pentru calculator. Aceast operaie se numete reprezentarea (descrierea) algoritmului. Reprezentarea algoritmilor se poate realiza n mai multe feluri: prin cuvinte, printr-un limbaj logico-matematic, prin scheme logice, prin limbaj pseudocod etc.

00:05

34

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

00:15

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

Spre deosebire de schemele logice, pseudocodul este mai complet n descrierea algoritmilor, posednd expresii care simuleaz cu claritate structurile fundamentale de prelucrare (control). n consecin, limbajul pseudocod este din ce n ce mai mult folosit ca form preferat pentru reprezentarea (descrierea) algoritmilor. S ne reamintim... Reprezentarea algoritmilor n limbajul pseudocod se realizeaz prin propoziii. n funcie de felul operaiilor pe care le descriu, propoziiile sunt simple i complexe.

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

4.7. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. 2. 3. 4. 5. 6. 7. Ce reprezinta o schema logica? Care sunt blocurile fundamentale necesare elaborrii unei scheme logice? Ce reprezinta Blocul terminal? Ce reprezinta Blocul de procedur ? Definiti limbajul pseudocod. Cum se reprezinta algoritmii in limbajul pseudocod? Care sunt avantajele reprezentarii algoritmilor in limbajul pseudocod?

Rspunsuri: 1. Schema logic este o form grafic de reprezentare a algoritmilor alctuit 37

2.

3. 4.

5.

6.

7.

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

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

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

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

39

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


CUPRINS

5.1. Obiective 5.2. Competenele unitii de nvare 5.3. Structuri fundamentale de control 5.4. Reprezentarea structurii alternative 5.5. Reprezentarea structurii repetitive 5.6. Rezumat 5.7. Test de autoevaluare a cunotinelor 5.8. Test de evaluare a cunotinelor 5.9. Bibliografie 5.1. Obiective n aceast unitate de nvare se vor prezenta structurile fundamentale de prelucrare (control) i modul cum aceste structuri sunt descrie n schemele logice de program. De asemenea, se vor prezenta instruciunile prin care aceste structuri de prelucrare (control) sunt reprezentate n programele elaborate (de exemplu n limbajul VBA). 5.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: Identificai structurile fundamentale de prelucrare (control) n care orice algoritm se poate descompune pentru elaborarea programului de prelucrare. Descompunei orice aplicaie n structuri fundamentale de prelucrare (control) pentru reprezentarea lor prin instruciuni n orice mediu de programare. Reprezentai structurile fundamentale de prelucrare (control) prin instruciuni specifice mediului de programare VBA. Durata de parcurgere a acestei uniti de nvare este de 2 ore. 5.3. Structuri fundamentale de control Structurile de control reprezint componentele programrii structurate. Programarea structurat este un stil de programare care se bazeaz pe respectarea unei discipline de programare i folosirea riguroas a ctorva structuri de calcul. Ca rezultat se va ajunge la un algoritm uor de urmrit, clar i corect. Termenul programare nu este identic cu cel de programare propriu-zis. Este vorba de ntreaga activitate depus pentru obinerea unui program, deci att proiectarea algoritmului ct i traducerea acestuia n limbajul de programare ales. Indiferent ct de complex ar fi un algoritm, s-a demonstrat matematic c acesta poate fi descompus n structurile fundamentale de prelucrare (control) urmtoare: structura secvenial; structura alternativ; 40

00:05

structura repetitiv. Reprezentarea n schema logic:

a) structura secvenial

b) structura alternativ

c) structura repetitiv

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

Cum poate fi descompus un algoritm? ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... 5.4. Reprezentarea structurii alternative Structura alternativ este alcatuita dintr-o conditie plus instructiunile care se executa daca respectiva conditie este adevarata, respectiv instructiunile care se executa daca este falsa. Reprezentarea n schema logic:

00:30

Figura 5.2. Schema logica pentru structura alternativ

Reprezentarea structurii alternative de tip selecie 41

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

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

5.5. Reprezentarea structurii repetitive Reprezentarea structurii repetitive cu condiie logic Structurile repetitive cu condiie logic conin o secven de operaii care se execut ciclic att timp ct o condiie logic este adevrat sau fals. Condiia logic poate fi situat nainte de secvena de operaii (varianta WHILE -DO) sau dup aceast secvena (varianta DO-UNTIL). Atunci cnd condiia logic este fals de la prima testare, n varianta WHILE-DO nu se execut niciodat secvena de operaii din structur i se ncheie procesul ciclic, iar n varianta DO -UNTIL aceast secven de operaii se execut o singur dat. Structura repetitiv cu conditie iniial Aceasta structur este alcatuit dintr-o conditie, care se afl la nceput, si un bloc de instructiuni, care se execut daca rezultatul evaluarii conditiei este adevarat. Reprezentarea n schema logic:

1:00

42

Figura 5.3. Schema logica pentru structura repetitiv cu conditie iniial

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

Figura 5.4. Schema logic pentru structura repetitiv cu condiie final

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

01:30

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

5.7. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. 2. 3. 4. 5. Care sunt structurile de control ale unui algoritm? Cum se reprezinta structura secventiala? Cum este alcatuita structura alternativa? Cum este alcatuita structura repetitiv cu condiie iniial? Cum este alcatuita structura repetitiv cu condiie final?

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

2. 3.

4.

5.

44

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

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

45

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


CUPRINS

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

6.1. Obiective n aceast unitate de nvare se vor prezenta principalele etape care trebuie parcurse logic i cronologic pentru elaborarea unui program n orice mediu de programare, precum si operaiile care trebuie efectuate n fiecare etap pentru elaborarea unui program n mediul VBA. 6.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: Parcurgeti principalele etape n ordinea lor logic i cronologic n scopul elaborrii unui program n orice mediu de programare; Efectuati operaiile specifice fiecrei etape pentru elaborarea unui program n mediul VBA.

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

00:05

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

3. Elaborarea algoritmului (algoritmilor) de efectuare a aplicaiei (rezolvare a problemei). Este etapa n care se precizeaz regulile necesare pentru efectuarea operaiilor de prelucrare implicate ntr-o ordine determinat. Ordinea de efectuare a acestor operaii este de obicei ordinea secvenial, cu specificarea explicit a modificrii acestei ordini i a altor cerine de prelucrare. Algoritmii elaborai pot fi algoritmi de prelucrare sau de calcul i/sau combinaii dintre un algoritm de prelucrare i (sub)algoritmi de calcul. Prin aceti algoritmi se pun n eviden structurile fundamentale de prelucrare (de control), pe baza crora urmeaz s se contureze elaborarea ulterioar a programului pentru efectuarea aplicaiei (rezolvarea problemei). Care este deosebirea dintre etapa de analiza a problemei si etapa de elaborare a algoritmului? ........................................................................................................................................... ........................................................................................................................................... .......................................................................................................................................... 4. ntocmirea schemelor logice (de sistem i de program). Este etapa n care se descriu (reprezint) sub form grafic algoritmul (algoritmii) de efectuare a aplicaiei. n acest context, schema logic constituie o descriere mai explicit a algoritmului, n special cnd algoritmii au un nivel mai mare de complexitate. Prin schemele logice de sistem se stabilesc resursele necesare programului (sursele i fluxurile de date, suporturile tehnice de date), iar prin schemele logice de program se reprezint succesiunea operaiilor de prelucrare specificate de algoritmi. S ne reamintim... Etapa de elaborare a algoritmului pune n eviden structurile fundamentale de de control, pe baza crora urmeaz s se contureze elaborarea ulterioar a programului pentru efectuarea aplicaiei.

00:40

47

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

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

etap, utilizatorul poate s efectueze depanarea programului pentru eliminarea unor eventuale erori de sintax i de logic. Aceast etap se consider ncheiat dup obinerea rezultatelor (datelor de ieire) ateptate, folosind un volum redus de date (date de prob). In ce etapa se pot efectua corectri ale unor eventuale erori de tastare ? ... ... ... 8. Elaborarea documentaiei finale a programului. Este etapa n care se strng mpreun toate documentele care au rezultat din parcurgerea etapelor anterioare i se elaboreaz instruciunile de exploatare curent a programului. 9. Exploatarea curent i actualizarea ulterioar a programului. Aceast etap este ultima etap a procesului de elaborare a unui program ntr-un mediu de programare i totodat un punct de plecare pentru un nou proces. Astfel, odat cu folosirea programului pentru efectuarea aplicaiei sau rezolvarea problemei se desfoar i activitile care sunt necesare pentru mbuntirea performanelor sau adaptrii permanente a programului la modificrile survenite n domeniul de provenien a aplicaiei. Procesul de elaborare a unui program n orice limbaj (mediu) de programare nu este un proces continuu, care se desfoar fr ntrerupere de la prima pn la ultima etap, ci este un proces iterativ, care implic parcurgerea unei etape sau a mai multor etape, apoi analiza activitilor desfurate i ntoarcerea, dac este cazul, pentru mbuntirea sau chiar refacerea unora dintre aceste activiti. In ce etapa se pot efectua activiti pentru mbuntirea performanelor sau adaptrii permanente a programului la modificrile aparute? ... ... ...

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

01:40

49

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

6.6 Test de evaluare a cunotinelor 50

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

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

51

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


CUPRINS

7.1. Obiective 7.2. Competenele unitii de nvare 7.3. Date i structuri de date. Clasificarea datelor 7.4. Constante i variabile 7.5. Alte tipuri de date 7.6. Operatori i expresii 7.7. Funcii 7.8. Proceduri 7.9. Controale Visual Basic (VBA) 7.10. Lucrul cu fisiere de date in mediul VBA 7.11. Rezumat 7.12. Test de autoevaluare a cunotinelor 7.13. Test de evaluare a cunotinelor 7.14. Tema de cotrol 7.15. Bibliografie 7.1. Obiective nsuirea i folosirea corect la elaborarea programelor a elementelor de baz ale mediului de programare VBA; Cunoaterea i folosirea corect, n programele VBA, a datelor i structurilor de date (constante, variabile, masive); Cunoaterea i folosirea corect, n programele VBA, a operatorilor i expresiilor; Cunoaterea i folosirea corect, n programele VBA, a funciilor i procedurilor; Cunoaterea i folosirea corect, n programele VBA, a controalelor; Cunoaterea i folosirea corect, n programele VBA, a fiierelor de date. 7.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: nelegeti rolul datelor i criteriilor de clasificare a acestora n programele elaborate n mediul VBA; folosii constantele i variabilele n programele elaborate n mediul VBA; folosii operatorii i expresiile n programele elaborate n mediul VBA; utilizai funciile i procedurile n programele elaborate n mediul VBA; utilizai controalele si sa prelucrati fiierele de date n programele elaborate n mediul VBA. Durata de parcurgere a acestei uniti de nvare este de 3 ore.

52

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

00:10 0

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

00:20

String Variant User-Defined

$ fr fr

octet/caracter dup caz dup caz

Max. 65500 octei n funcie de tip n funcie de tipul elementelor

Forma general (sintaxa) de declarare a unei variabile este: Dim/Static/Global nume_variabil [As tip_dat] unde: Dim/Static//Global permite precizarea domeniului de vizibilitate al variabilei; nume_variabil este identificatorul variabilei declarate; tip_dat este identificatorul tipului de dat. Dac tipul de dat nu este specificat, atunci se consi-der implicit Variant. Declararea variabilelor Declararea implicit. Se efectueaz astfel: variabilei i se ataeaz un sufix, de exemplu % VAL_PROD% = 25000 dac sufixul este omis, tipul variabilei se consi-der Variant. Declararea explicit. Se realizeaz cu instruciunea DIM nume_variabil AS tip_variabil [lungime] unde lungime este lungimea n octei a variabilei de tipul declarat. Exemple: DIM Val_prod AS Long DIM Den_mat, Cod_mat DIM U_M As Strinng*4

Den_mat este de tipVariant 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. 00:30 La nivel de procedur sunt: a) variabile folosite numai n cadrul procedurii unde au fost declarate (implicit sau explicit); exemplu: Dim Den_mat As String; b) variabile statice n procedur, care i pstreaz valoarea ntre apelurile succesive ale procedurii; de exemplu: Static Cod_mat As Integer Static Val_mat La nivelul modulului de form variabilele definite pot fi folosite n mai multe proceduri de tratare a unui eveniment. O variabil la nivelul modulului formei se declar astfel: a) se alege opiunea Module din meniul Insert sau din alte variante de VB, 55

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

7.5 Alte tipuri de date Tipuri de date definite de utilizator (User- Defined) 00:40 5 n mediul VBA utilizatorul poate s defineasc tipuri noi de date, folosind combinaii de tipuri predefinite (ca de exemplu: Byte, Integer, Single, Double, String etc), conform sintaxei urmtoare: TYPE tip-nou var 1 AS tip-1 var 2 AS tip-2 END TYPE unde: tip_nou reprezint identificatorul tipului nou de date, definit conform regulilor de sintax de construire a numelor n VBA; var i este numele elementului de variabil de rang i din structura tipului de dat definit; tip i este numele tipului de dat al elementului de rang i; este admis orice tip de dat VBA, cu excepia tipului Object. Tipurile de date definite de utilizator (User-Defined) se folosesc de regul n programele care prelucreaz baze de date, cnd ntr-un articol se regsesc cmpuri de orice tip de date i se declar n seciunea General/Declaration a modulului de cod cu ajutorul cuvintelor cheie Type i End Type, fiind vizibile n orice parte a aplicaiei. Exemplu: Type MATERIALE Cod_mat As Integer Den_mat As String*20 U_m As String 56

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

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

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

01:20

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

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

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

Kill Date MsgBox Print

terge un fiier Stabilete data sistemului Afieaz o informaie Afieaz pe fundal

Kill F1.dat Date # Dec 10.1999# MsgBox Media& media Print Media =& media

Procedura MsgBox. Afieaz un mesaj ntr-o caset de dialog fr a returna o valoare. Forma general (sintaxa): MsgBox(prompt,[type],[title],[helpfile],[context]) unde: elementele de sintax (opiunile) au aceeai semnificaie ca la funcia MsgBox, cu deosebirea c opiunea type descrie numrul i tipul butoanelor din caseta de dialog, tipul pictogramei, butoanele prestabilite i modalitatea casetei. Procedurile definite de utilizator Sunt proceduri care conin instruciuni introduse de utilizator pentru efectuarea operaiilor specifice aplicaiilor acestora n scopul de a optimiza activitatea de programare. Forma general (sintaxa) este: [Static][Private] Sub nume_procedur ([list-parametri]) secven_instruciuni_1 [Exit Sub] [secven_instruciuni_2] End sub unde: Static - precizeaz domeniul de vizibilitate al procedurii, atunci cnd se dorete pstrarea valorilor tuturor variabilelor locale ntre dou apeluri ale procedurii; Private - precizeaz c procedura este accesibil numai celorlalte proceduri din modulul n care a fost definit; nume_procedur este numele atribuit de utilizator procedurii definite; list_parametri este lista parametrilor formali, care reprezint variabilele crora li se vor atribui datele de intrare (argumentele), la apelul procedurii. Procedurile definite de utilizator sunt: proceduri pentru tratarea evenimentelor; proceduri generale. Procedura pentru tratarea unui eveniment este ataat unui obiect (ca de exemplu: form, buton de comand, caset de validare etc). Astfel, cnd se execut un click pe obiectul form se declaneaz evenimentul click, urmat de lansarea automat n execuie a procedurii eveniment care-i corespunde. O procedur eveniment poate fi lansat n execuie i n mod explicit (apelat de ctre utilizator), caz n care evenimentul asociat nu are loc. Pentru fiecare tip de obiect exist un numr prestabilit de evenimente ce pot s apar. 62

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

Sub cmdCalcul_Click( ) ... End Sub Un program mai complex poate fi alctuit din mai multe proceduri de tratare a evenimentelor coninute. Pentru a crete calitatea programului se recomand mprirea acestor proceduri n alte proceduri mai mici, pentru ca aplicaia s fie mai uor de elaborat i, dup caz, de modificat. Procedurile generale sunt rutine create de programator pentru a evita repetrile n procedurile de tratare a eveni-mentelor. Dac mai multe astfel de proceduri conin aceleai instruciuni, atunci se recomand folosirea procedurilor generale care s conin instruciunile comune. Procedurile generale sunt lansate n execuie explicit prin apelul lansat dintr-o anumit parte a codului aplicaiilor. Deci, aceste proceduri sunt invocate de evenimentele asociate obiectelor, astfel c o procedur eveniment devine o proce-dur apelant a procedurii generale apelate. Procedurile generale se pot apela (dintr-o alt procedur) n dou moduri: prin specificarea numelei procedurii generale; Exemplu: Sub CmdStocuri_Click( ) Calcul_stocfinal procedur apelat End Sub prin folosirea instruciunii CALL; Exemplu: Sub CmdStocuri_Click( ) CALL Calcul_strocfinal End Sub procedur apelat

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

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

02:10

Alignment - aliniaz textul n cadrul unui context dat; BorderStyle - stabilete tipul de chenar; Font - stabilete corpul, stilul i dimensiunea caracterelor; AutoSize i WordWrap - stabilete afiarea pe mai multe linii i lungimi. Casetele de text (Text boxes), denumite i casete de editare, se folosesc pentru afiarea informaiilor furnizate n faza de editare sau introduse n timpul executrii procedurii. Casetele de text au diferite proprieti: Name - identific obiectul n procedur (exemplu: txtExamen); Border Style - stabilete tipul de chenar; Font - stabilete corpul, stilul i dimensiunea caracterelor; Passwordchar - ascunde textul (exemplu: *); Tag - stocheaz informaiile; MultiLine - afieaz mai multe linii de text; Alignment - aliniaz textul la: stnga, dreapta, centru; SelStart - stabilete poziia iniial pentru selectarea textului; SelLenglh - stabilete lungimea textului selectat. Butoanele de opiune (Option buttons). Butoanele de opiune se folosesc pentru a afia opiuni, care pot fi activate sau dezactivate prin stabilirea proprietii Value la valoarea True sau False. Aceste butoane se deseneaz direct pe form, ntr-un cadru sau ntr-o caset de imagine de pe form. Un astfel de cadru grupeaz controale nrudite (de regul butoane de opiune, casete de validare). Casetele de list (List boxes). Casetele de list se folosesc pentru a afia liste de articole din care utilizatorul poate selecta un articol sau mai multe articole. Casetele combinate (ComboBox). Aceste casete sunt o combinaie ntre casetele de text (Text boxes) i casetele cu list, existnd trei stiluri de casete combinate, n funcie de valoarea proprietii Style i anume: 0 - caset combinat derulant care conine o caset cu list derulant i o caset de text; 1 - caset combinat simpl, care conine o caset de text i o list nederulant; 2 - caset cu list derulant, care permite doar selectarea din lista derulant. 7.10 Lucrul cu fiiere de date n mediul VBA Fiiere de date Definiia unui fiier de date. Fiierul de date este o colecie (mulime) de date omogene ca natur i cerine de prelucrare, nregistrate pe un suport tehnic de date, de pe care calculatorul le poate citi (percepe) automat n procesul de prelucrare. Pentru fiierele de date create n scopul prelucrrii ulterioare, suportul tehnic de date este un suport refolosibil (de regul discul magnetic). n astfel de fiiere se pot memora date numerice, texte i informaii diverse (imagini, sunete). Operaii de lucru cu fiiere de date Deschiderea fiierelor. Lucrul cu un fiier de date implic, n primul rnd, validarea accesului la fiier, operaie denumit deschiderea fiierului, care se efectueaz folosind comanda OPEN. Aceast comand permite alocarea unei zone de memorie tampon pentru operaiile de intrare i ieire i specific modul de acces 65

02:30

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

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

PUT # 2, nr, mat Citirea unui articol din fiier n acces aleator se efec-tueaz cu comanda GET #, care are forma general (sintaxa) urmtoare: GET[#]numr_fiier,numr_articol,nume_variabil unde: numr_fiier este numrul fiierului care se citete; numr_articol este numrul articolului care nmulit cu lungimea articolului determin poziia citirii; nume_variabil este numele variabilei care conine datele ce urmeaz s fie citite. Exemplu: GET # 2, nr, mat S ne reamintim... Fiierul de date este o colecie (mulime) de date omogene ca natur i cerine de prelucrare, nregistrate pe un suport tehnic de date, de pe care calculatorul le poate citi (percepe) automat n procesul de prelucrare.

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

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

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

69

Care sunt tipurile de operatori care se folosesc n cadrul programelor VBA ? Care sunt tipurile de expresii care se folosesc n cadrul programelor VBA ? Care sunt principalele funcii i cum se folosesc n cadrul progrmelor VBA ? Care sunt procedurile n mediul VBA i cum se apeleaz aceste proceduri n programele VBA ? Ce se nelege prin controale i cum se folosesc n cadrul programelor VBA ? Ce fel de fiiere de date cunoasteti i cum se folosesc n programele elaborate n mediul VBA? 7.14. Teme de control Se consider dou iruri de numere reprezentnd preul unitar, respectiv cantitatea vndut pentru 12 mrfuri dintr-un magazin. Se cere s se elaboreze o procedur de tip funcie n mediul de programare VBA pentru calcularea valorii totale a vnzrilor. Se consider un ir de numere care reprezint valoarea stocurilor de mrfuri dintrun magazin pe o perioad de un an. Se cere s se elaboreze o procedur de tip subrutin VBA pentru a determina pe ce lun (1,2,3,) valoarea stocurilor a fost cea mai mic. Se consider un ir de numere reprezentnd preul unitar al unor produse dintr-un magazin. Se cere s se elaboreze o procedur VBA pentru calcularea preului mediu, tiind c nu se cunoate cte numere sunt n ir. Se consider un ir de numere reprezentnd preul unitar pentru N mrfuri dintr-un magazin. Se cere s se elaboreze o procedur VBA pentru a determina care este preul unitar cel mai mare, tiind c N este cunoscut. Studiu comparativ privind posibilitile de exploatare ale fiierelor cu acces secvenial i cu acces direct n mediul de programare VBA. 7.15. Bibliografie I. Bibliografie obligatorie 1. Baron C., Florea E. i Crean A. Programarea calculatoarelor, Editura Pro Universitaria, Bucureti, 2012 2. Olteanu C., Baron C. i Oancea B. - Baze de date, Editura Pro Universitaria, Bucureti, 2010 3. Olteanu C., - Baze de date n Marketing. Aplicaii practice Microsoft Access, Editura InfoMega, Bucureti, 2012 4. Olteanu C.,- Bazele informaticii n Marketing. Aplicaii practice Microsoft Word, Excel, Powerpoint i programe legislative, Editura InfoMega, Bucureti, 2012 II. Bibliografie facultativ 1. Murean M. Sisteme de gestiune a bazelor de date. Access 2002, Editura CURTEA VECHE, Bucureti, 2003 2. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002

70

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


CUPRINS

8.1. Obiective 8.2. Competenele unitii de nvare 8.3. Programul 1 8.4. Programul 2 8.5. Programul 3 8.6. Programul 4 8.7. Programul 5 8.8. Programul 6 8.9. Programul 7 8.10 Programul 8 8.1. Obiective n aceast unitate de nvare se vor prezenta programe elaborate pentru a rezolva cteva probleme propuse pentru exemplificarea modului de lucru n mediul de programare VBA Visual Basic Applications. 8.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s: Elaborati programe pentru rezolvarea aplicatilor in mediul de programare VBA; Durata de parcurgere a acestei uniti de nvare este de 3 ore. 8.3. Programul 1 'Problema propusa spre rezolvare 'Sa se realizeze un program care calculeaza Salariul net al unei persoane 'lund n considerare salariul brut, retinerile (se includ aici si impozitele) 'si premierile (se considera ca s-au platit impozitele aferente acestor premieri) Sub Exercitiul1() 'Se declara cele variabilele necesare Dim SalariulNet, Retineri, Premieri, SalariulBrut As Double 'Sectiunea de preluare a datelor de la tastatura SalariulBrut = InputBox("Introduceti salariul brut:", "Introducere Date") Retineri = InputBox("Introduceti retinerile:", "Introducere Date") Premieri = InputBox("Introduceti premierile:", "Introducere Date") 'Sectiunea de prelucrare a datelor SalariulNet = Val(SalariulBrut) - Val(Retineri) + Val(Premieri) 'Sectiune de afisare a rezultatului MsgBox "Salariul net este " & SalariulNet, vbOKOnly, "Rezultat prelucrare date" End Sub 71

00:05

8.4 Programul 2

00:20

'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

01:00

'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 72

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 73

01:30

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 74

01:45

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) 75

02:00

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

76

'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 02:45 '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 77

78