Sunteți pe pagina 1din 58

INFORMATIC DE GESTIUNE (LIMBAJE) Prof.univ.dr. Doina FUSARU Prof.univ.dr.

Zenovic GHERASIM Codul cursului: 303 Denumirea cursului: INFORMATIC DE GESTIUNE (LIMBAJE) Tip curs: obligatoriu Durata cursului / Nr. credite: un semestru / 5 Perioada de accesare a cursului: prelegeri 1 oct. 2008- iunie 2009 seminar consultaii Manual recomandat: Gherasim, Z., Programare i baze de date, Ed F.R.M., Bucureti, 2007. Obiectivul principal al cursului: Obiectivele disciplinei Informatic de gestiune (Limbaje) se concretizeaz n cunoaterea i aprofundarea noiunilor de baz ale organizrii datelor n vederea prelucrrii automate cu ajutorul calculatorului electronic, a elementelor fundamentale ale programrii i ale limbajului de programare Visual Basic, precum i n ctigarea deprinderilor practice n rezolvarea prin programare a problemelor economice specifice ale domeniului financiar-contabil. Problematica teoretic i aplicaiile practice sunt sistematizate n aa fel nct s asigure nsuirea raional i formarea gndirii informatice a studentului. Modul de stabilire a notei finale: nota este cea care rezult din evaluarea prin teste gril, iar pentru studenii de la zi se ofer un punct n plus pentru activitatea la seminarii. Consultaii pentru studeni: n fiecare miercuri de la ora 10 - 12 pe peioada cursurilor.
Adresa e-mail responsabil pentru contactul cu studenii: doinafusaru@yahoo.com Titularul / titularii cursului / serie: Prof. Univ dr. Fusaru Doina Str. Splaiul Independenei nr. 313, 3169785/110 Consultaii: n fiecare miercuri de la ora 10 - 12 pe perioada cursurilor.

Coninutul tematic al cursului: 1. DAT, INFORMAIE I CUNOTIN. ORGANIZAREA DATELOR N VEDEREA PRELUCRRII AUTOMATE CU AJUTORUL CALCULATOARELOR ELECTRONICE 1.1. Conceptele de societate informaional societate a cunoaterii. Sistem informaional, sistem informatic, sistem bazat pe cunotine. Dat, informaie i cunotin. 1.2. Noiuni fundamentale utilizate n organizarea datelor. 1.3. Relaiile dintre date. 1.4. Structuri de date. 1.5. Modele de date.

2. REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL PROGRAMELOR PE CALCULATOR. PROGRAMARE. 2.1 Noiuni de baz specifice procesului de prelucrare automat a datelor. 2.2 Noiuni de baz referitoare la programare. 2.3 Problematica general a limbajelor de programare. 2.4. Elementele de baz ale programrii orientate pe obiecte. 3. LIMBAJUL DE PROGRAMARE VISUAL BASIC 3.1 Caractersticile generale ale mediului integrat de dezvoltare Visual Basic. 3.2 Componentele de baz ale mediului integrat de dezvoltare Visual Basic. 3.3 Proiectarea aplicaiilor n limbajul Visual Basic. 3.3.1 Fiierul proiect. 3.3.2 Crearea interfeei aplicaiei. 3.3.3 Precizarea proprietilor. 3.3.4 Scrierea codului. 3.3.5. Execuia aplicaiei informatice n Visual Basic. 3.4. Elementele limbajului de programare Visual Basic. 3.4.1 Unele reguli de scriere. 3.4.2 Tipuri de date. 3.4.3 Variabile i constante. 3.4.4 Instruciuni Visual Basic. 3.4.4.1 Construirea expresiilor. 3.4.4.2 Operatori Visual Basic. 3.4.4.3 Funcii Visual Basic. 3.4.4.4 Implementarea structurilor de control al execuiei unui program. Instruciuni alternative (sau cu structur alternativ). Instruciuni repetitive 3.4.5 Crearea fiierelor n limbajul Visual Basic Bibliografie minimal obligatore: 1. Fusaru, D., Gherasim, Z., Andronie, M., Bra, A., Stroe, P., Aplicaii economice n Visual Basic i Access, Ed.F.R.M., Bucureti, 2007; 2. Gherasim, Z., Programare i baze de date, Ed F.R.M., Bucureti, 20057. Prezentarea leciei / capitolul 1: 1. DAT, INFORMAIE I CUNOTIN. ORGANIZAREA DATELOR N VEDEREA PRELUCRRII AUTOMATE CU AJUTORUL CALCULATOARELOR ELECTRONICE Concepte cheie: dat, informaie, cunotin, sistem informaional, sistem informatic, sistem bazat pe cunotine structuri de date, modele de date. 1.1. Conceptele de societate informaional societate a cunoaterii. Sistem informaional, sistem informatic, sistem bazat pe cunotine. Dat, informaie i cunotin. Noiunea de societate informaional (Information Society) descrie o economie i o societate n care colectarea, stocarea, prelucrarea, transmiterea, diseminarea i utilizarea informaiilor i cunotinelor, inclusiv dezvoltarea tehnicilor de comunicaie interactiv, au un rol decisiv. Factorii semnificativi n aceast dezvoltare sunt: nalta tehnologie (HighTech), industria, lumea lucrului (Work World), precum i toate formele de cultur n societate. Societatea informatic este o parte a societii informaionale care folosete progresele tehnicii de calcul n toate domeniile de activitate economico-social.

Societatea bazat pe cunotine (Knowledge-Based Society) este o parte a societii informatice care utilizeaz tehnologiile informaiei i ale comunicaiilor (IT&C) preponderent pentru prelucrarea datelor sub form de cunotine. Considernd un nivel superior (pe modelul de dezvoltare n spiral al societii umane), cel mai cuprinztor concept este cel de societate a cunoaterii (Knowledge Society). Societatea cunoaterii este fundamentat pe acumularea i utilizarea de date sub form de informaii i cunotine la nivel social. Dup acad. Mihai Drgnescu, societatea cunoaterii reprezint mai mult dect societatea informaional i dect societatea informatic, nglobndu-le de fapt pe acestea. Societatea cunoaterii folosete piese (pieces) ale cunoaterii. Societatea informaional are la baz sistemele informaionale, societatea informatic sistemele informatice, iar societatea bazat pe cunotine se fundamenteaz pe sistemele bazate pe cunotine (Knowledge-Based Systems). Sintagma folosit de Romano Prodi, fostul preedinte al Comisiei Europene, este de economie bazat pe cunotine (Knowledge-Based Economy, KBE); aceast KBE reprezint cea mai rafinat parte a noii economii (New Economy), prin noua economie nelegnd economia specific societii informaionale societii cunoaterii (SI - SC). Sistemul este un ansamblu de elemente dependente (componente, principii, reguli, relaii, etc.) care formeaz un ntreg organizat, pe baza unui plan prestabilit, cu scopul realizrii unui anumit obiectiv. Sistemul informaional reprezint acel sistem de prelucrare a informaiilor, mpreun cu resursele organizaionale asociate, cum sunt resursele umane, tehnice i financiare ce furnizeaz i distribuie informaia. Sistemul informatic reprezint partea automatizat a sistemului informaional ce realizeaz prelucrarea datelor i informaiilor folosind un sistem de calcul; este un ansamblu de echipamente i programe pe calculator (software) care asigur prelucrarea datelor. Sistemul bazat pe cunotine este o parte a sistemului informatic care proceseaz cunotine ntr-o cantitate determinant i semnificativ. Dup acad. Mihai Drgnescu, cunotina este informaie cu neles i informaie care acioneaz. Cunotina semnific ceea ce este cunoscut. ntr-o alt percepie, cunotinele sunt informaii dobndite prin instruire (educaie) i practic (experien). La modul general, datele sunt reprezentate convenional prin numere, mrimi, relaii etc. i sunt folosite la rezolvarea problemelor sau sunt obinute printr-o activitate de cercetare. Informaia reprezint elementele de noutate despre un fenomen, proces etc. Noutatea caracteristic noiunii de informaie este perceput de utilizator numai n momentul intrrii n contact cu aceast informaie. Ca urmare, din punct de vedere informatic, datele sunt informaii sau cunotine reprezentate simbolic i nregistrate n vederea gestionrii (evidenei) i/sau prelucrrii. Rezultatul prelucrrii este tot o dat care, prin interpretare, se transform iniial n informaie i apoi (nu ntotdeauna) n cunotin. Caracterul de dat, informaie sau cunotin este relativ (adic se schimb n funcie de contextul ce definete nsuirea de noutate pentru informaie i de neles i utilitate prin aciune pentru cunotin).

SOCIETATEA CUNOATERII

Fig.1.1 Ierarhia informaional a societii informaionale-societii cunoaterii

Oceanul informaional actual necesit nu numai eforturi de stocare a datelor, informaiilor i cunotinelor, dar mai cu seam de selecie, la momentul oportun a celor mai relevante i utile dintre acestea.

Se reamintete faptul c informatica este tiina prelucrrii automate a datelor. Informatica de gestiune este acea parte a informaticii care prelucreaz automat datele de eviden i control vehiculate n cadrul unei organizaii economice. Ca urmare, esena tuturor sistemelor informatice prezentate mai sus este gestionarea datelor care, interpretate de factorul uman, devin uneori, aa cum s-a artat n acest paragraf, informaii sau cunotine. 1.2 Noiuni fundamentale utilizate n organizarea datelor Datele sunt stocate n memoria intern i memoria extern a oricrui sistem de calcul. Organizarea datelor se refer la procesul de definire i structurare a datelor n colecii de date, precum i la realizarea legturilor ntre elementele unei colecii i ntre coleciile de date. Organizarea datelor se proiecteaz n scopul regsirii automate a acestora dup diverse criterii. Obiectivele organizrii datelor sunt, n principal, urmtoarele: timp de acces minim la date; apariia o singur dat a datelor n sistem; spaiu de memorie intern i extern pentru date ct mai mic; reflectarea prin organizare a tuturor legturilor dintre procesele economice pe care aceste date le reprezint; posibilitatea modificrii structurii datelor i a relaiilor dintre date fr a produce schimbri n programele care le gestioneaz. Tehnicile de organizare a datelor n colecii de date sunt: fiierul de date i baza de date. Fiierul de date reprezint o colecie de date memorat pe un suport tehnic ntr-o succesiune de nregistrri. Accesul la o nregistrare din fiierul de date se obine prin parcurgerea nregistrrilor fiierului n secvena n care au fost stocate (acces secvenial) sau pe baza unei chei de identificare care s permit regsirea rapid a nregistrrii (acces direct). Accesul direct se obine prin indexarea fiierelor, adic prin crearea unor tabele de indeci care pentru fiecare valoare a atributului cheie primar (atribut care permite identificarea n mod unic a unei nregistrri din fiier) s conin adresa corespunztoare (n cadrul fiierului) a fiecrei nregistrri. Creterea necesarului de date, informaii i cunotine pentru agenii economici i progresele tehnologiilor informaiei i ale comunicaiilor (IT&C) au determinat organizarea datelor n baze de date. O baz de date este un fiier format din nregistrri (records) sau rnduri, fiecare coninnd cmpuri (fields) sau coloane, i o mulime de operaii de cutare, sortare, recombinare etc. n proiectarea i nelegerea unui sistem informatic, organizarea datelor reprezint o etap fundamental care presupune: 1. definirea, structurarea, ordonarea i gruparea datelor n colecii de date omogene; 2. stabilirea legturilor ntre date, ntre elementele unei colecii de date i ntre coleciile de date, dup o ierarhie bine precizat; 3. memorarea datelor pe un suport informaional prelucrabil ntr-un sistem de calcul. Noiunile fundamentale folosite n organizarea datelor sunt entitatea, atributul i valoarea. ntre acestea exist legturi de interdependen astfel: o entitate are mai multe atribute, iar atributele au o anumit mulime de valori; entitatea reprezint un obiect concret sau abstract definit prin proprietile sale;

orice proprietate a unui obiect este exprimat printr-o pereche (ATRIBUT, VALOARE). Exemplul a) - materialul M are lungimea mare unde lungimea este atributul, iar mare este valoarea. (LUNGIMEA, MARE); Exemplul b) un client persoan fizic al unei societi comerciale poate fi reprezentat prin mulimea de perechi: (NUME, POPESCU); (PRENUME, ION); (LOCALITATE, BUCURETI); (TELEFON, 0213211231); (BANCA, BCR); (CONT_BANCAR, RO15RZBR0000070002170022). Mulimea atributelor M_ATR = (NUME, PRENUME, LOCALITATE, TELEFON, BANCA, CONT_BANCAR) poate fi asociat mai multor clieni ai societii comerciale. Ca urmare, atributele nu caracterizeaz doar o entitate, ci o clas de entiti care este denumit entitate de grup. Elementele unei entiti de grup prezint drept caracteristic aceeai mulime de atribute. Ca urmare, entitile din cadrul unei entiti de grup sunt de acelai tip, definindu-se astfel un tip de entitate. Atributul este denumit i cmp sau caracteristic. Un cmp poate lua o anumit clas de valori, fiind caracterizat de natura acestei clase de valori (de exemplu, atributul este numeric dac ia valori numerice, atributul este alfanumeric dac clasa de valori este reprezentat de iruri de caractere etc). Atributele compuse se obin prin concatenarea mai multor atribute elementare. Atributul care identific n mod unic o entitate se numete atribut-cheie. Caracteristicile care nu identific n mod unic o entitate se numesc atribute non-cheie. Din punctul de vedere al compunerii, datele se clasific n: date elementare sau scalare, adic data nu se mai divide n raport cu informaia sau cunotina pe care o reprezint; date compuse, adic formate din mai multe date elementare. Din punct de vedere logic, o dat este definit prin identificator, atribut i valoare. De exemplu: MATERIAL identificator PRET_UNITAR atribut 120000 valoare Din punct de vedere fizic, unei date i corespunde o zon de memorie de o anumit mrime care se afl la o adres absolut. 1.3 Relaiile dintre date ntre date exist relaii sau legturi diferite. ntre datele care aparin unor tipuri de entiti se pot realiza dou feluri de legturi: prim legtur se exprim prin apartenena datelor la entitate; a doua legtur se definete pentru entitile de acelai tip sau de tipuri diferite. Exemple: a) Dac se noteaz cu SALARIATI mulimea salariailor unei societi comerciale, ntre datele a1 i a2 ce aparin acestei mulimi, se pot defini relaii de tipul: a1 are aceeai funcie de ncadrare cu a2; a1 are acelai salariu cu a2; a1 are aceeai vrst cu a2 etc. b) Se consider dou clase de entiti: PRODUSE_BANCARE i CLIENTI. ntre datele acestor dou clase de entiti se pot defini relaiile:

un produs bancar poate fi achiziionat de unul sau mai muli clieni ai bncii; un client al bncii poate achiziiona unul sau mai multe produse bancare. 1.4. Structuri de date Structura de date este o colecie de date ntre care s-au stabilit un ansamblu de relaii pe baza crora funcioneaz un mecanism de selecie i identificare a componentelor. Mulimea de date, asociat structurii de date, poate cuprinde datele unui tip sau ale mai multor tipuri de entiti. Componentele structurii se identific prin nume sau prin poziia pe care o dein n structur n raport cu ordinea specificat. n situaia n care pentru localizarea unei componente se parcurg toate celelalte componente dinaintea ei, structura are acces secvenial. n schimb, atunci cnd o component poate fi selectat fr a ine seama de celelalte, structura are acces direct. Componentele unei structuri de date sunt date elementare sau sunt ele nsele structuri de date. Asupra unei structuri de date se pot efectua urmtoarele operaii: crearea (nseamn memorarea datelor iniiale pe suportul de stocare); actualizarea (schimbarea strii structurii prin adugare, modificare sau tergere de elemente, modificarea valorii sau relaiilor dintre elemente); consultarea (accesarea componentelor structurii de date); sortarea (aranjarea elementelor unei structuri de date n conformitate cu criterii prestabilite); ventilarea (divizarea unei structuri de date n dou sau mai multe structuri de date); fuzionarea (formarea unei structuri de date noi din dou sau mai multe structuri de date) etc. Structurile de date care prezint aceeai organizare i asupra crora se execut aceleai operaii formeaz un anumit tip de structuri de date. Tipul de structur de date reprezint o mulime ordonat de date ntre care s-au stabilit anumite relaii i pentru care realizarea operaiilor se efectueaz cu un grup de operatori de baz care au o anumit semantic. Dac se ia n considerare tipul componentelor, structurile de date se clasific n omogene (componentele sunt de acelai tip) i eterogene (componentele au tipuri diferite). Cnd structura de date se descompune n structuri de date de acelai tip, atunci structura obinut este denumit recursiv. Dup nivelul de structurare al datelor, se deosebesc structura fizic (structura de date care se refer la modul de implementare pe supori tehnici informaionali) i structura logic (modul de ordonare a datelor i modul de folosire a operatorilor de tratare a datelor). Dac se ia n considerare posibilitatea modificrii valorilor i a structurilor, se identific structuri statice (pe tot parcursul existenei acestora prezint acelai numr de componente i n aceeai ordine (adic au cardinalitate finit, prin cardinalitate nelegnd numrul elementelor mulimii)) i structuri dinamice (permit modificarea valorilor i a structurii de date prin aplicarea unor operatori; aceste structuri de date au cardinalitate infinit deoarece prezint un numr nelimitat de componente).

O structur logic poate fi implementat att ca structur static ct i ca structur dinamic. Exist ns i structuri logice ce nu pot fi implementate static. n organizarea datelor trebuie definit att structura logic, ct i cea fizic, deorece cele dou nivele se condiioneaz reciproc. Din punctul de vedere al tipului de structur de date, se deosebesc: structura de date punctual (o entitate de grup izolat); structura de date liniar (primul element nu are predecesori; ultimul element nu are succesori; ntre date se stabilesc relaii de tipul unu-la-unu; cnd ultimul element coincide cu primul element, structura liniar devine structur circular sau inelar); structura de date arborescent (este denumit i structur de date ierarhic sau descendent; exist un element unic care este denumit nodul rdcin (root node);orice nod diferit de nodul rdcin prezint un predecessor imediat unic; orice nod care nu este terminal prezint un numr finit de succesori imediai; ntre noduri se stabilesc relaii de tipul unu-la-muli); structura de date reea (acest tip de structur de date se definete cnd exist o relaie de preordine ntre elementele coleciei de date; un nod prezint mai muli predecesori; un nod poate fi predecesor pentru propriul su predecesor; ntre elementele reelei se stabilesc relaii de tipul muli-la-muli); structura de date relaional (acest tip de structur de date este format din mai multe tabele, relaii sau tablouri de date elementare). Datele i structurile de date pot fi predefinite sau definite de utilizator. n tabelul 1.1 se prezint definirea i caracteristicile principalelor structuri de date, prin evidenierea avantajelor i dezavantajelor pe care le prezint [59]. Aceste structuri de date se folosesc, n special, n programare, iar unele dintre ele sunt fundamentale i n teoria bazelor de date (cum este, de exemplu, tabloul sau tabelul (table), care este folosit n structurarea bazelor de date relaionale, aa cum se prezint n capitolul 4 al manualului). La tablou, indexul se refer la o valoare care permite accesul direct la structura de date fr a mai necesita parcurgerea secvenial a ansamblului de elemente. Indexul poate fi i o list cu cuvinte-cheie i date asociate care indic locaiile unde se gsesc fiiere sau nregistrri de pe un suport magnetic. La bazele de date, indexul este o list cu chei de nregistrri dintr-o baz de date. Tabelul 1.1 Definirea i caracteristicile unor structuri de date Denumire Tablou (table) Tablou ordonat Definire n programare, list de elemente, implementat sub forma unui vector de nregistrri sau a unei liste nlnuite. n bazele de date relaionale, structur cu linii i coloane. Avantaje Dezavantaje Inserare i acces rapid, cnd indexul este Cutare i tergere cunoscut. greoaie, Cutare mai rapid n dimensiune fixat comparaie cu tablourile neordonate.

Structur realizat dup metoda primul sosit, primul plecat, FIFO (First-In, FirstOut) Stiv Structur realizat dup (stack) metoda ultimul sosit, primul plecat, LIFO (Last-In, FirstOut) List Structur de date sub form de nlnuit list n care fiecare element al (chain list) listei asigur o adres pentru urmtorul element consecutiv al listei. Arbore binar Structur de date sub forma (binary tree) unui arbore ordonat de gradul doi. Arbore Arbori binari la care fiecare bicolor nod dispune de caracteristica (bicolor tree) culoare roie sau neagr. Arbore 2-3-4 Arbori multici n care fiecare (2-3-4 tree) nod poate prezenta cel mult patru succesori (fii). Tabel de Structur de date dispersie fundamentat pe transformarea (hash table) unui domeniu de valori ale unei anumite chei ntr-un domeniu de indici dintr-un tablou. Movil Tip de arbore binar complet (heap) implementat printr-un tablou. Coad (queue) Graf (graph)

Accesul la date se execut n ordinea introducerii acestor date. Acces greoi la celelalte elemente. Accesul la date se execut n ordinea invers introducerii acestor date. Inserare i tergere rapide Cutare greoaie.

Algoritmul tergere complicat.

de este

Cutare, inserare i tergere rapide (arbore Structuri de date echilibrat). complexe.

Structura de date cea mai rapid (inserare rapid i acces rapid pe baza unei chei).

tergere greoaie. Acces lent atunci cnd nu se cunoate cheia.

Inserare, tergere i acces rapide la elementul maxim sau minim. Structur format din noduri i Modeleaz situaii din arce ca legturi dintre noduri. universul real.

Acces greoi la celelalte elemente. Anumii algoritmi sunt greoi i complicai.

La arbori, fiecare nod al arborelui, cu excepia nodului rdcin, este succesorul unui nod unic. Fiecare nod admite unul sau mai muli subarbori ca succesori sau nu deine nici un succesor i se denumete frunz (leaf). Drumul de lungime n-1 de la nodul i1 la in reprezint o succesiune de noduri (i1, i2 ..., in), n care pentru ()ik, k n, ik+1 este un succesor imediat al lui ik. nlimea arborelui reprezint drumul de lungime maxim. Un arbore care are ordinul superior lui doi se numete arbore multici. Arborele echilibrat este un arbore la care diferena dintre drumurile de la rdcin la orice nod terminal este cel mult unu. Un arbore este ordonat dac, ntr-un mod de parcurgere prestabilit, elementele considerate satisfac o relaie de ordine. Un arbore binar are zero, unul sau cel mult doi succesori. Un arbore complet (full tree) este arborele n care, fiecare nod, cu excepia frunzelor, prezint doi succesori (fii).

Tabelele de dispersie sunt structuri de date ce semnific lista tuturor intrrilor ntr-un fiier n concordan cu numerele de dispersie ce le aparin. Codurile de dispersie (hash codes) folosite la obinerea tabelelor de dispersie sunt derivate din codurile ASCII pe baza unor funcii de dispersie. Movila (heap-ul) servete pentru implementarea cozilor cu prioriti (acele cozi care permit tergerea elementului cu cheia maxim sau minim). Graful complet este graful ale crui noduri sunt conectate dou cte dou prin intermediul unui arc. Graful orientat este graful n care parcursul pe un arc spre nod se efectueaz numai ntr-un singur sens. 1.5. Modele de date Modelarea datelor servete pentru prelucrarea datelor cu ajutorul calculatorului electronic. Definirea unui model de date cuprinde urmtoarele: structura modelului; operatorii care se utilizeaz la manipularea structurilor de date; stabilirea regulilor de integritate pentru meninerea corectitudinii datelor. Definirea structurii modelului cuprinde definirea obiectelor (entitilor) i a caracteristicilor asociate (atributelor). Se utilizeaz urmtoarele elemente: cmpul (cel mai mic element al structurii) grupul simplu sau compus (set compus din cmpuri multiple i grupuri) i nregistrarea (ansamblu de cmpuri sau grupuri care constituie i elementul generic al structurii). Relaiile dintre nregistrrile unei entiti (obiect) sau mai multor entiti (obiecte) independente se materializeaz ntr-o legtur dintre o realizare a nregistrrii printe i una sau mai multe realizri ale nregistrrii copil. Prin entitate se nelege un obiect al universului real ce este supus modelrii, obiect care este caraterizat de o identitate proprie, de o existen proprie i de o familie de caracteristici care semnific proprietile acestui obiect. Relaiile sunt denumite i asocieri. Pentru realizarea unei reprezentri grafice (sub form de diagrame) a structurii modelului se utilizeaz tehnica entitate-asociere care const n identificarea componentelor (entitilor), identificarea asocierilor dintre entiti i codificarea lor, identificarea atributelor i precizarea atributelor de identificare a entitilor. Fiecare entitate prezint mai multe realizri. Legturile dintre entiti sunt reprezentate prin arce neorientate sau orientate (fig.1.2) care stabilesc legtura ntre nodurile ce reprezint entitile participante la asociere. Semnificaia legturii este exprimat printr-un nume acordat legturii. Legtura se reprezint cu un nod etichet (sub form de romb) dispus pe arc ca nod intermediar.

Fig. 1.2. Reprezentarea relaiei CLIENI-PRODUSE i a cardinalitii Tipul sau forma legturii se evideniaz cu ajutorul cardinalitii. n figura 1 este reprezentat grafic cardinalitatea legturii ntre CLIENI-PRODUSE. Cardinalitatea legturilor semnific numrul minim i numrul maxim de realizri (instane) de entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se reprezint

10

prin perechi de numere, cte o pereche pentru fiecare entitate din cadrul legturii. Din fig.1 se observ c un anumit produs poate fi achiziionat de mai muli clieni i un client poate cumpra mai multe produse. Perechea (1,n) este asociat entitii CLIENTI i semnific faptul c un client poate s achiziioneze un produs sau poate s achiziioneze mai multe produse. Perechea (0,n) este asociat entitii PRODUSE i semnific faptul c un produs poate s nu fie achiziionat de nici un client sau poate s fie achiziionat de mai muli clieni. ntre entiti se pot stabili urmtoarele tipuri de legturi: 1. Dup cardinalitatea asocierii i dup gradul asocierii (maximele cardinalitii) se deosebesc: asocieri de tipul unu la unu (one-to-one); asocieri de tipul unu la muli (one-to-many); asocieri de tipul muli la muli (many-to-many). 2. Dup cardinalitatea asocierii i dup obligativitatea participrii entitilor la asociere (minimele cardinalitii) se difereniaz: asocieri pariale (acele asocieri care nu oblig participarea la asociere a tuturor entitilor vizate) asociere totale (complete). 3. Simultan, dup gradul asocierii i dup obligativitatea participrii la asociere, tipurile de legturi se difereniaz n: asocieri pariale de tip unu la unu; asocieri totale de tip unu la unu; asocieri pariale de tip unu la muli; asocieri totale de tip unu la muli; asocieri pariale de tip muli la muli; asocieri totale de tip muli la muli. 4. Dup numrul de entiti distincte care particip la asociere se definesc: asocieri binare (asocieri ntre dou entiti distincte); asocieri recursive (asocieri ale entitilor cu ele nsele); asocieri complexe (asocieri ntre mai mult de dou entiti distincte). Atributele reprezint proprieti distincte ale entitilor. ns ele se pot referi i la asocierile dintre entiti. Dup complexitate, atributele se clasific n atribute simple sau elementare i n atribute complexe (compuse din mai multe atribute elementare). Dup realizrile pe care le pot prezenta atributele, acestea pot fi monovaloare, multivaloare, obligatorii sau opionale. Un atribut de identificare este denumit cheie, atunci cnd este caracterizat prin unicitatea valorii sale pentru fiecare instan a entitii (de exemplu, cod_client pentru entitatea CLIENTI, cod_produs, pentru entitatea PRODUSE. Atributele cheie se marcheaz prin subliniere sau printr-o sgeat spre entitatea creia i aparin. Operatorii utilizai n modelele de date sunt citire, memorare, modificare, jonciune etc. Pentru asigurarea corectitudinii datelor se folosesc reguli de integritate. Cele mai importante modele de date sunt modelul ierarhic, modelul reea, modelul relaional i modelul orientat obiect. Modelul ierarhic conine ca structuri de baz tipuri de nregistrri care grupeaz toate atributele unei entiti. Acest model posed ierarhia ca tip de structur. Aceast ierarhie dispune de un tip de nregistrare definit ca rdcin/root i mai multe tipuri de

11

nregistrri subordonate, legate sub form de arbore, motiv pentru care modelul este denumit i arborescent. Nodul din arbore care nu este rdcin sau nod final, are un singur nod superior i unul sau mai multe noduri inferioare. Legtura de la un nod superior la unul inferior este de tipul 1m, iar legtura de la un nod inferior la unul superior este de tipul 11. Datorit existenei celor dou structuri, modelul ofer operatori separai i anume: operatori de citire pentru tipul de nregistrare; operatori de citire pentru tipul ierarhie; operatori de memorare pentru tipuri de nregistrri; operatori de memorare pentru ierarhie. n cazul modelului reea, datele sunt reprezentate ca la modelul ierarhic, cu deosebirea c fiecare inferior poate avea mai muli superiori. Structurile specifice modelului reea pot s fie tipul de nregistrri (asigur atributele unei entiti) i tipul de set (asigur legturile ntre tipurile de nregistrare). Modelul relaional este fundamentat pe teoria matematic a relaiilor, caracterizndu-se printr-o singur structur de date i anume relaia sau tabelul. Un astfel de model poate fi perceput ca o mulime de tabele obinute prin metoda normalizrii. Normalizarea pornete de la o mulime de atribute sau cmpuri de date i de la o mulime de dependene funcionale dintre atribute. Normalizarea permite obinerea unei scheme conceptuale a modelului relaional ntr-o form normalizat n care se elimin anomaliile de actualizare. Modelul orientat obiect este bazat pe structura denumit clas de obiecte ce este definit prin abstractizare din entitile desemnate. Pentru acest capitol paginile din manula 11 24. Lista subiectelor pentru pregtirea n vederea evalurii finale: 1. Conceptele de societate informaional societate a cunoaterii. 2. Dat, informaie i cunotin. 3. Sistem informaional, sistem informatic, sistem bazat pe cunotine. 4. Noiuni fundamentale utilizate n organizarea datelor. 5. Obiectivele organizrii datelor. 6. Caracteristicile fiierelor de date. 7. Ce reprezint baza de date. 8. Relaiile dintre date. 9. Structuri de date, considerente generale. 10. Clasificrile structurilor de date. 11. Care sunt structurile fundamentale pentru teoria bazelor de date. 12. Modele de date, definirea lor. 13. Definirea structurii modelului. 14. Operatorii utilizai n manipularea structutrilor de date. 15. Noiunile : entitate, atribut, valoare. 16. Tipuri de legturi ntre entiti. 17. Modelul ierarhic. 18. Modelul reea. 19. Modelul relaional. 20. Modelul orientat obiect. Teste de tipul alegere multipl (MULTIPLE CHOICE)

12

1. Organizarea datelor in fisiere prezinta avantaje si dezavantaje. Care dintre variantele urmatoare este un avantaj? a. redundanta ridicata b. izolarea datelor c. actualizarea datelor R: e Teste de tipul completare (COMPLETION) 2. Atributul se mai numete ______________. R: cmp Test de tipul coresponden (MATCHING) 3. Modelele de date au urmtoarele definiii: a. modelul ierarhic b. modelul reea c. modelul relaional d. dependenta programelor fata de date e. localizare rapida prin indexare

1. 2.

modelul n care fiecare inferior poate avea mai muli superiori modelul care are la baza teoria matematica a relaiilor

3. modelul care are ca structur de baz tipuri de nregistrri care grupeaz toate atributele unei nregistrri R: 1=b, 2=c, 3=a Capitolul urmtor trateaz noiuni de baz referitoare la prelucrarea automat a datelor, tipuri de limbaje de programare, elemente de baz ale programrii orientate pe obiecte. Prezentarea leciei / capitolul 2: 2 REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL PROGRAMELOR PE CALCULATOR. PROGRAMARE. Concepte cheie: program, programare, declaraie, instruciune, algoritm, schem logic, limbaj de programare. 2.1 Noiuni de baz specifice procesului de prelucrare automat a datelor Orice sistem de calcul (adic acel sistem tehnic care asigur execuia procesului de prelucrare automat a datelor) are n compunere, n esen, partea de hardware i partea de software. Bill Gates, patronul Microsoft spunea n anul 2002 c din totalul costurilor unui sistem de calcul, partea de hardware reprezint 5%, n timp ce partea de software reprezint 95% din totalul acelorai costuri. Problema costurilor unui sistem de calcul devine din ce n ce mai important n condiiile cerute de societatea informaional societatea cunoaterii i n conformitate cu prevederile legale referitoare la respectarea legii drepturilor de autor n domeniul software. Partea de software a unui sistem de calcul cuprinde, la rndul ei, software-ul de baz (sistemul de operare sau sistemul de programe de baz) i software-ul de aplicaie

13

(sau sistemul de programe aplicative). Un sistem informatic are funcia de prelucrare automat a datelor pentru obinerea informaiilor necesare procesului de conducere sau de informare. Procesul de prelucrare automat a datelor presupune existena simultan a urmtoarelor elemente: sistemul de echipamente (hardware), sistemul de programe de baz, sistemul de programe aplicative, datele de intrare ce sunt supuse proceselor de prelucrare automat i datele de ieire sau rezultatele prelucrrilor. n esen, acest proces de prelucrare automat a datelor este format din trei etape: introducerea (citirea) datelor de intrare, prelucrarea datelor (efectuarea calculelor) i extragerea (scrierea) rezultatelor. Este de reinut c datele de intrare sunt introduse printr-o operaie de citire - read, iar datele ce reprezint rezultate sunt obinute printr-o operaie de scriere write sau de tiprire - print a rezultatelor. Datele ce sunt prelucrate pe un sistem de calcul sunt organizate ntr-o form avantajoas pentru aplicaia informatic i sunt reprezentate ntr-o structur accesibil calculatorului. Datele sunt organizate n colecii de date n funcie de condiiile specifice impuse de sistemul informaional existent i de dorinele utilizatorilor finali din procesul de decizie. Procesul de prelucrare automat a datelor are loc ntr-o succesiune controlat de operator, adic, n accepiunea clasic, de acel utilizator final specializat n operarea pe sistemul de calcul. Etapele procesului de prelucrare a datelor pe calculator sunt materializate n urmtoarele operaii: pregtirea datelor iniiale, de regul manual, n vederea introducerii lor n procesul de prelucrare automat (citire), ce presupune verificarea, sortarea i codificarea acestor date n funcie de documentele primare existente; verificarea datelor presupune confirmarea concordanei ntre valorile prezente n documentele primare i valorile care trebuie s existe n conformitate cu aplicaia informatic concret sau problema economic cu urmeaz a fi rezolvat; sortarea datelor semnific acel tip de prelucrare prin care datele sunt dispuse ntr-o anumit ordine, n conformitate cu un anumit sistem sau cu anumite precizri ale utilizatorului; codificarea datelor nseamn operaia de atribuire de semne numerice, alfabetice sau alfanumerice unor date cu scopul de a optimiza numrul de semne cu care se scriu i se prelucreaz, de exemplu, elementele specifice sistemului informaional financiar-contabil; noiunea de document primar (de eviden primar) este cea definit n contabilitate, ca prim etap a funciei contabile, adic acel document n care se consemneaz pentru prima dat o operaie economicofinanciar (facturi, chitane, cecuri etc). Fiecare eveniment ce prezint un efect economic se nscrie ntr-un document primar n momentul i n locaia n care s-a produs. introducerea datelor iniiale n calculator, adic n memoria intern sau memoria extern a sistemului de calcul; introducerea datelor iniiale poate fi fcut direct de la tastatur (n regim conversaional) sau de pe un suport tehnic accesibil calculatorului; prelucrarea propriu-zis a datelor, ceea ce nseamn execuia automat de ctre calculator a tuturor operaiilor prestabilite prin program (validri de date, sortri, interclasri, comparri i testri); validarea de date este tipul de prelucrare ce const n verificarea datelor de intrare dac sunt corecte n raport cu un set de reguli prestabilite (dac sunt reale, coerente, corelate, corect testate, corect transferate dintr-un mediu ntraltul); interclasarea datelor reprezint tipul de prelucrare prin care se obine un ir (vector) de date ce conine toate elementele unor vectori iniiali ordonai; compararea datelor este tipul de prelucrare prin care se verific existena unor relaii de ordine ntre

14

dou date; relaia de ordine a fost definit la cursul de matematic i este o relaie binar pe o mulime de date ce stabilete ordinea de parcurgere a elementelor mulimii; testarea datelor este tipul de prelucrare prin care se verific un ansamblu de date ce sunt pregtite pentru buna funcionare a unui program; prezentarea rezultatelor prelucrrii, adic afiarea pe ecranul monitorului sau imprimarea pe hrtie; cnd rezultatele sunt folosite n prelucrri ulterioare, ele sunt stocate pe supori magnetici. Etapele i operaiile prezentate mai sus se ncadreaz n triada de aur specific oricrui sistem de calcul: stocare prelucrare- prezentare date. 2.2 Noiuni de baz referitoare la programare Rezolvarea unei probleme reprezint procesul de concepere i de implementare a unei strategii de gsire a unei soluii sau de conversie la normalitate a unor stri generate de condiii nedorite sau neateptate. n activitatea de concepere a programelor destinate calculatoarelor electronice, problema de rezolvat este definit, detaliat i transformat ntr-un proiect pe baza cruia se poate realiza un program ce poate fi rulat pe un sistem de calcul. n capitolul 1 al lucrrii s-a prezentat noiunea de sistem informatic. A rezultat astfel c orice sistem informatic conine unul sau mai multe sisteme de calcul (hard i soft), crora li se adaug restul bazei tehnico-materiale, baza tiinifico-metodologic, baza informaional, resursele umane i cadrul organizatoric. Baza tehnico-material conine echipamentele de culegere, verificare i transmitere date, echipamentele de teleprelucrare, suporturile de stocare a datelor i calculatorul propriu-zis. Baza tiinifico-metodologic cuprinde modelele matematice ale proceselor i fenomenelor economice i metodologii de realizare a sistemelor informatice. Baza informaional se refer la date, fluxuri i circuite informaionale, cataloage i dicionare de date etc. Un sistem informatic are funcia de prelucrare automat a datelor pentru obinerea informaiilor necesare procesului de conducere sau de informare. Din cele artate mai sus, rezult c procesul de prelucrare automat a datelor presupune existena simultan a urmtoarelor elemente: sistemul de echipamente (hardware), sistemul de programe de baz, sistemul de programe aplicative, datele de intrare ce sunt supuse proceselor de prelucrare automat i datele de ieire sau rezultatele prelucrrilor. n esen, acest proces de prelucrare automat a datelor este format din trei etape: introducerea (citirea) datelor de intrare, prelucrarea datelor (efectuarea calculelor) i extragerea (scrierea) rezultatelor. Este de reinut c datele de intrare sunt introduse printr-o operaie de citire - read, iar datele ce reprezint rezultate sunt obinute printr-o operaie de scriere write sau de tiprire - print a rezultatelor (fig.2.1).

CITIRE

DATE DE INTRARE

PRELUCRRI

SCRIERE
REZULTATE

Fig.2.1 Etapele procesului de prelucrare a datelor pe calculator

15

Sistemul de operare este realizat cu preponderen n limbajul de programare C, este livrat cu licen, de regul, de compania productoare a prii hardware a calculatorului i este specific unui anumit tip de platform de calcul (Windows, Unix, OS/2 etc). Programele aplicative sunt realizate prin utilizarea limbajelor de programare acceptate de ctre sistemul de calcul i de sistemul de operare al acestuia. Dar nainte de a se scrie efectiv programul, se efectueaz analiza problemei de rezolvat i se realizeaz algoritmul de calcul. Programul pe calculator este un set de instruciuni (comenzi) ce se execut de sistemul de calcul cu scopul de a efectua o succesiune de aciuni sau un tip prestabilit de activitate. Instruciunea sau comanda semnific un enun ce specific o aciune ntr-un limbaj de programare. Programul pe calculator (sau, mai simplu, programul) are n compunere, de regul, dou tipuri de enunuri: declaraii i instruciuni. Declaraia este asocierea dintre un identificator i anumite informaii. Aceast asociere este formal la realizarea programului i devine efectiv n timpul compilrii sau n timpul execuiei programului. Declaraia privete modul de organizare a datelor de intrare, pe timpul prelucrrii, precum i a datelor de ieire (rezultatelor). Identificatorul reprezint orice ir de caractere alfanumerice ce se folosete n calitate de: nume de variabil sau constant ntr-un program; etichet de regsire a unui punct din program; nume de procedur sau de funcie; nume ataat unei uniti logice de memorie extern (hard disc, dischet, compact disc, memorie flash etc.). Dintr-o alt perspectiv, orice program pe calculator reprezint un ansamblu format din date (structuri de date) i algoritmi prezentate ntr-un limbaj de programare. Noiunea de algoritm nu are o definiie riguroas. Algoritmul este o metod, un procedeu, o reet, o soluionare a unei probleme, fr ns a realiza echivalena cu aceti termeni. Dicionarele de informatic definesc algoritmul ca: o descriere a schemei de realizare a unui eveniment cu ajutorul unei mulimi finite de aciuni elementare predenumite, realizabile a priori i avnd o durat limitat n timp; un concept folosit pentru a desemna o mulime finit de operaii cunoscute care, executate ntr-o ordine bine stabilit, pornind de la o mulime de valori (date) de intrare conduc la obinerea n timp finit a unei alte mulimi de valori, valori (date) de ieire; o secven finit de pai prin care se rezolv o problem logic sau matematic. n realizarea unui algoritm este necesar satisfacerea urmtoarelor patru condiii (proprieti): claritatea, ceea ce nseamn ca algoritmul s fie bine definit (cu specificaii riguroase i fr ambiguiti); exactitatea (determinismul), adic n fiecare moment al execuiei algoritmului, se cunoate cu exactitate urmtoarea operaie, precum i modul de execuie a fiecrei operaii; descrierea cu exactitate asigur execuia algoritmului pe un sistem de calcul; universalitatea, ceea ce semnific faptul c orice algoritm, fiind ct mai universal cu putin, asigur rezolvarea unei clase largi de probleme; finitudinea, ce const n faptul c algoritmul este finit n spaiu (ca descriere) i asigur obinerea rezultatului ntr-un timp determinat de execuie, adic dup un anumit numr finit de pai.

16

Dup gndirea algoritmului, acesta se poate reprezenta sub mai multe forme; dintre aceste forme, cele mai uzuale sunt reprezentarea n limbaj pseudocod i schema logic. Limbajul pseudocod asigur descrierea algoritmilor prin intermediul a dou enunuri: standard i nestandard; enunurile nestandard sunt fraze n limbajul natural ce se folosesc, de regul, n programare pentru reprezentarea formei iniiale a algoritmilor; enunurile standard exprim operaii ce dispun de corespondene directe n instruciunile limbajului de programare. Schema logic asigur reprezentarea sub form grafic a algoritmilor. Schema logic de program se deosebete de schema logic de sistem. Schema logic de sistem descrie operaiile de prelucrare a datelor pe sistemul de calcul, cu focalizare pe sursele de date, documentele primare ce le conin, activitile ce se execut asupra lor, modul de stocare i de prezentare a rezultatelor prelucrrii. Schema logic de sistem este utilizat pentru a oferi o imagine de ansamblu a fluxurilor de date din sistemul de calcul, n timp ce schemele logice de program sunt folosite pentru detalierea anumitor procese reprezentate n schema logic de sistem. Schemele logice de program sunt independente de limbajul de programare utilizat. Schemele logice utilizeaz simboluri grafice. Pentru realizarea unui program sunt necesare trei tipuri de structuri de control, caracterizate prin aceea c au o singur intrare i o singur ieire. Aceast posibilitate se bazeaz pe teorema lui Boehm i Jacopini care arat c orice algoritm poate fi reprezentat ca o combinaie a celor trei structuri de control fundamentale: secvenial, alternative i repetitive. Structura de control secvenial (liniar) cuprinde o succesiune de blocuri care se execut unul dup altul. Structurile de control alternative (cu ramificaii) corespund unui bloc de prelucrare care se execut n functie de satisfacerea unei condiii. Aceste structuri de control prezint urmtoarele forme: structura de control alternativ cu dou ramificaii (IfThenElse); structura de control alternativ cu mai multe ramificaii (imbricat); structura de control alternativ generalizat (Case-Of). Structurile de control repetitive (de ciclare) asigur repetarea prelucrrii unor secvene de program. Formele structurilor de control repetitive sunt: structura repetitiv fr contor condiionat anterior (While Do); structura repetitiv fr contor condiionat posterior (Repeat Until); structura repetitiv cu contor condiionat anterior (DoFor); structura repetitiv cu contor condiionat posterior (DoFor). Din punct de vedere structural, un program poate avea n compunere mai multe subprograme sau module. Pot constitui subprograme, componentele programului de tipul procedurilor i/sau al funciilor. Mai multe programe alctuiesc mpreun o aplicaie informatic. Clasic, aplicaia informatic are o structur static arborescent, adic este format dintr-un program principal care apeleaz subprograme. Subprogramele sunt independente n conformitate cu principiile programrii structurate (programe constituite din subprograme sau module i folosirea structurilor de control fundamentale). Aplicaia informatic este dedicat unui anumit domeniu de activitate economic (de exemplu, aplicaie informatic de contabilitate, aplicaie informatic pentru managementul resurselor umane, aplicaie informatic pentru gestiunea creditelor bancare etc.). Noiunea de aplicaie informatic nu este similar cu aceea de sistem informatic. Limbajul de programare este un limbaj artificial ce se folosete pentru definirea unui ir de instruciuni care pot fi prelucrate i executate pe un calculator.

17

Procedura (procedure) este o parte component, cu nume, a unui program, creia i sunt associate constante, tipuri de date i variabile i care execut, de regul, un task unic. Task-ul este un subprogram sau aplicaie autonom rulat ca o entitate independent. Funcia (function) este un subprogram sau rutin care returneaz o singur valoare prin nsi numele funciei. Spre deosebire de funcie, procedura poate returna mai multe valori atunci cnd este rulat. Variabila este, n programare, o locaie de memorie n care se stocheaz date de un anumit tip i care pot fi modificate pe timpul execuiei programului. Constanta desemneaz o entitate cu nume ce reprezint o valoare care nu se modific pe timpul execuiei unui program. Structura de date este o schem de organizare a datelor cu scopul de a simplifica operaiile de prelucrare sau de a uura interpretarea lor. Exist mai multe tipuri de structuri de date: vector, nregistrare, mulime etc. Instruciunea este format din dou elemente distincte: codul operatorului i operanzii (datele supuse operaiei elementare reprezentate prin cod). n funcie de tipul prelucrrii pe care o execut, instruciunile se clasific n: instruciuni de prelucrare propriu-zis; instruciuni de organizare (structurare) care realizeaz concordana logic ntre algoritm i succesiunea intern a secvenelor de program. Instruciunile de prelucrare propriu-zis se grupeaz n: instruciuni de intrare-ieire care stabilesc sensul fluxului de date n sistemul de calcul, fiierul de date asupra cruia se efectueaz operaia i echipamentul periferic pe care se gsete acest fiier de date; fiierul de date este o colecie de date stocat pe un suport tehnic ntr-o succesiune de nregistrri; instruciunile de calcul, ce precizeaz natura operaiei, adresele operanzilor care particip la calcul i a operaiei aritmetice; instruciunile de transfer (atribuire), ce realizeaz transferul datelor, preciznd sensul transferului i adresele operanzilor. Instruciunile de organizare sunt urmtoarele: instruciunile de comparare (decizie logic), care asigur compararea a doi sau mai muli operanzi, rezultatul fiind categorisit ca adevrat (True) sau fals (False); instruciunile de salt, ce realizeaz trecerea de la secvena de instruciuni curent din program la o secven de instruciuni situat n alt punct al programului. Indiferent de limbajul de programare folosit pentru rezolvarea problemei, realizarea unui program presupune parcurgerea urmtoarelor etape: 1. Analiza problemei de rezolvat i realizarea algoritmului, etap ce presupune elaborarea unui enun complet al problemei, stabilirea modalitilor de organizare i de reprezentare a datelor de intrare i de ieire, elaborarea schemei logic de sistem care definete echipamentele din configuraia calculatorului ce particip la procesul de prelucrare a datelor, realizarea algoritmului ce presupune elaborarea i reprezentarea acestuia n limbaj pseudocod sau sub forma schemei logice de program; 2. Scrierea (introducerea) programului, ce are drept scop codificarea algoritmului, adic conversia acestuia n conformitate cu instruciunile unui limbaj de programare; pentru aceast codificare, se folosete un editor de texte; acest editor poate fi independent sau poate face parte din mediul integrat de dezvoltare (IDE); se obine astfel

18

programul-surs (codul-surs al programului) care este scris ntr-un limbaj similar cu limbajul natural, dar nc inaccesibil sistemului de calcul; 3. Compilarea programului, ce realizeaz traducerea programului-surs scris ntrun limbaj de programare de nivel nalt n program-obiect, exprimat n instruciuni codmain. Aceast operaie de traducere se obine, n mod automat, prin folosirea unei componente a sistemului de operare, numit compilator. Dup compilare, eventualele erori de codificare existente n program (numite erori de sintax ce apar datorit nerespectrii sintaxei generale a unei instruciuni) sunt depistate i afiate. Erorile de sintax sunt eliminate prin corecii aduse programului-surs, dup care operaia de compilare este reluat. Este important de menionat faptul c n etapa de compilare nu se depisteaz erorile logice din program; erorile logice sunt greeli produse la realizarea algoritmului de calcul. 4. Editarea de legturi (linkeditarea), ce asigur includerea codului obiect al programului (programul-obiect) ntr-un ansamblu executabil (programul executabil) care cuprinde i module specifice sistemului de operare, funcii de bibliotec etc. cu ajutorul componentei denumit editor de legturi (linkeditor). Eventualele erori ce apar conduc la corecii n programul-surs. 5. Testarea logic a programului, ce realizeaz verificarea final a programului pe baza unui set de date de test care acoper domeniul real de valori ale datelor de intrare ce se vor folosi n timpul exploatrii programului. 2.3 Problematica general a limbajelor de programare Limbajul de programare reprezint un limbaj artificial ce se folosete pentru definirea unui ir de instruciuni care pot fi prelucrate i executate pe un sistem de calcul. Spre deosebire de limbajele naturale (umane), limbajele artificiale au fost create cu scopuri precise: limbaje de programare, limbaje de specificare a programelor, limbaje de descriere a documentelor structurate, limbaje de schimb de date electronice, EDI (Electronic Data Interchange) etc. Limbajele de programare se definesc formal prin alfabet, vocabular i gramatici (fapt ce permite compilarea sau interpretarea lor). Alfabetul reprezint mulimea simbolurilor utilizate pentru scriere n limbajul de programare respectiv. Vocabularul este compus din mulimea cuvintelor ntrebuinate n limbaj. Gramatica limbajului de programare este reprezentat de ansamblul regulilor de scriere, cu preponderen sub aspect sintactic (mulimea regulilor de formare a instruciunilor), cu luarea n consideraie a regulilor de punctuaie i a semanticii (semnificaiilor conferite cuvintelor) i extrem de puin sub aspect morfologic (ansamblul regulilor de modificare a formei cuvintelor, n contextul utilizrii lor). Operaia de interpretare asigur execuia instruciune cu instruciune (la comanda pas cu pas a operatorului) a unui program. Un mare grad de utilizare l prezint sistemele de gestiune a bazelor de date (SGBD) ce sunt fundamentate pe limbaje de descriere a structurii bazei de date i pe limbaje de manipulare i interogare a bazei de date. SGBD-urile lucreaz cu date organizate n baze de date i programele sunt independente n raport cu descrierea datelor. Se dau ca exemple SGBD-urile FoxPro (cu o larg rspndire n Romnia n deceniul 90 al secolului trecut), Informix, Oracle, Sybase, Microsoft Access. Din categoria limbajelor de programare specializate fac parte limbajele inteligenei artificiale. Se dau ca exemple limbajele Lisp i Prolog.

19

Limbajele de programare orientate pe obiecte sunt dezvoltate n conformitate cu conceptual de programare orientat pe obiecte, OOP (Object-Oriented Programming). Programarea orientat pe obiecte semnific programarea bazat pe obiecte la care se adaug motenirea i polimorfismul (paragraful 2.4). Programarea bazat pe obiecte, OBP (Object-Based Programming) utilizeaz conceptele de clas i obiect. Dintre limbajele de programare OOP se menioneaz Pascal, C++, C#, SmallTalk, Simula, Java etc. 2.4. Elementele de baz ale programrii orientate pe obiecte Programarea orientat pe obiecte, OOP (Object-Oriented Programming). specific limbajelor de programare orientate pe obiecte, nseamn programarea bazat pe obiecte la care se adaug motenirea i polimorfismul. Programarea bazat pe obiecte, OBP (Object-Based Programming) utilizeaz conceptele de obiect i clas. Obiectul este o entitate dinamic (este creat, utilizat i apoi distrus) constituit din oricare unitate programabil i caracterizat prin identitate, metode de comportament i stare. Identitatea individualizeaz un obiect n comparaie cu alte obiecte. Metodele de comportament ale obiectului reprezint elementele comportamentale ale acestuia n momentul accesrii. Prin comportament, obiectul i pune n eviden apartenena la clas, precum i individualitatea sa. Starea obiectului este caracterizat cu ajutorul atributelor lui. Orice atribut dispune de nume i valoare sau realizare ce este asociat ca variabil de instan (ce definete proprietile obiectului la un anumit moment). Elementele ce aparin coleciei de obiecte descrise ntr-o clas reprezint instane de clas. Obiectul este definit de un identificator intern unic, independent de valoarea sau adresa de memorie a obiectului. Acest identificator nu este controlat de utilizator i nu se confund cu diferitele nume utilizate de utilizator cu scopul de a-l numi. Ca entiti complexe, obiectele sunt constituite din alte obiecte i din valori. Distincia ntre obiecte i valori se realizeaz prin intermediul strii obiectului: obiectele dispun de o stare intern care se poate schimba; valoarea nu se schimb niciodat. Obiectele sunt create de utilizatori, prin derivare din tipuri de obiecte create anterior sau printr-o operaie de creare (new). Clasa reprezint o implementare a unui tip abstract de date ce ncapsuleaz dou tipuri de atribute: cmpuri sau proprieti i metode sau operaii ale tipului respectiv. Cmpurile sunt private adic sunt ascunse n reprezentarea obiectului. Metodele sunt publice adic accesibile utilizatorului. Altfel exprimat, clasa definete o categorie de obiecte cu proprieti i metode ce se motenesc ntr-o subclas. Subclasa sau clasa derivat definete comportamentul obiectului derivat dintr-o clas considerat de baz. Clasa este un model de realizare a obiectelor de acelai tip i se definete cu ajutorul unui limbaj declarativ sau pe cale grafic. Clasa are un nume, prezint operaii externe sau metode, are o reprezentare intern (ca expresie a valorilor diverselor stri ale instanelor de clas) i folosete cod ce implementeaz att operaiile externe ct i descrierile reprezentrii interne a obiectelor. Clasa exist conceptual chiar i atunci cnd nu conine obiecte i este un ablon pentru generarea i manipularea obiectelor i este accesat de utilizator cu ajutorul interfeei specifice clasei. Specificarea metodei se numete semntur, iar modul de implementare constituie corpul metodei. Noiunea de clas este asociat n special cu faza de execuie i presupune: generarea de obiecte (new) i memorarea mulimii de obiecte care reprezint instanele claselor. O clas descrie

20

obiectele, crearea unui obiect realizndu-se prin luarea n consideraie a unei expresii de tip. Tipul reprezint o descriere abstract a unui grup de entiti asemntoare. Obiectul prezint valorile lui proprii, lista atributelor i metodelor fiind gestionate de clas. Pentru majoritatea limbajelor OOP, ansamblul instanelor unei clase reprezint o colecie care are acelai nume cu clasa i care se numete extensie a clasei. Obiectele reprezint instane (manifestri) ale claselor din care fac parte. Tipul de dat este folosit pentru descrierea unei mulimi de obiecte care au aceeai reprezentare. Fiecrui tip de dat i se asociaz anumite operaii cum ar fi de exemplu: operaii aritmetice pentru date numerice, concatenri pentru irurile de caractere, modificri pentru anumite articole. Tipul abstract de dat este un tip de dat care este definit prin accentuarea elementelor de precizare a comportamentului i de specificare a metodelor ce se pot efectua asupra variabilelor de tipul de dat respectiv (se specific att structura obiectului, ct i mesajele aplicabile lui). Tipul abstract de dat ascunde modul n care sunt implementate metodele asociate obiectului, reprezentarea intern a obiectelor i protejeaz algoritmii interni care implementeaz cererile din exterior. Acest tip abstract de dat are dou componente: interfaa (list de metode) i implementarea (descrierea structurii interne a datelor obiectului i realizarea procedurilor de implementare a metodelor interfeei). Structura aleas pentru memorarea tipului abstract de dat este ascuns pentru utilizator, ca urmare algoritmul de reprezentare este ncapsulat. Exist o interfa public, la care au acces utilizatorii, i o interfa privat ce ascunde reprezentarea i implementarea. Diferena dintre tipul de dat i clas este urmtoarea: tipul de dat este destinat pentru definirea de declaraii utilizate pentru controlul static al expresiilor de limbaj, n timp ce clasele sunt abloane destinate generrii i manipulrii obiectelor care prezint proprieti i comportament comun. ntre clase i obiecte se stabilesc relaii astfel: asociaii binare ntre dou clase, asociaii n-are ntre mai multe clase, relaii ntre obiect i clasa din care face parte, relaii ntre obiectele aceleiai clase. Exist mai multe paradigme ale modelului folosit de OOP: motenirea, ncapsularea, polimorfismul, abstractizarea datelor, persistena, evenimentul. Paradigma este un ansamblu ce detaliaz conceptele specifice unui anumit termen utilizat ca model. Paradigma se refer la forme de manifestare ale termenului respectiv. Motenirea asigur transferarea de proprieti i metode de la clasa-printe ctre un obiect nou. Prin motenire sunt generate tipuri noi de obiecte i clase ntr-o ierarhie. Prin motenire, n OOP se elimin rescrierea i recodificarea programelor, asigurndu-se reutilizarea codului. Un obiect nou motenete operaii sau metode, variabile de instan, atribute. n cazul metodelor, este vorba de partajarea codului, iar n cazul variabilelor, de partajarea structurii ntre datele obiectelor. Proiectarea unei aplicaii prin intermediul OOP const gruparea informaiilor generale n clase care sunt apoi specializate pas cu pas n subclase cu comportament particular. Metodele reprezint operaii ce pot regsi sau actualiza starea unui obiect. Aceast stare a obiectului este memorat n variabilele instanelor sale. ntr-o ierarhie de moteniri, o metod definit pentru o clas este motenit de subclasele sale. Motenirea este implementat static sau dinamic. Motenirea static nseamn adugarea cmpurilor

21

motenite, situaie n care redefinirea unei clase oblig la actualizarea tuturor subclaselor. Motenirea dinamic se realizeaz fr a se copia cmpurilor motenite i oblig la parcurgerea legturilor de motenire. n cazul motenirii dinamice, actualizarea se efectueaz mai rapid, n timp ce execuia este mai puin eficient. Motenirea poate fi simpl sau multipl. Motenirea simpl se produce atunci cnd o subclas motenete proprieti i metode ale unei singure clase-printe. Motenirea multipl se realizeaz cnd o subclas posed mai multe clase-printe. ncapsularea reprezint proprietatea ce definete posibilitatea de a ascunde prin mascare atributele proprii ale unui obiect i modul n care se execut metodele. Astfel, sunt protejate obiectele n situaia efecturii greite a unor manipulri exterioare. Un obiect poate fi accesat numai prin metodele asociate la crearea sa. Polimorfismul definete caracteristica unei metode de a se comporta n mod diferit n funcie de clasa de obiecte creia i aparine. Polimorfismul asigur invocarea pentru obiectele de diferite tipuri a metodelor cu acelai nume, dar semantic i implementare diferit. O metod se comport diferit n funcie de clasa de obiecte creia i aparine. Abstractizarea datelor se realizeaz prin faptul c nsi clasele sunt expresia unei abstracii. Obiectele dintr-o clas prelucreaz datele modelului clasei creia i aparin. Utilizatorul obine comunicarea cu obiectele prin mesaje ce se transmit prin interfaa ce specific metodele posibile. Persistena este o proprietate a obiectelor care implic existena acestora i dup ncetarea procesului care le-a creat. Starea obiectului i codul corespunztor metodelor sunt memorate n baza de date. Tipurile obiectelor pot fi declarate persistente prin folosirea cuvntului cheie persistent la momentul declarrii, variabila fiind i ea constrns la un tip persistent. Evenimentul reprezint o aciune efectuat de sistemul de calcul n cazul n care utilizatorul solicit executarea unei comenzi, este aplicat un mesaj al sistemului sau exist o solicitare din partea altei aplicaii informatice. Ca urmare, evenimentele se pot produce n mod interactiv sau programat. ntr-o aplicaie informatic dirijat prin evenimente, codul nu urmrete o cale prestabilit, ci secvene de program executate ca rspuns la apariia evenimentelor. Succesiunea n care se produc aceste evenimente determin secvena dup care se execut codul, ceea ce nseamn c la fiecare rulare a programului, el va parcurge o cale diferit. Pentru acest capitol paginile din manula 25-40. Lista subiectelor pentru pregtirea n vederea evalurii finale: 1. Noiuni de baz specifice procesului de prelucrare automat a datelor. 2. Noiuni de baz referitoare la programare. 3. Tipurile de enunuri pe care le are n compunere un program pe calculator. 4. Ce reprezint declaraiile ntr-un program. 5. Ce reprezint instruciunile ntr-un program. 6. Ce reprezint identificatorul ntr-o declaraie. 7. Concepte fundamentale n programare: program, structur de date, algoritm, limbaj de programare, declaraii, instruciuni, mediu de programare. 8. Condiiile pe care trebuie s le satisfac un algoritm. 9. Clasificarea instruciunilor n funcie de tipul prelucrrii. 10. Fazele elaborrii unui produs-program. 11. Descrierea algoritmilor. Limbajul pseudocod. Schema logic.

22

12. Structurile de control fundamentale: secveniale, alternative i repetitive. 13. Definirea noiunilor de : aplicaie informatic, limbaj de programare, procedur. 14. Etapele de realizarea unui program. 15. Problematica general a limbajelor de programare. 16. Elementele care definesc un limbaj de programare : alfabet, vocabular, gramatici. 17. Clasificarea i caracterizarea limbajelor de programare. 18. Elementele de baz ale programrii pe obiecte : clasa, metoda, tipul de dat, tipul abstract de dat, polimorfismul, motenirea, ncapsularea. Teste pentru autoevaluare: Teste de tipul completare (COMPLETION) 1. Proiectarea programului, ce are drept scop elaborarea unui ______ care detaliaz rezolvarea problemei. R: algoritm 2. Compilarea programului, constituie activitatea de _____ a programului surs scris ntr-un limbaj de nivel nalt n program obiect, exprimat n instruciuni cod-main R: traducere Teste de tipul adevrat/fals (TRUE/FALSE) 3. Clasa este noiunea de limbaj care definete tipul de fiier. R: F 4. Motenirea permite constituirea de noi tipuri de obiecte i clase ntr-o ierarhie de module, prin rescriere i recodificare. R: F 5. Metodele sunt operaii care pot regsi sau actualiza starea unui obiect, stare care este memorat n variabilele instanelor sale. R: A Capitolul urmtor trateaz problemele specifice limbajului Visual Basic: tipuri de date, funcii, variabile, constante, instruciuni de atribuire, alternative, repetitive,tipuri de fiiere utilizate n VB. Prezentarea leciei / capitolul 3: 3. LIMBAJUL DE PROGRAMARE VISUAL BASIC Concepte cheie: program, programare, declaraie, instruciune, algoritm, schem logic, limbaj de programare, procedur, funcie, programare orientat pe obiecte, aplicaie informatic Visual Basic. 3.1 Caractersticile generale ale mediului integrat de dezvoltare Visual Basic V isual Basic (VB) reprezint un mediu integrat de dezvoltare, IDE (Integrated Development Environment), n mod interactiv, pentru aplicaii informatice sub sistemul de operare Microsoft Windows. n general, un mediu de programare este un sistem de programare care asist utilizatorul este asistat n proiectarea i codificarea algoritmilor i a datelor, respectiv n editarea i depanarea programelor. Cnd acest mediu de programare asist utilizatorul (programatorul) n toate etapele de realizare a unui program, el se numete mediu de dezvoltare. Cnd toate componentele de asistare a

23

utilizatorului (programatorului) sunt integrate n cadrul aceluiai mediu de dezvoltare, el se numete mediu integrat de dezvoltare. Termenul visual din denumirea IDE Visual Basic semnific faptul c aplicaiile informatice dezvoltate n VB dispun de interfee grafice ce sunt proiectate vizual de ctre utilizator. Pentru aceasta, utilizatorul are la dispoziie un set de elemente vizuale standard ce pot fi folosite la proiectarea unei interfee grafice, denumite elemente de control, sau, pe scurt, controale (Controls). Aceste controale sunt dispuse n ferestrele aplicaiei, ferestre denumite formulare (Forms), concomitent cu stabilirea proprietilor acestora (n fereastra Properties) la dorina utilizatorului i n conformitate cu necesitile aplicaiei. Termenul Basic din compunerea IDE Visual Basic arat tipul limbajului de programare utilizat pentru realizarea programelor (secvenelor de cod) corespunztoare evenimentelor generate de acionarea controalelor dispuse n formularul specific aplicaiei. Limbajul de programare Basic (acronim provenit din denumirea n limba englez Beginners All-purpose Symbolic Instruction Code), definit la nceputul anilor 1960, a cunoscut numeroase versiuni i dezvoltri ulterioare. n anul 1991, firma Microsoft a realizat produsul Visual Basic care, ulterior, a cunoscut mai multe versiuni, n concordan cu dezvoltarea sistemului de operare Windows. Versiunea Visual Basic 6.0 face parte din pachetul Microsoft Visual Studio 6.0, iar versiunea Visual Basic.NET este parte component a pachetului Microsoft Visual Studio.NET. Visual Basic prezint caracteristici specifice programrii structurate (programrii bazate pe obiecte), programrii dirijate de evenimente, orientrii spre prelucrarea bazelor de date (manipulare i interogare). Visual Basic face parte din clasa de medii de dezvoltare rapid a aplicaiilor, RAD (Rapid Application Development), alturi de Microsoft Visual C++, Power Builder, Borland Delphi .a. ce prezint urmtoarele caracteristici: realizare rapid a aplicaiilor informatice, necesiti acceptabile de resurse informatice la execuie, separarea proiectrii prelucrrilor de proiectarea interfeei, integreaz proiectarea interfeei, scrierea codului, testarea i depanarea. n cadrul pachetului de birotic Microsoft Office, a fost inclus ca limbaj de dezvoltare un subset al Visual Basic, denumit Visual Basic for Application VBA. 3.2 Componentele de baz ale mediului integrat de dezvoltare Visual Basic Lansarea n execuie a VB 6.0 din mediul Windows se execut astfel: a) Se apas butonul Start de pe bara de task-uri; b) Se parcurge succesiunea Programs (All Programs n sistemul de operare Windows XP) - Microsoft Visual Studio 6.0 - Microsoft Visual Basic 6.0; c) La apariia ferestrei de creare a unui nou proiect - New Project, se apas butonul Open. Dup aceste aciuni, apar simultan fereastra principal a mediului integrat de dezvoltare VB (1), cutia cu instrumente Toolbox (2), fereastra de proiectare a formularului Form Design (3), fereastra de editare a codului Code Editor (4), fereastra Project Explorer (5), fereastra de stabilire a proprietilor Properties (6), fereastra Form Layout (7), fereastra Immediate (8), fereastra Locals (9), fereastra Watch (10), utilitarul Object Browser (11), aa cum sunt prezentate n fig.2. Ferestrele care nu apar la pornirea VB i sunt necesare pentru lucru, pot fi activate prin urmtoarea succesiune de comenzi: bara cu meniuri View poziionare pe denumirea ferestrei click. Fereastra principal a mediului integrat de dezvoltare VB are patru componente: bara de meniuri (1), bara cu instrumente (2) i dou zone care afieaz poziia (3) i dimensiunea (4) obiectului ce a fost selectat (obiectul curent). Butoanele de pe bara cu instrumente (Toolbar) dubleaz cele mai utilizate comenzi din bara de meniuri. Meniurile contextuale cuprind comenzi rapide pentru aciunile efectuate n mod frecvent. Pentru deschiderea unui meniu contextual se poziioneaz vrful mouse-ului pe obiectul care trebuie folosit, se apas butonul din dreapta mouse-ului, se selecteaz comanda dorit concomitent cu click executat cu butonul din stnga mouse-ului.

24

Cutia cu instrumente, Toolbox, (fereastra 2 din fig.3.1), asigur instrumentele predefinite folosite n timpul proiectrii formularului pentru a introduce controale pe acesta. Utilizatorul poate crea propriile controale, imagini sau grafic prin selecia opiunii AddTab din meniul contextual. Fereastra de proiectare a formularului, Form Design (fereastra 3 din fig.3.1), este fereastra pentru realizarea interfeei dintre utilizator i secvenele de program. Fereastra de editare a codului, Code Editor (fereastra 4 din fig.3.1), este folosit ca editor de texte pentru a introduce codul aplicaiei informatice. Fiecare formular sau modul de cod din cadrul aplicaiei informatice dispune de propria fereastr de editare a codului.

Fig.3.1. Componentele de baz ale IDE Visual Basic Fereastra Project Explorer (fereastra 5 din fig.3.1), servete numai la proiectarea aplicaiei pentru afiarea coleciei de fiiere ce conin formularele i modulele din cadrul proiectului aflat n lucru (curent). Unele fiiere sunt ncrcate n mod automat de ctre sistem, iar alte fiiere sunt realizate de ctre utilizator (programator). Fiierele care se gsesc n fereastr (proiect) se pot grupa pe categorii cu ajutorul butonului Toggle Folders. Butonul View Object servete pentru vizualizarea obiectului selectat (current), iar butonul View Code este folosit pentru vizualizarea codului. Fereastra de stabilire a proprietilor, Properties (fereastra 6 din fig.3.1), asigur afiarea valorilor proprietilor pentru formularul sau controlul selectat. O proprietate reprezint o caracteristic a unui obiect (titlu, dimensiuni, poziie, culoare etc.). Fereastra Form Layout (fereastra 7 din fig.3.1), este folosit pentru vizualizarea aspectului formularului. Fereastra Immediate (fereastra 8 din fig.3.1), este o fereastr suplimentar utilizat n procesul de depanare a aplicaiilor informatice rulate din interiorul mediului IDE. Mediul VB 6.0 permite funcionarea n trei moduri de lucru: proiectare (design mode), rulare normal (run mode) i execuie cu ntrerupere (break mode). Execuia cu

25

ntrerupere (pas cu pas) se utilizeaz la depanarea aplicaiei pe baza punctelor de ntrerupere (breakpoints) stabilite n prealabil. Fereastra Immediate permite introducerea de secvene de cod care se execut imediat sau afiarea valorilor unor expresii. Fereastra Locals (fereastra 9 din fig.3.1) este destinat, la depanarea programelor VB, pentru afiarea valorilor unor expresii din program. Fereastra Watch (fereastra 10 din fig.3.1) este, de asemenea, o fereastr suplimentar utilizat n procesul de depanare a programelor VB, pentru gestiunea variabilelor i expresiilor watch, adic a valorilor unor variabile i expresii din program existente n momentul aciunii (curente). Utilizarea ferestrei Watch este posibil prin intermediul meniului contextual. Utilitarul Object Browser (fereastra 11 din fig.3.1) realizeaz afiarea obiectelor disponibile n IDE ce pot fi utilizate de proiect. Utilitarul servete, de asemenea, pentru a examina obiecte din VB i din alte aplicaii, pentru a constata ce metode i proprieti sunt disponibile n cazul acestor obiecte i pentru a prelua coduri de program n propria aplicaie informatic. Editorul de meniu (Menu Editor) permite proiectarea meniurilor asociate formularelor. Pentru afiarea ferestrei corespunztoare, se apas butonul cu acelai nume de pe bara cu instrumente sau prin opiunea Menu Editor din meniul Tools. Fiecare meniu are nume, proprieti i mod de accesare asociat.
3.3 Proiectarea aplicaiilor n limbajul Visual Basic Pentru a proiecta o aplicaie informatic n limbajul Visual Basic, este necesar parcurgerea urmtoarelor trei etape: 1. Crearea interfeei. 2. Precizarea proprietilor. 3. Scrierea codului. Crearea interfeei se efectueaz cu ajutorul formularelor (Forms). Acestea servesc pentru a genera ferestre i casete de dialog, n calitate de containere pentru elemente care se gsesc n partea ascuns a aplicaiei. Precizarea proprietilor se realizeaz prin intermediul ferestrei Properties, dup selecia prealabil a obiectului. Scrierea codului se execut folosind fereastra de editare a codului, Code Editor. Crearea aplicaiilor n VB se face n modul de proiectare Design Mode, iar execuia acestora se efectueaz n modul de rulare normal, Run Mode. nainte de prezentarea n detaliu a celor trei etape de proiectare a unei aplicaii n VB, se trateaz fiierul proiect. 3.3.1 Fiierul proiect Termenul de proiect n VB este similar cu aplicaia informatic, astfel c el cuprinde o list a fiierelor care intr n compunerea aplicaiei. Fiierul proiect este un fiier text cu extensia .VBP. Mediul de dezvoltare VB 6.0 asigur posibilitatea lucrului cu mai multe proiecte concomitent, proiecte ce sunt reunite ntr-un grup de proiecte (fiierul grup de proiecte are extensia .VBG). n lista de fiiere a unui proiect pot fi incluse urmtoarele tipuri de fiiere: fiier pentru formular (.FRM); fiier pentru formular care cuprinde controale cu proprieti care prezint ca valori date binare (.FRX); fiier pentru clas de module (.CLS); fiier pentru modul standard (.BAS); fiier pentru control utilizator (.VBX DDL-uri pentru controale pe 16 bii i .OCX - DDL-uri pentru controale pe 32 de bii ). Din punctual de vedere al utilizatorului, proiectul are n compunere module existente n mediul integrat de dezvoltare (IDE) Visual Basic, n format binar, i module realizate de utilizator (formular, cod, clas). Aa cum s-a precizat n paragraful 2.3 (fig.2.5), modulul reprezint un termen generic care desemneaz entitatea de structurare a unui program. Modulele sunt reutilizabile, ceea ce nseamn c un modul folosit ntr-un program, poate fi utilizat ulterior

26

i n alte programe. Modulul definete reguli de vizibilitate adic elementele declarate n interiorul lui pot fi sau nu pot fi vizibile n exteriorul acestui modul. Orice proiect trebuie s includ cel puin un modul (modul de formular sau modul de cod). Atunci cnd au fost definite toate componentele unui proiect, acesta poate fi transformat direct ntr-un fiier executabil (.EXE), astfel: 1. din meniul File (fig.3.2, opiunea notat 6), se selecteaz opiunea Make EXE; 2. se introduce numele fiierului executabil n caseta File Name i se apas butonul OK.

Fig.3.2 Meniul File Crearea, deschiderea i salvarea unui proiect (fig.3.6) se efectueaz prin intermediul comenzilor disponibile n meniul File, astfel: New Project (1) servete pentru crearea unui proiect nou, adugnd un nou formular i, eventual, module, referine i obiecte utilizator cuprinse n fiierul Auto32ld.VBP; Open Project (2) deschide un proiect existent, cu formularele, modulele i obiectele utilizator listate n fiierul proiect; Save Project As(5) asigur prima salvare a proiectului n lucru sau schimbarea numelui unui proiect existent pentru conservarea stadiului la care s-a ajuns i continuarea lucrului cu un alt nume de proiect; Save Project actualizeaz, prin salvare pe disc, fiierul proiect al aplicaiei existente mpreun cu toate formularele, clasele de module i modulele standard. Aa cum se deduce din descrierea opiunilor de salvare a proiectului de mai sus, realizarea aplicaiei este terminat atunci cnd se selecteaz comanda Save Project As(5) din meniul File sau cnd se selecteaz butonul Save Project din linia de butoane. Mediul Visual Basic solicit salvarea, pe rnd, a formularului i apoi a proiectului prin introducerea numelui dar i a unitii logice de memorie, precum i a cii unde se dorete a avea loc salvarea. n mod implicit, mediul Visual Basic asigur salvarea n locaia C:\Program Files\Microsoft Visual Studio\VB98 (Save In). Pentru salvarea unui proiect, se recomand particularizarea numelui proiectului i folosirea unei uniti logice de memorare i a unei ci personalizate a utilizatorului pentru fiecare proiect, ca, de exemplu: Homes(D:)\Student\Facultatea\Grupa\Nume_prenume_student\Nume proiect.

27

Cnd se lucreaz cu mai multe proiecte, la un anume moment un singur proiect este activ. ntre aceste proiecte cu care se lucreaz simultan, se pot partaja fiiere. Un fiier, cum este. de exemplu, un formular, poate aparine mai multor proiecte. Crearea unor formulare, module i controale noi se efectueaz cu comenzile din meniul Project (fig.3.3).

Fig. 3.3 Meniul Project 3.3.2 Crearea interfeei aplicaiei Crearea interfeei unei aplicaii se realizeaz cu ajutorul unui obiect denumit formular (Form). n multe lucrri destinate VB, echivalentul romnesc pentru Form este form. n lucrarea de fa s-a preferat denumirea de formular dei cea de form este mai apropiat de termenul n limba englez (crearea formularului nseamn de fapt turnarea controalelor ntr-o form adecvat interfeei aplicaiei). Motivul preferinei pentru formular este asigurarea lizibilitii apariiei denumirii acestui obiect n explicaiile din cuprinsul lucrrii, dei n dicionarele limbii romne, formularul, n general, este definit ca un imprimat cu mai multe spaii albe ce se completeaz n vederea ntocmirii unui tabel. Formularul este un container de controale care faciliteaz dialogul dintre utilizator i aplicaie. Controalele nu pot funciona n afara formularului. Ele sunt obiecte care elibereraz programul de sarcinile legate de intrrile i ieirile generate de aciunile utilizatorului, concentrnd eforturile pe operaiile de prelucrare a datelor. Avantajul controalelor din VB este c ele se aseamn foarte mult cu controalele standard ce apar n sistemul de operare Windows (meniuri, butoane, casete). Controalele uureaz munca de programare n sensul c sunt eliminate instruciunile care s ghideze utilizatorul asupra aciunilor pe care acesta trebuie s le ntreprind. La proiectarea interfeei aplicaiei (Design Mode), fereastra de proiectare a formularului servete pentru dispunerea controalelor necesare proiectului. La rularea programului (Run Mode), formularul ndeplinete rolul de fereastr principal a proiectului sau de fereastr de dialog. La pornirea mediului VB, fereastra de proiectare a formularului cu numele implicit (default) Form1 este dispus n centrul ecranului. n interiorul acestei ferestre se gsesc linii punctate cu rolul de a asigura orientarea utilizatorului, iar la marginea ferestrei sunt dispuse mnerele de redimensionare a formularului. Este bine ca, nc de la crearea formularului, s se

28

opteze pentru o dimensiune potrivit a formularului n raport cu numrul de controale introduse i de dimensiunile acestora; nu este estetic i nici practic s rmn zone mari nefolosite pe suprafaa formularului. Un formular include descrierea grafic a acestuia, controalele sale, proprietile, constantele, variabilele i procedurile externe, subrutinele de tratare a evenimentelor, procedurile generale. Fiecrui formular i corespunde un modul de formular (Form Module). Clasa de module (Class Module) este asemntoare formularului, dar nu dispune de interfa utilizator vizibil. Clasa de module poate fi folosit pentru crearea obiectelor utilizator, cuprinznd secvene de cod pentru metodele i proprietile obiectelor definite. Obiectele care aparin aceleai clase nu sunt nzestrate cu evenimente proprii.

Fig.3.4 Caseta cu instrumente (ToolBox) Mediul VB asigur interfa pentru un singur document (SDI) sau interfaa multidocument (MDI). n cazul SDI, toate ferestrele mediului VB pot fi deplasate pe ecran, iar n cazul MDI, toate ferestrele mediului integrat de dezvoltare VB (numite fii) sunt incluse ntr-o fereastr unic (numit printe) ce poate fi redimensionat. Pentru a obine comutarea ntre modurile de lucru SDI i MDI se realizeaz urmtoarea succesiune de aciuni: 1. se selecteaz Options (opiuni) din meniul Tools; efectul este apariia casetei de dialog Options; 2. se selecteaz Advanced; 3. se valideaz sau se invalideaz caseta SDI Developement Environement. n fig.3.4 sunt prezentate controalele implicite incluse n caseta cu instrumente (Toolbox). Controalele standard sunt butoanele de comand (nr.14, Command Button), casetele cu text (nr.13, TextBox), etichetele (nr.2, Label), casetele de validare (nr.4, Check Box), butoanele de opiuni (nr.15, Option Button), casetele cu list (nr.16, ListBox), casetele cu imagine (nr.12, PictureBox), barele de defilare (nr.6 i nr.17, ScrollBar) orizontale i verticale, casetele combinate (ComboBox). Se face meniunea c aceast caset cu instrumente (Toolbox) este configurabil. Adugarea sau scoaterea de controale din caseta cu instrumente (Toolbox) se obine din meniul Project, opiunea Components (opiunea 8 din fig.3.3), n care se valideaz controlul dorit (aa cum este prezentat n fig.3.5 pentru controlul Shockwave Flash).

29

Fig.3.5 Modul de adugare a unui control la cutia cu instrumente (Toolbox) Introducerea unui control din cutia cu instrumente (Toolbox) pe suprafaa formularului se obine prin parcurgerea etapelor urmtoare: a. se deplaseaz cursorul mouse-ului n cutia cu instrumente (Toolbox), pe pictograma care reprezint controlul ce urmeaz a fi introdus n formular i se acioneaz butonul din stnga al mouse-lui; b. se mut cursorul mouse-ului pe suprafaa formularului, n poziia n care va fi colul stng al controlului; c. se efectueaz succesiunea de operaii de tipul Drug and Drop pn se dimensioneaz dup dorin controlul selectat; d. se elibereaz butonul stng al mouse-ului. O alt modalitate de introducere a controlului selectat pe suprafaa formularului este reprezentat de dublu-click-ul mouse-ului pe pictograma (icon-ul) controlului din cutia cu instrumente (Toolbox). Se genereaz astfel un control cu dimensiunile implicite, dispus n centrul formularului. Dispunerea controalelor pe suprafaa formularului se face dup o anumit logic legat de succesiunea operaiilor importante de introducere date, prelucrare i afiare rezultate. Fiecare control este caracterizat de un ansamblu de proprieti ce se refer la descrierea comportamentului sau aspectului unui control. Limea sau nlimea unui control se msoar n twip (un twip reprezentnd cel mai mic punct adresabil de pe ecran, cu dimensiunea de 1/1440 inch). Aa cum se va arta n paragraful urmtor, fereastra Properties permite modificarea ntre limite prestabilite a valorilor diferitelor proprieti ale controalelor. Focalizarea reprezint operaiunea de punere n eviden a unui control la un moment dat; mai precis, acel control devine activ prin focalizare. Acel control activ se mai numete i focar (focus). Acest lucru se pune n eviden printr-o linie punctat n jurul controlului sau printr-un titlu ngroat. Mutarea focarului de la un control la altul se efectueaz prin intermediul tastelor Tab sau Shift+Tab. Apsarea tastei Enter va determina aciunea controlului focar sau focalizat. Ordinea de parcurgere a controalelor n formular reprezint ordinea n care controalele sunt puse n eviden prin focalizare, odat cu apsarea succesiv a tastei Tab. n momentul activrii formularului, este stabilit primul control care este focalizat. Proprietile comune tuturor controalelor din formular care stabilesc ordinea de parcurgere a controalelor sunt TabIndex

30

(poziia) i TabStop (oprirea). Ordinea de parcurgere a controalelor este circular i n ambele sensuri nainte (Tab) i napoi (Shift+Tab). Un control poate include o tast fierbinte (Hot Key) ce este evideniat printr-o liter subliniat. Prin aciunea Alt+litera subliniat, se provoac aciunea controlului respectiv. Litera subliniat se introduce cu ajutorul proprietii Caption prin precedare de un ampersand (&). Redimensionarea unui control introdus deja pe suprafaa formularului se obine astfel: 1) se selecteaz controlul de redimensionat prin click executat cu mouse-ul n interiorul suprafeei acestui control. Pe marginile controlului apar mnerele de redimensionare; 2) se fixeaz cursorul mouse-ului n dreptul unui mner de redimensionare i se mic innd apsat butonul stng al mouse-ului, pn se obine dimensiunea dorit. Mnerele situate n colurile suprafeei controlului redimensioneaz controalele att pe vertical ct i pe orizontal, iar mnerele dispunse pe laturi redimensioneaz controlul numai ntr-o singur direcie. 3) se elibereaz butonul stng al mouse-ului. Mutarea unui control pe suprafaa formularului se realizeaz cu mouse-ul prin tehnica Drug and Drop. Dup finalizarea proiectrii formularului, blocarea tuturor controalelor pe suprafaa formularului se obine din meniul Format cu opiunea Lock Controls sau cu butonul Lock Controls Toggle de pe bara cu instrumente Form Editor. Formularele sau controalele VB au associate, n cadrul proiectului, proceduri eveniment vide care sunt personalizate n momentul execuiei aplicaiei. Pentru exemplificarea etapei de creare a interfeei aplicaiei, n continuare se propune s se introduc controalele pentru un formular care s constituie interfaa pentru urmtoarea aplicaie informatic: S se realizeze un program n limbajul Visual Basic care s calculeze valoarea total a unei facturi de materiale. Deocamdat, factura conine un singur material la o rulare a programului. Datele de intrare sunt: numr factur (Nrf), data facturii (Df), codul materialului (Codmat), denumirea materialului (Denmat), cantitate (Cant) i preul unitar al materialului (Pu). TVA este de 19%. Datele de intrare vor fi introduse cu ajutorul casetelor text (Text Box) cu etichete pentru fiecare dintre ele. Rezultatele rulrii programului se vor afia n casete text separate pentru valoare material fr TVA (Vmftva), valoare material cu TVA (Vmctva), valoare factur fr TVA (Vfftva) i valoare factur cu TVA (Vfctva). Se vor prevedea butoane de comand (Command Button) pentru calculul i afiarea unui material (fr TVA i cu TVA) butonul CALCULEAZA i pentru calculul valorii facturii (fr TVA i cu TVA) butonul AFISEAZA. Pentru afiarea denumirilor pentru datele de intrare (Nrf, Df, Codmat, Denmat, Cant i Pu), a datelor intermediare (Vmftva i Vmctva) i a datelor de ieire sau rezultatelor (Vfftva i Vfctva), se folosesc controale de tip etichet (Label). Aceste controale de tip etichet se gsesc n caseta cu intrumente (Toolbox) cu simbolul grafic prezentat n fig.3.8. Controalele se introduc n formular prin tehnica Drug and Drop i se dimensioneaz cu ajutorul mnerelor de dimensionare (Label1Label10). n mod similar se procedeaz cu casetele text (Text Box) cu simbolul grafic prezentat n fig.3.8, casete care servesc, n cazul formulat n enunul aplicaiei informatice (un singur material pe factur), pentru introducerea datelor de intrare i afiarea datelor intermediare i de ieire (Text1Text2), precum i cu butoanele de comand (Command Button) ce se vor folosi pentru declanarea procedurilor de calcul (Command1), de afiare a valorii facturii (Command2) i de ieire din program (Command3). Aspectul formularului astfel obinut este prezentar n fig.3.6. 3.3.3 Precizarea proprietilor Precizarea proprietilor n etapa de proiectare (Design Mode) a formularului sau a altui obiect vizual se realizeaz cu ajutorul ferestrei Properties (fig.3.11). Fereastra Properties este format din caseta cu obiecte, Objects (afieaz numele i tipul obiectului selectat, adic obiectul curent) i caseta Settings setri (afieaz alfabetic sau pe categorii lista proprietilor stnga i lista cu valorile sau setrile proprietilor dreapta).

31

1 Fig.3.6 Crearea formularului pentru aplicaia informatic cu factura de materiale

Fig.3.7 Fereastra Properties Activarea ferestrei Properties se poate obine prin succesiunea de comenzi meniu principal View Properties Window sau cu ajutorul tastei funcionale F4. Precizarea proprietilor se obine prin parcurgerea urmtoarele etape:

32

1) dac nu este afiat, se activeaz fereastra Properties; se selecteaz obiectul cruia urmeaz s i se precizeze proprietile; n acest moment, se afieaz automat proprietile cu valorile implicite pentru obiectul selectat; 2) din lista alfabetic sau lista pe categorii a proprietilor se selecteaz denumirea proprietii la care se vor modifica valorile sau setrile existente; 3) n coloana valorilor sau setrilor din dreapta se tasteaz sau se selecteaz valorile dorite pentru proprietate. Pentru a asocia o pictogram unui formular se atribuie o valoare proprietii icon pentru acel formular. Pentru exemplificarea etapei de precizare a proprietilor, se continu aplicaia cu factura materiale din paragraful 3.3.2, precizndu-se proprietile de baz Name i Caption pentru formular i controalele introduse de tipul Label, TextBox (numai Name) i Command Button prin selectarea succesiv a acestora. Personalizarea numelui pentru formular se obine prin introducerea n fereastra Properties a numelui (Name) frmMat i a etichetei (Caption) FACTURA MATERIALE. Personalizarea numelui pentru controalele de tip etichet (Label) se obine prin introducerea n fereastra Properties a numelui (Name) lblNrf i a etichetei (Caption) Numar factura, respectiv: lblDf (Name), Data factura (Caption); lblCodmat (Name), Cod material (Caption); lblDenmat (Name), Denumire material (Caption); lblCant (Name), Cantitate (Caption); lblPu (Name), Pret unitar (Caption); lblVmftva (Name), Valoare material fara TVA (Caption); lblVmctva (Name), Valoare material cu TVA (Caption); lblVfftva (Name), Valoare factura fara TVA (Caption); lblVfctva (Name), Valoare factura cu TVA (Caption). Personalizarea numelui pentru controalele de tip caseta cu text (TextBoxl) se obine prin introducerea n fereastra Properties a: txtNrf (Name) pentru Numar factura; txtDf (Name) pentru Data factura; txtCodmat (Name) pentru Cod material; txtDenmat (Name) pentru Denumire material; txtCant (Name) pentru Cantitate; txtPu (Name) pentru Pret unitar; txtVmftva (Name) pentru Valoare material fara TVA; txtVmctva (Name) pentru Valoare material cu TVA; txtVfftva (Name) pentru Valoare factura fara TVA; txtVfctva (Name) pentru Valoare factura cu TV. Personalizarea numelui pentru controalele de tip butoane de comand (Command Button) se obine prin introducerea n fereastra Properties a: cmdCalcul (Name), CALCULEAZA (Caption); cmdAfisare (Name), AFISARE VALOARE FACTURA (Caption); cmdExit (Name), IESIRE (Caption). Explicaiile privind formarea numelui obiectelor cu prefixe standard vor fi date n paragraful 3.4.1. Aspectul formularului obinut prin precizarea proprietilor formularului i controalelor incluse este prezentat n fig.3.8.

33

Fig.3.8. Introducerea proprietilor formularului i controalelor incluse pentru aplicaia informatic cu factura de materiale 3.3.4 Scrierea codului Dup proiectarea formularului i precizarea proprietilor, urmeaz scrierea codului care const n asocierea unor secvene de cod pentru toate controalele din formular, adic moduri de aciune la diverse evenimente. Codul conine constante, declaraii de variabile i instruciuni scrise n limbajul de programare Visual Basic, n conformitate cu algoritmul de calcul. Legarea efectiv de control sau fereastr a secvenelor de cod se obine de ctre utilizator (programator) n mod conversaional. Pentru scrierea codului se deschide fereastra de editare a codului (Code Editor), fig.3.9. prin dublu-click executat cu butonul stng al mouse-ului poziionat pe obiectul selectat. Fereastra de editare a codului (Code Editor) este format din fereastra principal ce reprezint zona pentru scrierea codului i dou casete de tip list din care se selecteaz controlul pentru care se scrie codul (Object) i, respectiv, din care se alege evenimentul la care se reacioneaz prin codul scris pentru procedur n fereastra principal (Procedure). Codul din proiectele realizate n VB se divide n blocuri de dimensiuni mai mici numite proceduri. Codul care corespunde unui eveniment se numete procedur eveniment. Proceduraeveniment asociat unui control are numele alctuit din numele controlului (stabilit n proprietatea Name), o liniu de subliniere (_) i numele evenimentului.

34

Fig.3.9. Fereastra editare a codului, Code Editor Atunci cnd se deschide fereastra de cod i se selecteaz evenimentul pentru care se scrie codul, se genereaz automat prima i ultima linie a procedurii (Private Sub Form_Load () i End Sub) ce constituie un ablon de lucru. Pentru crearea unei proceduri-eveniment se execut urmtoarea succesiune de aciuni: caseta Object se specific numele obiectului din formularul curent (adic cel care este focalizat) pentru care se scrie codul caseta cu list Procedure selecie nume eveniment asociat obiectului selectat (de exemplu, procedura Click implicit pentru controlul buton de comand, Command Button) ablon pentru procedura-eveniment ntre declaraiile Private Sub i End Sub, se introduce de la tastatur codul n conformitate cu algoritmul de calcul. Se poate opta pentru afiarea tuturor procedurilor n aceeai fereastr de cod sau pentru afiarea unei singure proceduri la un moment dat. Pentru afiarea tuturor procedurilor n cadrul aceleiai fereastre de cod, se execut clic pe butonul de vizualizare a ntregului modul, Full Module View (fig.3.9), n colul din stnga-jos al ferestrei de editare a codului, Code Editor sau se execut urmtoarea succesiune de aciuni: meniul Tools caseta de dialog Options (fig.3.8) seciunea Editor (1) grupul de setri pentru fereastr, Window Settings (2), bif n caseta de validare din stnga lui Default to Full Module View (3). n acelai grup de setri pentru fereastr, caseta de validare din stnga lui Procedure Separator (4) servete la adugarea sau eliminarea unei linii de separaie ntre proceduri (fig.3.10). Pentru afiarea unei singure proceduri la un moment dat, se execut click pe butonul de vizualizare a procedurii, Procedure View (fig.3.9), n colul din stnga-jos al ferestrei de editare a codului, Code Editor sau se execut urmtoarea succesiune de aciuni: meniul Tools caseta de dialog Options (fig.3.10) seciunea Editor (1) n grupul de setri pentru fereastr, Window Settings (2), se terge bifa din caseta de validare din stnga lui Default to Full Module View (3).

35

Fig.3.10 Fereastra de opiuni, Options a meniului de instrumente, Tools Pentru exemplificarea etapei de scriere a codului unei aplicaii informatice n Visual Basic, se continu aplicaia cu factura de materiale din paragrafele 3.3.2 i 3.3.3. Codul aferent se introduce n fereastra de editare a codului (Code Editor) care a fost prezentat n fig.3.13. Explicaiile privind logica scrierii acestui cod vor fi date n paragraful 3.4. Codul pentru aplicaia cu factura de materiale este prezentat n fig.3.11 3.3.5. Execuia aplicaiei informatice n Visual Basic Dup parcurgerea etapelor de creare a interfeei (proiectarea formularului), de precizare a proprietilor i de scriere a codului, toate fiierele aplicaiei sunt salvate i se trece de la modul de proiectare (Design Mode) la modul de rulare (execuie) a proiectului (Run Mode). Pentru a lansa n execuie aplicaia se alege opiunea Start din meniul Run (fig.3.12) sau se acioneaz tasta funcional F5 sau se execut cu butonul stng al mouse-ului click pe butonul Start de pe bara cu instrumente. Terminarea rulrii proiectului se efectueaz cu opiunea End din meniul Run (fig.3.12) sau prin apsarea butonului de nchidere (Close) a ferestrei aplicaiei (colul din dreapta sus al ferestrei) sau prin apsarea butonului End de la bara cu instrumente (fig.3.3). Dup terminarea execuiei aplicaiei, mediul VB revine n modul de proiectare (Design Mode). Prin rularea proiectului, se obine fiierul executabil. Aa cum s-a artat n paragraful 3.3.1, fiierul executabil se poate obine direct din meniul File cu opiunea Make EXE (fig.3.3).

36

Fig.3.11 Codul pentru aplicaia cu factura de materiale introdus n fereastra de editare a codului Relund aplicaia cu factura de materiale din paragrafele 3.3.2, 3.3.3 i 3.3.4, aceast aplicaie se ruleaz cu seturile de date de intrare prezentate n tabelul 3.2 (se consider materiale consumabile pentru tehnica de calcul, iar pentru simplificare nu se introduc unitile de msur, acestea fiind topuri, buci, role, cutii) i se obin rezultatele prezentate n fig.3.13, pentru setul de date nr.2 din tabelul 3.2.

37

Fig.3.12 Comanda execuiei unei aplicaii n VB Tabelul 3.2 Exemple de seturi de consumabile pentru tehnica de calcul Nr. Numar Data crt. factura factura 1 16844 16/10/2004 2 16844 16/10/2004 3 4 5 16844 16844 16844 date de intrare pentru aplicaia cu factura de materiale Cod material 41000825 41081320 Denumire material Hirtie xerox Cartus imprimanta Hirtie fax Ribon Toner copiator Canti tate 30 5 5 10 3 Pret unitar 120000 4280000 230000 620000 1200000

16/10/2004 41061223 16/10/2004 41081422 16/10/2004 41061154

Fig.3.13 Rezultatele rulrii aplicaiei cu factura de materiale cu setul nr.2 de date de intrare din tabelul 3.2.

3.4. Elementele limbajului de programare Visual Basic 3.4.1 Unele reguli de scriere O proprietate esenial a unui obiect n Visual Basic este numele (Name). Numele este folosit pentru a referi un obiect particular n cadrul codului. Numele obiectului trebuie s fie sugestiv i s arate, n cazul controalelor, grupul de controale cruia i aparine. Ca urmare, s-a adoptat convenia conform creia un nume trebuie s fie format dintr-un prefix din trei litere (dat de notaia ungar) i numele propriu-zis cu semnificaie

38

pentru utilizarea obiectului. Prefixul numelui (Tabelul 1) indic, n mod unic, grupul de controale din care face parte. Tabelul 1 Stabilirea numelor unor obiecte n Visual Basic Nume obiect Prefix standard Exemple Data dat datSalarii Form frm frmMateriale, frmClienti Command Button cmd, btn cmdCalcul, btnExit Label lbl lblDobinda, lblSumaInitiala TextBox txt txtDobinda, txtSumaInitiala Menu mnu mnuEvaluare Check Box chk chkImpozit Frame fra fraSelectie Image img imgOrase, imgProfesori List Box lst lstDiscipline, lstStudenti Option Button opt optCursuri Picture Box pic picTools Numele obiectelor pot avea maxim 40 de caractere, trebuie s nceap cu o liter i pot conine numai litere, numere i underscore ( _ ). n cadrul mai larg al ntregului limbaj Visual Basic, cu setul de caractere ASCII extins ce formeaz alfabetul acestui limbaj, se construiesc literalii i identificatorii. Literalii sunt compui din iruri de caractere. Literalii pot fi de tipul literali iruri de caractere i sunt scrii ntre ghilimele, i de tipul literali numerici zecimali (n baza 10), octali (n baza 8), hexazecimali (n baza 16). Identificatorii pot fi predefinii (cuvinte rezervate i cuvinte-cheie ce desemneaz instruciuni, funcii, operatori, metode) sau pot fi definii de utilizator (ce desemneaz obiecte, variabile, tipuri de date, constante, etichete, proceduri). Instruciunile specifice limbajului Visual Basic se obin prin combinarea literalilor, identificatorilor i cuvintelor rezervate. Pentru lizibilitatea codului, fiecare instruciune se scrie pe o linie separat. Dac o instruciune nu ncape pe o linie, se poate continua pe linia urmtoare prin caracterul underscore (_). Se pot folosi 20 astfel de linii de continuare a unei instruciuni. Numele sunt folosite la setarea proprietilor la momentul execuiei i n stabilirea numelor procedurilor pentru evenimentele obiectelor. Setarea proprietilor la momentul execuiei se obine prin scrierea unui cod. Formatul acestui cod se scrie prin notarea cu punct i este: Nume obiect. proprietate = noua valoare (Object Name. Property = New value). n Visual Basic, numele obiectelor sunt utilizate n setarea unui cadru de lucru (framework) corespunztor procedurilor eveniment, pentru scrierea codului. Formatul fiecrei subrutine (n Visual Basic nu exist program principal; toate procedurile obiectelor sunt subrutine) este: Private Sub Object Name_Event (Optional Arguments) End Sub. Formularului i se ataeaz un obiect. Visual Basic construiete automat un cadru de lucru (framework) pentru fiecare dintre procedurile eveniment. Utilizatorul care construiete aplicaia trebuie s scrie codul procedurilor eveniment la care corespunde aplicaia.

39

3.4.2 Tipuri de date Tipurile de date reprezint natura datelor n cadrul unui limbaj de programare. n limbajul Visual Basic, tipurile de date sunt predefinite (standard) sau definite de utilizator. n tabelul 2 sunt prezentate tipurile de date predefinite cele mai utilizate. Tipurile de date definte de utilizator se obin prin combinarea mai multor tipuri de date existente n structuri de date. Declararea tipurilor de date definite de utilizator se efectueaz n seciunea Declaration (din modulul standard) cu TypeEnd Type care are sintaxa general: [Private/Public] Type nume_tip_data_utilizator Nume_1 As tip_data_1 Nume_2 As tip_data_2 Nume_n As tip_data_n End Type Tipurile de date definite de utilizator se declar la nivelul modulelor standard, de clas sau formular (numai Private). Aceste tipuri de date nu pot fi declarate la nivelul unei proceduri. Tabelul 2 Tipurile de date predefinite n Visual Basic Tip romn Tip englez Sufix Memorie Interval de valori (domeniu) ocupat 1 0255 Octet Byte ntreg Integer % 2 -32768+32767 ntreg lung Long & 4 2.147.483.648+2.147.483.647 (integer) Logic Boolean 2 True, False Real simpl Single 4 -3,40 e38+3,40 e38 precizie (floating) ! Real dubl Double 8 -1,8 e308+1,8 e308 precizie (floating) # Moned Currency @ 8 -9,22 e14+9,22 e14 Dat Date 8 Jan 01/100-dec 31/9999 Obiect Object 4 Adresa unui obiect ir de String $ 1 octet/ ir de caractere alfanumerice caractere caracter Nedefinit Variant ir, numere, dat De exemplu, tipul de date definite de utilizator Client are urmtoarea structur: Type Client Nume_client As String *20 Prenume_client As String *20 Adresa_client As Adresa CNP_client As String *13 End Type unde tipul de date definit de utilizator Adresa are structura: Type Adresa Localitate As String *20 Strada As String *20 Numar As Integer Judet As String *20 End Type

40

3.4.3 Variabile i constante Variabilele care se folosesc ntr-un program desemneaz locaii de memorie n care se stocheaz valori ce se modific pe timpul execuiei programului. O variabil n limbajul Visual Basic are un nume (identificator) format astfel: maxim 40 de caractere; numele include: litere, numere, underscore (): primul caracter trebuie s fie o liter; nu se pot folosi ca nume de variabile, cuvintele rezervate, care fac parte din setul de cuvinte cheie al limbajului. Corespunztor variabilei care se dorete a fi creat i utilizat, utilizatorul poate s stabileasc tipul de dat asociat prin folosirea unui sufix de natura tip de dat care va putea fi stocat sau prelucrat prin intermediul respectivei variabile. n tabelul 3.4 s-au prezentat tipurile de date, sufixul asociat i intervalul de valori. Exist trei moduri de declarare a unei variabile: a) Prin lips (din oficiu). Dac variabila nu este definit n nici un mod, ea este presupus Variant, adic un tip de dat Visual Basic care poate conine: valori numerice, iruri de caractere sau dat calendaristic. b) Implicit. Declararea implicit este dat prin folosirea sufixului corespunztor. De exemplu, o variabil de tip String (ir de caractere) poate fi declarat implicit astfel: Material$ = Cherestea iar o variabil de tip Integer se poate declara implicit astfel: Cantitatea% = 273 c) Explicit. Acest mod de declarare a unei variabile prezint mai multe avantaje: asigur efectuarea unui calcul corect prin intermediul instruciunilor care utilizeaz variabilele respective i permite identificarea, gestionarea corect a apariiei literelor mari sau a literelor mici n numele variabilelor. Datorit acestor avantaje, se prefer lucrul cu tipurile de variabile explicite. Pentru a putea lucra cu variabile declarate explicit trebuie s fie cunoscut domeniul de valabilitate i anume: 1 domeniul procedurilor; 2 domeniul procedurilor n care variabilele se declar static; 3 domeniul formularelor i modulelor; 4 domeniul nivelului global. De exemplu, pentru domeniul procedurilor, variabilele sunt declarate folosind cuvntul cheie Dim: Dim Denumire_material As String Dim Cantitate As Integer Dim Pret_unitar As Single. Variabilele declarate la nivelul procedurilor i vor pstra valorile numai pe timpul rulrii procedurilor respective. Din acest motiv se mai numesc i variabile locale. Pentru ca variabilele s-i pstreze valorile i dup terminarea procedurii, se folosete domeniul procedurilor n care variabilele se declar static, cuvntul-cheie Dim fiind nlocuit cu Static. De exemplu: Static Denumire_material As String Static Cantitate As Integer Static Pret_unitar As Single. Pentru domeniul domeniul formularelor i modulelor, variabilele i menin valorile la nivelul formularului (modulului), relativ la toate procedurile prin declararea variabilelor cu Dim, dar n partea de declaraii a obiectului general, n fereastra de cod a formularului. Pentru domeniul domeniul nivelului global, o variabil este disponibil tuturor procedurilor prezentate n aplicaie, prin declararea n partea de declaraii a obiectului general din fereastra de cod a unui modul cu ajutorul cuvntului cheie Global. De exemplu: Global Nr_factura As Long Global Data_factura As Date.

41

n cazul mai multor variabile cu acelai nume, variabilele locale au valabilitate numai n cadrul procedurilor. La prsirea acestor proceduri se folosesc variabilele cu acelai nume, dar definite la nivel superior. Procedura de introducere a acestor variabile globale este urmtoarea: se execut dublu-click oriunde n fereastra formularului pentru a deschide fereastra de editare a codului (sau se selecteaz opiunea View Code din fereastra Project); se declar variabilele din formular astfel: Option Explicit (foreaz declararea variabilelor) Global Nr_factura As Long Global Data_factura As Date. Constante simbolice utilizate n Visual Basic n cele mai multe situaii, funciile i obiectele limbajului Visual Basic necesit argumente pentru efectuarea operaiilor specifice, argumente care reprezint constante numerice. Acestea sunt greu de interpretat din punct de vedere al utilizatorului. Pentru a le face inteligibile, limbajul Visual Basic asigur nume celor mai utilizate valori i acestea se numesc constante simbolice. De exemplu, pentru setarea fondului formularului frmMat pe culoarea albastr se poate scrie: frmMat. Back Color = 0XFF0000 sau, folosind constanta simbolic pentru albastru: frmMat. Back Color = VBBlue Utilizatorul i poate defini propriile constante ca de exemplu: const TVA = 0.19. Constantele de utilizator se scriu cu litere mari, pentru a le distinge de variabile. Domeniul de valabilitate al unei constante este similar cu cel al variabilelor. 3.4.4 Instruciuni Visual Basic 3.4.4.1 Construirea expresiilor Cea mai simpl instruciune este cea de atribuire, formatul ei este: Let variabil = expresie. De exemplu: Let Vmftva = Cant *Pu Let Vfftva =Vfftva + Vmftva Let Nume_client = Georgescu Constantin Utilizatorul poate tasta sau nu cuvntul Let dar este obligat s exprime numele variabilei i expresia pe baza creia se deduce coninutul. Vmftva = Cant *Pu Vfftva =Vfftva + Vmftva Nume_client = Georgescu Constantin Instruciunile se scriu de obicei pe o singur linie fr delimitator. Pentru a putea scrie mai multe instruciuni pe o linie se folosete separatorul :. Observaie: se recomand folosirea atent a acestui delimitator cnd este folosit structura If End If. Dac o instruciune este foarte lung, ea poate continua pe urmtoarea linie, folosind caracterul de continuare underscore _. De exemplu: Print Tab(2); "COD_MATERIAL"; Tab(20); "DEN_MATERIAL"; Tab(41); "CANT"; _ Tab(48); "PRET_UNITAR"; Tab(70); "VAL_M_FARA_TVA"; Tab(100); _ "VAL_M_CU_TVA" Comentariile ncep cu cuvntul cheie Rem sau . De exemplu: Rem Acesta reprezinta un comentariu Acesta reprezinta un exemplu de comentariu. 3.4.4.2 Operatori Visual Basic Operatorii Visual Basic, n ordinea claselor de preceden, sunt prezentati n tabelul 3. Precedena operatorilor (clasele de preceden) se refer la ordinea n care se

42

execut operaiile ntr-o expresie care conine mai multe tipuri de operatori. Primii sunt executai operatorii de concatenare, dup care urmeaz operatorii arithmetic, operatorii de comparare i, la sfrit, operatorii logici. Operatorii pot fi unari (se aplic unui singur operand, de exemplu, Not) sau binari (prezint doi operatori, de exemplu, +. -, *, /, And, Or etc.). 3.4.4.3 Funcii Visual Basic Funcia (Function) reprezint o mulime ordonat de instruciuni creat n scopul ndeplinirii unei sarcini (task) bine precizat i repetabil. Funcia returneaz un singur rezultat. Funciile Visual Basic sunt predefinite sau definite de utilizator. Visual Basic asigur o bibliotec variat de funcii predefinite. n tabelul 4 sunt prezentate principalele funcii predefinite specifice limbajului Visual Basic. Tabelul 3 Clasele de preceden ale operatorilor n Visual Basic Clasa Operator Operaia 1. And, Or, Not Logic 2. Mod Modulo 3. <,>,<=,>=,=,<> Comparare + Adunare Scdere 4. ^ Exponeniere (ridicare la putere) \ mprire ntreag 5. * nmulire / mprire () [] Stabilire prioritate calcul 6. &, + Concatenare ir de caractere Tabelul 4 Principalele funcii predefinite ale limbajului Visual Basic Funcie Valoare returnat Abs Valoarea absolut a unui numr Asc Codul ASCII sau ANSI al unui caracter Chr Caracterul corespunztor unui cod ASCII sau ANSI Cos Cosinusul unui unghi Date Data curent ca ir de caractere Format Dat sau numr convertite la un ir de caractere Left Selecteaz partea stng a unui ir de caractere Len Numrul de caractere dintr-un ir de caractere (lungimea irului de caractere) Mid Selecteaz o parte din irul de caractere Now Data i ora curent Right Selecteaz partea de sfrit a unei ir de caractere Rnd Generarea aleatoare a unui numr Sin Sinusul unui unghi Sqr Rdcin ptrat dintr-un numr Str Numr transformat ntr-un ir de caractere Time Timpul curent dat ca ir de caractere Timer Numr de secunde rmase pn la miezul nopii (ora 0)

43

3.4.4.4 Implementarea structurilor de control al execuiei unui program S-au prezentat cele trei structuri de control fundamentale: structura de control secvenial (liniar), structurile de control alternative (cu ramificaii) i structurile de control repetitive (de ciclare). Tuturor acestor structuri de control fundamentale le sunt asociate instruciuni specifice n limbajul de programare Visual Basic, cu ajutorul crora poate fi controlat logica de execuie a oricrei secvene de program n Visual Basic. Acestor instruciuni li se altur comenzile asociate operaiunilor de intrare/ieire specifice introducerii datelor de intrare, respectiv extragerii rezultatelor prelucrrilor, precum i instruciunile de transfer. Instruciuni alternative (sau cu structur alternativ) Instruciunea If cea mai simpl form a acestei instruciuni este: If condiie Then instruciune De exemplu: If TVA=0.19 Then Vmctva=Vmftva + TVA * Vmftva Cnd n instruciunea If, dup cuvntul cheie Then urmeaz mai multe instruciuni, sintaxa general a instruciunii este: If condiie Then Secven de instruciuni End If De exemplu: If TVA=0.19 Then Vmctva=Vmftva + TVA * Vmftva Vfctva = Vfctva + Vmctva Print Tab(70); Vmctva; Tab(100); Vfctva End If O alt form a instruciunii If este: If Then Else End If. De exemplu: If TVA = 0.19 Then Vmctva=Vmftva + TVA * Vmftva Vfctva = Vfctva + Vmctva Print Tab(70); Vmctva; Tab(100); Vfctva Else Print TVA diferit de 19% End If Instruciunea Select Case Instruciunea Select Case se folosete n cazul cnd sunt precizate mai multe selecii. Sintaxa general a instruciunii este urmtoarea: Select Case variabil Case Is variabil sau expresie instruciuni Case Is variabil sau expresie instruciune Case Else instruciune End Select De exemplu, pentru selecia persoanelor dup categoria de vrst (Categoria_varsta) se procedeaz astfel: Select Case Vrsta Case Is 5 Categoria_varsta = Copii sub 12 ani Case Is 13 TO 19 Categoria_varsta = Adolesceni Case Is 20 TO 35, 50, 60 TO 65 Categoria_varsta = Aduli Case Is > 65 Categoria_varsta = Btrni

44

Case Else Categoria_varsta = Alte categorii End Select Instruciuni repetitive Ciclarea este asigurat prin formatul general Do Loop. Ciclrile implementeaz operaiile care se repet de un anumit numr de ori, ciclarea repetndu-se pn cnd se ndeplinete o condiie specificat, ntlnit la nceputul sau sfritul ciclrii. Instruciuni care implementeaz structuri de control repetitive condiionate anterior Din aceast categorie fac parte instruciunile Do {While|Until}Loop i While Wend care au urmtoarele sintaxe generale: Do [{While|Until} conditie] Secventa_instructiuni_1 [Exit Do] Secventa_instructiuni_2 Loop, respectiv: While conditie Secventa_instructiuni Wend Cnd conditie este adevrat (True), se execut secvena imediat de instruciuni. Instruciunea While Wend nu permite ieirea forat din ciclare. Instruciuni care implementeaz structuri de control repetitive condiionate posterior Din aceast categorie fac parte instruciunile Do Loop {While|Until}care au urmtoarea sintax general: Do [Secventa_instructiuni_1] [Exit Do] [Secventa_instructiuni_2] Loop {While|Until} conditie Un exemplu de utilizare a instruciunii Do Loop Until este urmtorul: Do Cant = InputBox("Introduceti cantitatea materialului: ") Pu = InputBox("Introduceti pretul unitar al materialului: ") Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva Print Cant; Tab(48); Pu; Tab(70); Vmftva; Tab(100); Vmctva Loop Until MsgBox("CONTINUATI?", vbYesNo) = vbNo Ciclarea se repet pn cnd rspunsul la ntrebarea CONTINUATI? va fi No (Nu). Instruciuni care implementeaz structuri de control repetitive cu contor n acest caz, numrul de iteraii este cunoscut. Din aceast categorie face parte instruciunea For Next care are urmtoarea sintax general: For contor=valoare_initiala To valoare_finala [Step pas] [Secventa_instructiuni_1] [Exit For] [Secventa_instructiuni_2] Next [contor]. Un exemplu de folosire a acestei instruciuni este urmtorul: For i = 1 To Nrm Cant = InputBox("Introduceti cantitatea materialului nr: " & i) Pu = InputBox("Introduceti pretul unitar al materialului nr: " & i) Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva

45

txtVmftva = Format(Vmftva, "######0.00") txtVmctva = Format(Vmctva, "######0.00") Next i. 3.4.5 Crearea fiierelor n limbajul Visual Basic Limbajul Visual Basic ofer posibilitatea lucrului cu fiiere (definite n capitolul 1). Fiierele pot stoca date de tipuri diferite (date numerice, text, imagini). Accesul la datele unui fiier poate fi: binar; secvenial; aleator. Pentru accesul binar trebuie localizat n fiier numrul de caractere care urmeaz a fi citite sau scrise. Pentru accesul secvenial trebuie parcurse toate nregistrrile care preced nregistrarea dorit. Accesul aleator este un acces direct la nregistrrile de mrime fix, fr a necesita citirea nregistrrilor precedente. Operaiile care se pot executa asupra fiierelor sunt: 1. deschiderea fiierelor; 2. nchiderea fiierelor; 3. exploatarea fiierelor n acces secvenial; 4. exploatarea fiierelor n acces aleator. 1. Pentru deschiderea unui fiier se folosete comanda OPEN. Orice fiier, nainte de a se lucra cu el, trebuie s fie deschis. Comanda OPEN aloc zone de memorie tampon pentru operaiile de intrare/ieire i specific modul de acces asociat zonei tampon. Formatul general al acestei comenzi este: OPEN nume-fiier FOR mod deschidere AS # numr-fiier LEN = expresie n care: nume-fiier este un ir de caractere care desemneaz numele de fiier dar poate cuprinde i un director i o unitate de disc. Dac fiierul nu exist n momentul deschiderii lui, el va fi creat cnd se execut comanda OPEN. mod de deschidere specific modul n care se deschide acel fiier. Pentru accesul secvenial se poate specifica: APPEND pentru adugare de noi nregistrri la sfritul fiierului deja existent; INPUT pentru citirea nregistrrilor din fiier; OUTPUT pentru crearea unui nou fiier. Pentru accesul binar se specific BINARY, iar pentru accesul aleator, RANDOM. numr-fiier este un numr cuprins ntre 1-511. n modurile Binary, Input sau Random se poate deschide un fiier utiliznd un numr nou, fr a nchide n prealabil copia deschis anterior; n modurile Append sau Output trebuie s se nchid n prealabil fiierul pentru a-l putea deschide cu un alt numr; pentru lucrul simultan cu mai multe fiiere n expresia #numr-fiier se utilizeaz funcia FREEFILE care returneaz urmtorul numr de fiier care poate fi utilizat n instruciunea OPEN; expresie este un numr mai mic sau egal cu 32767. n cazul utilizrii fiierelor deschise RANDOM, acest numr corespunde lungimii unei nregistrri. 2. nchiderea fiierelor se execut prin intermediul comenzii CLOSE care are urmtoarea sintax general: CLOSE list-numere-fiiere n care: list-numere-fiiere specific unul sau mai multe numere separate prin virgul. Cnd acest argument este absent, se nchid toate fiierele. Cnd se nchid fiierele care au fost deschise n mod Append sau Output toate datele care sunt n zona tampon acordat fiierului vor fi scrise n fiier nainte de a fi nchis. La execuia instruciunii CLOSE, asocierea dintre fiier i numrul lui este dezactivat. 3. Exploatarea fiierelor n acces secvenial. Tipul de acces secvenial este utilizat pentru a citi sau scrie o nregistrare de aceeai lungime sau pentru fiiere compuse din nregistrri de lungimi diferite. Comanda PRINT # scrie datele linie cu linie ntr-un fiier secvenial deschis n mod Output sau Append. Sintaxa general a acestei comenzi este: Print # numr-fiier, list-expresii unde:

46

numr-fiier este numele fiierului. lista-expresii este o expresie ir sau numeric sau o list de expresii care se scrie n fiier. Pentru a scrie o linie goal dup numr-fiier se pune virgul. Comanda LINE INPUT # este folosit pentru a citi o linie dintr-un fiier secvenial. Linia citit este atribuit unei variabile ir. Sintaxa comenzii este: LINE INPUT # numr-fiier, nume-variabil n care: numr-fiier este numrul fiierului; nume-variabil este o variabil ir. LINE INPUT # citete din fiier caracter cu caracter pn ntlnete retur de car, chr (13) sau retur de car i salt la linie nou chr (13) + chr (10). 4. Exploatarea fiierelor n acces aleator. La deschiderea fiierului n acces RANDOM se precizeaz lungimea nregistrrii. Scrierea unei nregistrri n fiier se face cu comanda PUT # care scrie dintr-o variabil ntr-un fiier. Sintaxa comenzii este: PUT [#] numr-fiier, numr nregistrare, nume-variabil n care: numr-fiier este numrul fiierului; numr nregistrare reprezint lungimea nregistrrii determinnd poziia scrierii; nume-variabil este numele variabilei care conine datele care urmeaz a fi scrise. Citirea unei nregistrri din fiier se face citind ntr-o variabil dat din fiier. Comanda este GET # de forma: GET [#] numr-fiier, numr-nregistrare, nume-variabil, n care: numr-fiier este numrul alocat n prealabil fiierului; numr-nregistrare este numrul nregistrrii care nmulit cu lungimea nregistrrii stabilete poziia citirii nume-variabil este numele variabilei care conine datele care urmeaz a fi citite. 3.4.6 Exemplu de aplicaie informatic n limbajul Visual Basic S se realizeze un program n limbajul Visual Basic care s calculeze valoarea total (fr TVA i cu TVA) a unei facturi de materiale. Factura conine un numr precizat de materiale. Datele de intrare sunt: numrul de materiale de pe factur (Nrm), numr factur (Nrf), data facturii (Df), codul materialului (Codmat), denumirea materialului (Denmat), cantitate (Cant) i preul unitar al materialului (Pu). TVA este de 19%. Datele de intrare vor fi introduse cu ajutorul casetelor de introducere a datelor prin dialog cu utilizatorul (InputBox). Datele de intrare (Nrm, Nrf, Df, Codmat, Denmat, Cant, Pu), datele intermediare (Vmftva i Vmctva) i datele de ieire sau rezultatele rulrii programului (Vfftva i Vfctva) se vor afia n casetele text (TextBox) separate din formular. Lucrul cu casete text n formular reprezint o prim variant de rezolvare a problemei cu calculul i afiarea valorii facturii de materiale cu un numr precizat de materiale. Varianta a doua de rezolvare a problemei const n afiarea, sub form de tabel, pe formular, a datelor de intrare, a datelor intermediare i a rezultatelor rulrii aplicaiei. n aceast variant de rezolvare a problemei, nu se mai folosesc casete text (TextBox). n ambele variante de rezolvare a problemei, se prevd butoane de comand (Command Button) pentru calculul i afiarea unui material (fr TVA i cu TVA) butonul CALCULEAZA, pentru calculul valorii facturii (fr TVA i cu TVA) butonul AFISEAZA (pentru afiarea valorii facturii fr TVA i cu TVA) i pentru ieirea din program butonul IESIRE.

47

Vfftva = 0; Vfctva = 0; TVA = 0.19; i=1;

Vmftva= Cant * Pu; Vmctva=Vmftva + TVA * Vmftva; Vfftva=Vfftva + Vmftva; Vfctva = Vfctva + Vmctva;

i=i+1

48

Fig.3.14. Schema logic pentru varianta 1 de rezolvare a problemei Dim Data_factura As Date Dim Vmftva As Double Dim Vmctva As Double Dim Vfftva As Double Dim Vfctva As Double Dim Nrm As Byte Const tva = 0.19 Private Sub cmdCalcul_Click() Dim Cod_mat As Long Dim Den_mat As String Dim Cant As Integer Dim Pu As Single Dim i As Byte Nr_factura = InputBox("Introduceti numarul facturii: ") txtNrf = Format(Nr_factura, "######0") Data_factura = InputBox("Introduceti data facturii sub forma zz/ll/aaaa") txtDf = Format(Data_factura, "Short Date") Nrm = InputBox("Introduceti numarul de materiale de pe factura: ") Vfftva = 0 Vfctva = 0 For i = 1 To Nrm Cod_mat = InputBox("Introduceti codul materialului nr: " & i) txtCodmat = Format(Cod_mat, "######0") Den_mat = InputBox("Introduceti denumirea materialului nr: " & i) txtDenmat = Format(Den_mat, "######0") Cant = InputBox("Introduceti cantitatea materialului nr: " & i) txtCant = Format(Cant, "######0") Pu = InputBox("Introduceti pretul unitar al materialului nr: " & i) txtPu = Format(Pu, "######0.00") Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva Vfftva = Vfftva + Vmftva Vfctva = Vfctva + Vmctva txtVmftva = Format(Vmftva, "######0.00") txtVmctva = Format(Vmctva, "######0.00") Next i End Sub Private Sub cmdAfisare_Click() txtVfftva = Format(Vfftva, "######0.00") txtVfctva = Format(Vfctva, "######0.00") End Sub Private Sub cmdExit_Click() End End Sub Rezultatele rulrii programului n prima variant de rezolvare a problemei sunt prezentat n fig.3.15.

49

Fig.3.15 Rezultatele rulrii programului realizat n varianta 1 Varianta 2 de rezolvare a problemei Schema logic este prezentat n fig.3.16, Este utilizat o structur de control repetitiv fr contor condiionat posterior. Implementarea acestei structuri n program se va face cu instruciunea Do Loop Until. Pe baza acestor considerente, nu mai sunt necesare variabilele i i Nrm folosite n varianta 1 de rezolvare a problemei. Codul programului n limbajul Visual Basic, pentru rezolvarea n varianta 2, este urmtorul:

50

Vfftva = 0; Vfctva = 0;
TVA=0,19

Vmftva= Cant * Pu; Vmctva=Vmftva + TVA * Vmftva; Vfftva=Vfftva + Vmftva; Vfctva = Vfctva + Vmctva;

Fig.3.16. Schema logic pentru varianta 2 de rezolvare a probleme

51

Option Explicit Dim Nrf As Long Dim Df As Date Dim Vmftva As Double Dim Vmctva As Double Dim Vfftva As Double Dim Vfctva As Double Const tva = 0.19 Private Sub cmdCalcul_Click() Dim Cod_mat As Long Dim Den_mat As String Dim Cant As Integer Dim Pu As Single Nrf = InputBox("Introduceti numarul facturii: ") Df = InputBox("Introduceti data facturii sub forma zz/ll/aaaa") Cls Print Tab(10); "FACTURA NR."; Tab(28); Nrf; Tab(45); "DIN DATA DE "; Tab(70); Df Print String(110, "=") Print Tab(2); "COD_MATERIAL"; Tab(20); "DEN_MATERIAL"; Tab(41); "CANT"; _ Tab(48); "PRET_UNITAR"; Tab(70); "VAL_M_FARA_TVA"; Tab(100); _ "VAL_M_CU_TVA" Print String(110, "=") Vfftva = 0 Vfctva = 0 Do Cod_mat = InputBox("Introduceti codul materialului: ") Den_mat = InputBox("Introduceti denumirea materialului: ") Cant = InputBox("Introduceti cantitatea materialului: ") Pu = InputBox("Introduceti pretul unitar al materialului: ") Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva Vfftva = Vfftva + Vmftva Vfctva = Vfctva + Vmctva Print Tab(2); Cod_mat; Tab(20); Den_mat; Tab(41); Cant; Tab(48); Pu; _ Tab(70); Vmftva; Tab(100); Vmctva Loop Until MsgBox("CONTINUATI?", vbYesNo) = vbNo Print String(110, "=") End Sub Private Sub cmdAfisare_Click() Print Tab(20); "VALOARE FACTURA FARA TVA = "; Tab(60); Vfftva; Print Tab(20); "VALOARE FACTURA CU TVA = "; Tab(60); Vfctva; End Sub Private Sub cmdExit_Click() End End Sub Rezultatele rulrii programului n a doua variant de rezolvare a problemei, sunt prezentate n fig.3.17.

52

Fig.3.17. Rezultatele rulrii programului n a doua variant de rezolvare a problemei Pentru acest capitol paginile din manula 44-74. Lista subiectelor pentru pregtirea n vederea evalurii finale: 1. Caracterizarea mediului integrat de dezvoltare Visual Basic: definire, descriere, elemente componente, structura unei aplicaii. 2. Etapele realizrii unei aplicaii Visual Basic. Descrierea ferestrelor de lucru. 3. Noiunea de proiect n limbajul Visual Basic. 4. Fiierul proiect: coninut. 5. Definirea fiierelor componente ale proiectului. 6. Crearea interfeei aplicaiei. 7. Ce reprezint ferestrele care apar la crearea unui nou proiect: fereastra principal a mediului integrat de dezvoltare VB, ToolBox, Form Design, Code Editor, Project Explorer, Properties, Form Layout, Immediate, Locals, Watch, utilitarul Object Browser. 8. Precizarea proprietilor obiectelor : care sunt cele mai importante proprieti i modul lor de setare. 9. Stabilirea proprietilor la momentul execuiei. 10. Descrierea principalelor controale din fereastra ToolBox. 11. Scrierea codului n limbajul Visual Basic i ce particulariti prezint acesta. 12. Execuia aplicaiei informatice n Visual Basic. 13. Caracterizarea elementelor de baz ale limbajului de programare Visual Basic. 14. Reguli de scriere n limbajul Visual Basic. 15. Tipuri de date n limbajul Visual Basic. 16. Variabile Visual Basic. 17. Constante Visual Basic. 18. Constantele simbolice utilizate de limbajul Visual Basic. 19. Instruciuni Visual Basic. Construirea expresiilor. 20. Operatori n Visual Basic. Clase de preceden. 21. Functii n limbajul Visual Basic.

53

22. Funcii pentru iruri de caractere. 23. Funcii de editare. 24. Funcii financiare. 25. Implementarea structurilor de control pentru execuia unui program. 26. Instruciuni de atribuire n VB. 27. Instruciuni alternative (sau cu structur alternativ) 28. Instruciuni repetitive(sau cu structur repetitiv) . 29. Crearea fiierelor n Visual Basic. 30. Operaii i instruciuni de deschidera fiierelor. 31. Operaii i instruciuni de nchiderea fiierelor. 32. Operaii i instruciuni de exploatare a fiierelor n acces secvenial. 33. Operaii i instruciuni de exploatare a fiierelor n acces aleator. 34. Proceduri n Visual Basic: definirea i clasificarea pe tipuri, apelul i transmiterea argumentelor. 35. Proceduri de tip Private Sub. 36. Proceduri de tip Function. 37. Deosebiri eseniale ntre procedurile de tip Sub i cele de tip Function. Teste pentru autoevaluare: Teste de tipul adevrat/fals (TRUE/FALSE) 1. n limbajul Visual Basic stabilirea proprietilor se face cu fereastra Properties. R: A 2. Fereastra de editare a codului n Visual Basic cuprinde caseta cu lista Object i caseta cu lista Procedure. R: A Teste de tipul alegere multipl (MULTIPLE CHOICE) 3. Care dintre cuvintele de mai jos lipsete din sintaxa general a instruciunii Visual Basic: Select Case .... Case Else ... End Select?

a. Case Of b. Case On R: c

c. Case Is d. Case Are

Teste pentru autoevaluare din toat materia: 1. a) b) Din punctul de vedere al compunerii, datele se clasific n: date elementare sau c) date memorate scalare date introduse cu tastatura d) date compuse

54

R : a,d 2. Dup gradul asocierii i dup obligativitatea participrii la asociere, tipurile de legturi ntre entiti se difereniaz n: a) asocieri pariale de tip unu la d) asocieri totale de tip unu la unu; unu; b) asocieri pariale de tip unu la e) asocieri pariale de tip muli la muli; muli; c) asocieri totale de tip unu la f) asocieri totale de tip muli la muli; muli. R : toate 3. S se rspund cu adevrat (True) sau fals (False): Noiunea de aplicaie informatic nu este similar cu aceea de sistem informatic. R : Adevrat (True) Teste de tipul completare (COMPLETION) 4. S se completeze cuvntul lips: Limbajul de programare este un limbaj artificial ce se folosete pentru definirea unui ir de ______________-care pot fi prelucrate i executate pe un calculator. R: instruciuni Test de tipul coresponden (MATCHING) 5. Precizai destinaia ferestrelor mediului integrat de dezvoltare Visual Basic, prin indicarea corespondenei ntre denumirea ferestrei (AF) i destinaia acesteia (16): A. B. C. D E. F. Form Designer Code Editor Project Explorer Stabilirea proprietilor Depanarea programelor Visual Basic Realizarea interfeei dintre utilizator i secvenele de program Properties 4. Afiarea coleciei de fiiere Form Layout 5. Editor de texte pentru a introduce codul aplicaiei Watch 6. Vizualizarea aspectului formularului R: 1-D;2-F;3-A;4-C;5-B;6-E; 1. 2. 3.

6.

Rspundei cu DA(Yes) sau NU (No): Ciclarea este asigurat prin formatul general Do Loop. Ciclrile implementeaz operaiile care se repet de un anumit numr de ori, ciclarea repetndu-se pn cnd se ndeplinete o condiie specificat, ntlnit la nceputul sau sfritul ciclrii. R: DA (Yes) 7. Care este secvena de program Visual Basic corect? a) Do c) Cant = InputBox("Introduceti cantitatea materialului: ") Pu = InputBox("Introduceti pretul unitar al materialului: ") Vmftva = Cant * Pu Print Tab(20); Cant; Tab(48); Pu; Tab(70); Vmftva Do Cant = InputBox("Introduceti cantitatea materialului: ") Pu = InputBox("Introduceti pretul unitar al materialului: ") Vmftva = Cant * Pu Print Tab(20); Cant; Tab(48); Pu; Tab(70); Vmftva

55

Loop Until Loop Until TextBox("CONTINUATI?", MsgBox("CONTINUATI?", vbYesNo) vbYesNo) = vbNo = vbYes Do Do b) d) Cant = InputBox("Introduceti Cant = InputBox("Introduceti cantitatea materialului: ") cantitatea materialului: ") Pu = InputBox("Introduceti Pu = InputBox("Introduceti pretul pretul unitar al materialului: ") unitar al materialului: ") Vmftva = Cant * Pu Vmftva = Cant * Pu Print Tab(20); Cant; Tab(48); Print Tab(20); Cant; Tab(20); Pu; Tab(20); Vmftva Pu; Tab(70); Vmftva Loop Until Loop Until MsgBox("CONTINUATI?", MsgBox("CONTINUATI?", vbYesNo) vbYesNo) = vbNo = vbNo R: b. Test de tipul cu rspuns numeric (NUMERIC RESPONSE) 8. Cte etape sunt necesare pentru realizarea unei aplicaii Visual Basic? R: 3 9. Prin cte caractere este desemnat extensia unui fiier component al fiierului proiect? R: 3 Teste de tipul completare (COMPLETION) Instruciunea DO WHILE LOOP este o instruciune de ____________. R: ciclare 11. n mediul integrat Visual Basic sunt disponibile dou stiluri de lucru diferite i anume: interfaa pentru un singur __________ (SDI) sau interfaa multi_________(MDI). R: document 12. Codul din aplicatiile scrise in VB se imparte in blocuri de dimensiuni mai mici numite ______________. R: proceduri Teste de tipul coresponden (MATCHING) 13. Paradigmele programarii orientate pe obiecte se definesc astfel: a. Persistenta b. Incapsularea c. Polimorfismul d. Mostenirea 10.

1. permite constituirea de noi tipuri de obiecte si clase intr-o ierarhie de obiecte si clase intr-o ierarhie de module, evitind rescrierea si recodificarea. 2. proprietatea obiectelor care implic existena acestora i dup ncetarea procesului care le-a creat. 3. posibilitatea de a masca atributele proprii ale unui obiect i modul n care se execut operaiile. 4. permite invocarea pentru obiecte de diferite tipuri a operaiilor cu acelai nume, dar semantic i implementare diferite. R: 1=d, 2=a, 3=b, 4=c

56

Teste de tipul adevrat/fals (TRUE/FALSE) 14. Tipul de dat este utilizat pentru descrierea unei mulimi de fiiere care au aceeai reprezentare. R: F 15. Clasa este noiunea de limbaj care definete tipul de fiier. R: F 16. Motenirea permite constituirea de noi tipuri de obiecte i clase ntr-o ierarhie de module, prin rescriere i recodificare. R: F 17. Metodele sunt operaii care pot regsi sau actualiza starea unui obiect, stare care este memorat n variabilele instanelor sale. R: A 18. Identitatea unui obiect este acea proprietate a obiectului care l distinge de alte obiecte. R: A 19. Persistena este o proprietate a obiectelor care implic existena acestora i dup ncetarea procesului care le-a creat. R: A 20. Barele cu instrumente dau acces lent la comenzile utilizate frecvent n mediul de programare. R: F 21. Fereastra Toolbox furnizeaz o serie de instrumente utilizate n timpul proiectrii pentru a plasa controale pe formular. R: A ntrebri de autoevaluare 1. Care sunt asemnrile i deosebirile eseniale ntre conceptele de dat, informaie i cunotin? 2. Enumerai i caracterizai conceptele utilizate n organizarea datelor. 3. Ce este un fiier de date? 4. Cum se definete relaia binar? 5. Clasificai structurile de date. 6. Prezentai tipurile de modele de date. 7. Cte tipuri de legturi ntre entiti cunoatei i care sunt ele? 8. Ce se nelege prin procesul de prleucrare automat a datelor? 9. Ce tipuri de structuri de control cunoatei? 10. Ce este un program pe calculator? 11. Care sunt etapele de realizare a unui program pe calculator? 12. Ce se nelege prin compilarea i editarea de legturi a unui program? 13. Definii conceptele de baz ale programrii orientate pe obiecte. 14. Ce se nelege prin metod? 15. Care sunt elementele mediului integrat de dezvoltare?

57

16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

Cum se realizeaz o aplicaie n Visual Basic? Cum se stabilesc proprietile obiectelor? Cum se realizeaz scrierea codului? Cum se creeaz procedurile pentru evenimente? Cum se creeaz un proiect? Definii fiierul proiect. Ce tipuri de variabile n Visual Basic cunoatei? Cum se declar o variabil n Visual Basic? Ce reprezint instruciunile de atribuire? Care sunt instruciunile alternative n Visual Basic? Care sunt instruciunile repetitive n Visual Basic? Care sunt instruciunile de salt n Visual Basic? Ce particulariti prezint accesul aleator la date? Care sunt instruciunile de scriere ntr-un fiier secvenial? Care sunt instruciunile de citire i de nchidere a fiierelor?

58

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