INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale...

58
1 INFORMATICĂ DE GESTIUNE (LIMBAJE) Prof.univ.dr. Zenovic GHERASIM Codul cursului: CIG2304 Denumirea cursului: INFORMATICĂ DE GESTIUNE (LIMBAJE) Tip curs: obligatoriu Durata cursului / Nr. credite: un semestru / 5 Perioada de accesare a cursului: prelegeri 1 oct. 2017- ian 2018 seminar consultaţii Manual recomandat: Gherasim, Zenovic, Programare şi baze de date, Ediția a-II-a, Editura Fundației România de Mâine, Bucureşti, 2007. Obiectivul principal al cursului: Obiectivele disciplinei „Informatică de gestiune (Limbaje) ” se concretizează în cunoaşterea şi aprofundarea noţiunilor de bază ale organizării datelor în vederea prelucrării automate cu ajutorul calculatorului electronic, a elementelor fundamentale ale programării şi ale limbajului de programare Visual Basic, precum şi în ştigarea deprinderilor practice în rezolvarea prin programare a problemelor economice specifice ale domeniului financiar-contabil. Problematica teoretică şi aplicaţiile practice sunt sistematizate în aşa fel încât să asigure însuşirea raţională şi formarea gândirii informatice a studentului. Modul de stabilire a notei finale: Nota finală este cea care rezultă din media aritmetică ponderată a notelor de la evaluarea pe parcursul semestrului, prin teste grilă (20%) și nota de examenul scris din Sesiunea de examene de iarnă din ianuarie-februarie 2018 (80%). Consultaţii pentru studenţi: În sala 2.5, etaj 2, corp B, în fiecare miercuri de la ora 12 - 14, pe perioada cursurilor. Adresa e-mail responsabil pentru contactul cu studenţii: [email protected]. Titularul / titularii cursului / serie: Prof.univ.dr. GHERASIM ZENOVIC Conţinutul tematic al cursului: 1. DATĂ, INFORMAŢIE ŞI CUNOŞTINŢĂ. ORGANIZAREA DATELOR ÎN VEDEREA PRELUCRĂRII AUTOMATE CU AJUTORUL CALCULATOARELOR ELECTRONICE 1.1. Conceptele de societate informaţională – societate a cunoaşterii. Sistem informaţional, sistem informatic, sistem bazat pe cunoştinţe. Dată, informaţie şi cunoştinţă. 1.2. Noţiuni fundamentale utilizate în organizarea datelor. 1.3. Relaţiile dintre date. 1.4. Structuri de date. 1.5. Modele de date.

Transcript of INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale...

Page 1: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

1

INFORMATIC Ă DE GESTIUNE (LIMBAJE)

Prof.univ.dr. Zenovic GHERASIM

Codul cursului: CIG2304 Denumirea cursului: INFORMATIC Ă DE GESTIUNE (LIMBAJE) Tip curs: obligatoriu Durata cursului / Nr. credite: un semestru / 5 Perioada de accesare a cursului: prelegeri 1 oct. 2017- ian 2018 seminar consultaţii

Manual recomandat: Gherasim, Zenovic, Programare şi baze de date, Ediția a-II-a, Editura Fundației România de Mâine, Bucureşti, 2007. Obiectivul principal al cursului:

Obiectivele disciplinei „Informatică de gestiune (Limbaje) ” se concretizează în cunoaşterea şi aprofundarea noţiunilor de bază ale organizării datelor în vederea prelucrării automate cu ajutorul calculatorului electronic, a elementelor fundamentale ale programării şi ale limbajului de programare Visual Basic, precum şi în câştigarea deprinderilor practice în rezolvarea prin programare a problemelor economice specifice ale domeniului financiar-contabil. Problematica teoretică şi aplicaţiile practice sunt sistematizate în aşa fel încât să asigure însuşirea raţională şi formarea gândirii informatice a studentului. Modul de stabilire a notei finale: Nota finală este cea care rezultă din media aritmetică ponderată a notelor de la evaluarea pe parcursul semestrului, prin teste grilă (20%) și nota de examenul scris din Sesiunea de examene de iarnă din ianuarie-februarie 2018 (80%). Consultaţii pentru studenţi: În sala 2.5, etaj 2, corp B, în fiecare miercuri de la ora 12 - 14, pe perioada cursurilor. Adresa e-mail responsabil pentru contactul cu studenţii: [email protected]. Titularul / titularii cursului / serie: Prof.univ.dr. GHERASIM ZENOVIC Conţinutul tematic al cursului: 1. DATĂ, INFORMAŢIE ŞI CUNOŞTINŢĂ. ORGANIZAREA DATELOR ÎN VEDEREA PRELUCRĂRII AUTOMATE CU AJUTORUL CALCULATOARELOR ELECTRONICE

1.1. Conceptele de societate informaţională – societate a cunoaşterii. Sistem informaţional, sistem informatic, sistem bazat pe cunoştinţe. Dată, informaţie şi cunoştinţă.

1.2. Noţiuni fundamentale utilizate în organizarea datelor. 1.3. Relaţiile dintre date. 1.4. Structuri de date. 1.5. Modele de date.

Page 2: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

2

2. REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL PROGRAMELOR PE CALCULATOR. PROGRAMARE.

2.1 Noţiuni de bază specifice procesului de prelucrare automată a datelor. 2.2 Noţiuni de bază referitoare la programare. 2.3 Problematica generală a limbajelor de programare.

2.4. Elementele de bază ale programării 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 aplicaţiilor în limbajul Visual Basic. 3.3.1 Fişierul proiect. 3.3.2 Crearea interfeţei aplicaţiei. 3.3.3 Precizarea proprietăţilor. 3.3.4 Scrierea codului. 3.3.5. Execuţia aplicaţiei 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 Instrucţiuni Visual Basic. 3.4.4.1 Construirea expresiilor. 3.4.4.2 Operatori Visual Basic. 3.4.4.3 Funcţii Visual Basic.

3.4.4.4 Implementarea structurilor de control al execuţiei unui program. Instrucţiuni alternative (sau cu structură alternativă).

Instrucţiuni repetitive 3.4.5 Crearea fişierelor în limbajul Visual Basic

Bibliografie minimală obligatorie: 1. Gherasim, Zenovic, Programare şi baze de date, Ediția a-II-a, Editura Fundației România de Mâine, Bucureşti, 2007. 2. Fusaru, D., Gherasim, Z., Andronie, M., Bâra, A., Stroe, P., Aplicaţii economice în Visual Basic şi Access, Ed.F.R.M., ediţia a-III-a, Bucureşti, 2007.

Prezentarea lecţiei / capitolul 1:

1. DATĂ, INFORMA ŢIE ŞI CUNOŞTINŢĂ. ORGANIZAREA DATELOR ÎN VEDEREA PRELUCR ĂRII AUTOMATE CU AJUTORUL CALCULATOARELOR ELECTRONICE

Concepte cheie: dată, informaţie, cunoştinţă, sistem informaţional, sistem informatic, sistem bazat pe cunoştinţe structuri de date, modele de date. 1.1. Conceptele de societate informaţională – societate a cunoaşterii. Sistem informa ţional, sistem informatic, sistem bazat pe cunoştin ţe. Dată, informaţie şi cunoştin ţă.

Noţiunea de societate informaţională (Information Society) descrie o economie şi o societate în care colectarea, stocarea, prelucrarea, transmiterea, diseminarea şi utilizarea informaţiilor şi cunoştinţelor, inclusiv dezvoltarea tehnicilor de comunicaţie interactivă, au un rol decisiv. Factorii semnificativi în această dezvoltare sunt: înalta tehnologie (HighTech), industria, lumea lucrului (Work World), precum şi toate formele

Page 3: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

3

de cultură în societate. Societatea informatică este o parte a societăţii informaţionale care foloseşte progresele tehnicii de calcul în toate domeniile de activitate economico-socială. Societatea bazată pe cunoştinţe (Knowledge-Based Society) este o parte a societăţii informatice care utilizează tehnologiile informaţiei şi ale comunicaţiilor (IT&C) preponderent pentru prelucrarea datelor sub formă de cunoştinţe. Considerând un nivel superior (pe modelul de dezvoltare în spirală al societăţii umane), cel mai cuprinzător concept este cel de societate a cunoaşterii (Knowledge Society). Societatea cunoaşterii este fundamentată pe acumularea şi utilizarea de date sub formă de informaţii şi cunoştinţe la nivel social. După acad. Mihai Drăgănescu, societatea cunoaşterii reprezintă mai mult decât societatea informaţională şi decât societatea informatică, înglobându-le de fapt pe acestea. Societatea cunoaşterii foloseşte piese (pieces) ale cunoaşterii.

Societatea informaţională are la bază sistemele informaţionale, societatea informatică – sistemele informatice, iar societatea bazată pe cunoştinţe se fundamentează pe sistemele bazate pe cunoştinţe (Knowledge-Based Systems). Sintagma folosită de Romano Prodi, fostul preşedinte al Comisiei Europene, este de economie bazată pe cunoştinţe (Knowledge-Based Economy, KBE); această KBE reprezintă cea mai rafinată parte a noii economii (New Economy), prin noua economie înţelegând economia specifică societăţii informaţionale– societăţii cunoaşterii (SI - SC).

Sistemul este un ansamblu de elemente dependente (componente, principii, reguli, relaţii, etc.) care formează un întreg organizat, pe baza unui plan prestabilit, cu scopul realizării unui anumit obiectiv. Sistemul informaţional reprezintă acel sistem de prelucrare a informaţiilor, împreună cu resursele organizaţionale asociate, cum sunt resursele umane, tehnice şi financiare ce furnizează şi distribuie informaţia. Sistemul informatic reprezintă partea automatizată a sistemului informaţional ce realizează prelucrarea datelor şi informaţiilor folosind un sistem de calcul; este un ansamblu de echipamente şi programe pe calculator (software) care asigură prelucrarea datelor. Sistemul bazat pe cunoştinţe este o parte a sistemului informatic care procesează cunoştinţe într-o cantitate determinantă şi semnificativă.

După acad. Mihai Drăgănescu, cunoştinţa este informaţie cu înţeles şi informaţie care acţionează. Cunoştinţa semnifică ceea ce este cunoscut. Într-o altă percepţie, cunoştinţele sunt informaţii dobândite prin instruire (educaţie) şi practică (experienţă). La modul general, datele sunt reprezentate convenţional prin numere, mărimi, relaţii etc. şi sunt folosite la rezolvarea problemelor sau sunt obţinute printr-o activitate de cercetare. Informaţia reprezintă elementele de noutate despre un fenomen, proces etc. Noutatea caracteristică noţiunii de informaţie este percepută de utilizator numai în momentul intrării în contact cu această informaţie. Ca urmare, din punct de vedere informatic, datele sunt informaţii sau cunoştinţe reprezentate simbolic şi înregistrate în vederea gestionării (evidenţei) şi/sau prelucrării. Rezultatul prelucrării este tot o dată care, prin interpretare, se transformă iniţial în informaţie şi apoi (nu întotdeauna) în cunoştinţă.

Caracterul de dată, informaţie sau cunoştinţă este relativ (adică se schimbă în funcţie de contextul ce defineşte însuşirea de noutate pentru informaţie şi de înţeles şi utilitate prin acţiune pentru cunoştinţă).

Page 4: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

4

Fig.1.1 Ierarhia informaţională a societăţii informaţionale-societăţii cunoaşterii

SOCIETATEA CUNOAŞTERII

Page 5: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

5

“Oceanul” informaţional actual necesită nu numai eforturi de stocare a datelor, informaţiilor şi cunoştinţelor, dar mai cu seamă de selecţie, la momentul oportun a celor mai relevante şi utile dintre acestea.

Se reaminteşte faptul că informatica este ştiinţa prelucrării automate a datelor. Informatica de gestiune este acea parte a informaticii care prelucrează automat datele de evidenţă şi control vehiculate în cadrul unei organizaţii economice. Ca urmare, esenţa tuturor sistemelor informatice prezentate mai sus este gestionarea datelor care, interpretate de factorul uman, devin uneori, aşa cum s-a arătat în acest paragraf, informaţii sau cunoştinţe.

Noţiuni fundamentale utilizate în organizarea datelor Datele sunt stocate în memoria internă şi memoria externă a oricărui sistem de

calcul. Organizarea datelor se referă la procesul de definire şi structurare a datelor în colecţii de date, precum şi la realizarea legăturilor între elementele unei colecţii şi între colecţiile de date. Organizarea datelor se proiectează în scopul regăsirii automate a acestora după diverse criterii .

Obiectivele organizării datelor sunt, în principal, următoarele: • timp de acces minim la date; • apariţia o singură dată a datelor în sistem; • spaţiu de memorie internă şi externă pentru date cât mai mic; • reflectarea prin organizare a tuturor legăturilor dintre procesele economice pe

care aceste date le reprezintă; • posibilitatea modificării structurii datelor şi a relaţiilor dintre date fără a produce

schimbări în programele care le gestionează. Tehnicile de organizare a datelor în colecţii de date sunt: fişierul de date şi baza

de date. Fişierul de date reprezintă o colecţie de date memorată pe un suport tehnic într-o

succesiune de înregistrări. Accesul la o înregistrare din fişierul de date se obţine prin parcurgerea înregistrărilor fi şierului în secvenţa în care au fost stocate (acces secvenţial) sau pe baza unei chei de identificare care să permită regăsirea rapidă a înregistrării (acces direct). Accesul direct se obţine prin indexarea fişierelor, adică prin crearea unor tabele de indecşi care pentru fiecare valoare a atributului cheie primară (atribut care permite identificarea în mod unic a unei înregistrări din fişier) să conţină adresa corespunzătoare (în cadrul fişierului) a fiecărei înregistrări. Creşterea necesarului de date, informaţii şi cunoştinţe pentru agenţii economici şi progresele tehnologiilor informaţiei şi ale comunicaţiilor (IT&C) au determinat organizarea datelor în baze de date. O bază de date este un fişier format din înregistrări (records) sau rânduri, fiecare conţinând câmpuri (fields) sau coloane, şi o mulţime de operaţii de căutare, sortare, recombinare etc. În proiectarea şi înţelegerea unui sistem informatic, organizarea datelor reprezintă o etapă fundamentală care presupune: 1. definirea, structurarea, ordonarea şi gruparea datelor în colecţii de date omogene; 2. stabilirea legăturilor între date, între elementele unei colecţii de date şi între colecţiile de date, după o ierarhie bine precizată; 3. memorarea datelor pe un suport informaţional prelucrabil într-un sistem de calcul.

Page 6: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

6

Noţiunile fundamentale folosite în organizarea datelor sunt entitatea, atributul şi valoarea. Între acestea există legături de interdependenţă astfel: � o entitate are mai multe atribute, iar atributele au o anumită mulţime de valori; � entitatea reprezintă un obiect concret sau abstract definit prin proprietăţile 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 societăţi comerciale poate fi reprezentat prin mulţimea de perechi: (NUME, POPESCU); (PRENUME, ION); (LOCALITATE, BUCUREŞTI); (TELEFON, 0213211231); (BANCA, BCR); (CONT_BANCAR, RO15RZBR0000070002170022). Mulţimea atributelor M_ATR = (NUME, PRENUME, LOCALITATE, TELEFON, BANCA, CONT_BANCAR) poate fi asociată mai multor clienţi ai societăţii comerciale. Ca urmare, atributele nu caracterizează doar o entitate, ci o clasă de entităţi care este denumită entitate de grup. Elementele unei entităţi de grup prezintă drept caracteristică aceeaşi mulţime de atribute. Ca urmare, entităţile din cadrul unei entităţi de grup sunt de acelaşi tip, definindu-se astfel un tip de entitate. Atributul este denumit şi câmp sau caracteristică. Un câmp 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 obţin prin concatenarea mai multor atribute elementare. Atributul care identifică în mod unic o entitate se numeşte 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 informaţia

sau cunoştinţa 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ă mărime care se află la o adresă absolută. 1.3 Relaţiile dintre date Între date există relaţii sau legături diferite. Între datele care aparţin unor tipuri de entităţi se pot realiza două feluri de legături:

• primă legătură se exprimă prin apartenenţa datelor la entitate; • a doua legătură se defineşte pentru entităţile de acelaşi tip sau de tipuri diferite.

Exemple: a) Dacă se notează cu SALARIATI mulţimea salariaţilor unei societăţi

comerciale, între datele a1 şi a2 ce aparţin acestei mulţimi, se pot defini relaţii de tipul: � a1 are aceeaşi funcţie de încadrare cu a2;

Page 7: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

7

� a1 are acelaşi salariu cu a2; � a1 are aceeaşi vârstă cu a2 etc.

b) Se consideră două clase de entităţi: PRODUSE_BANCARE şi CLIENTI. Între datele acestor două clase de entităţi se pot defini relaţiile:

� un produs bancar poate fi achiziţionat de unul sau mai mulţi clienţi ai băncii; � un client al băncii poate achiziţiona unul sau mai multe produse bancare.

1.4. Structuri de date

Structura de date este o colecţie de date între care s-au stabilit un ansamblu de relaţii pe baza cărora funcţionează un mecanism de selecţie şi identificare a componentelor. Mulţimea de date, asociată structurii de date, poate cuprinde datele unui tip sau ale mai multor tipuri de entităţi. Componentele structurii se identifică prin nume sau prin poziţia pe care o deţin în structură în raport cu ordinea specificată. În situaţia în care pentru localizarea unei componente se parcurg toate celelalte componente dinaintea ei, structura are acces secvenţial. În schimb, atunci când o componentă poate fi selectată fără 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 următoarele operaţii : • crearea (înseamnă memorarea datelor iniţiale pe suportul de stocare); • actualizarea (schimbarea stării structurii prin adăugare, modificare sau ştergere de

elemente, modificarea valorii sau relaţiilor 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ă aceeaşi organizare şi asupra cărora se execută aceleaşi operaţii formează un anumit tip de structuri de date. Tipul de structură de date reprezintă o mulţime ordonată de date între care s-au stabilit anumite relaţii şi pentru care realizarea operaţiilor 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 acelaşi tip) şi eterogene (componentele au tipuri diferite).

Când structura de date se descompune în structuri de date de acelaşi tip, atunci structura obţinută este denumită recursivă. După nivelul de structurare al datelor, se deosebesc structura fizică (structura de date care se referă la modul de implementare pe suporţi tehnici informaţionali) şi structura logică (modul de ordonare a datelor şi modul de folosire a operatorilor de tratare a datelor). Dacă se ia în considerare posibilitatea modificării valorilor şi a structurilor, se identifică structuri statice (pe tot parcursul existenţei acestora prezintă acelaşi număr de componente şi în aceeaşi ordine (adică au cardinalitate finită, prin cardinalitate

Page 8: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

8

înţelegând numărul elementelor mulţimii)) ş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 număr nelimitat de componente).

O structură logică poate fi implementată atât ca structură statică cât şi ca structură dinamică. Există însă şi structuri logice ce nu pot fi implementate static. În organizarea datelor trebuie definită atât structura logică, cât şi cea fizică, deorece cele două nivele se condiţionează 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 relaţii de tipul “unu-la-unu”; când 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 rădăcină (root node);orice nod diferit de nodul rădăcină prezintă un predecessor imediat unic; orice nod care nu este terminal prezintă un număr finit de succesori imediaţi; între noduri se stabilesc relaţii de tipul “unu-la-mulţi); • structura de date reţea (acest tip de structură de date se defineşte când există o relaţie de preordine între elementele colecţiei de date; un nod prezintă mai mulţi predecesori; un nod poate fi predecesor pentru propriul său predecesor; între elementele reţelei se stabilesc relaţii de tipul “mulţi-la-mulţi); • structura de date relaţională (acest tip de structură de date este formată din mai multe tabele, relaţii 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 evidenţierea 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 relaţionale, aşa cum se prezintă în capitolul 4 al manualului). La tablou, indexul se referă la o valoare care permite accesul direct la structura de date fără a mai necesita parcurgerea secvenţială a ansamblului de elemente. Indexul poate fi şi o listă cu cuvinte-cheie şi date asociate care indică locaţiile unde se găsesc fişiere sau înregistrări de pe un suport magnetic. La bazele de date, indexul este o listă cu chei de înregistrări dintr-o bază de date.

Tabelul 1.1 Definirea şi caracteristicile unor structuri de date

Denumire Definire Avantaje Dezavantaje Tablou (table)

În programare, listă de elemente, implementată sub forma unui vector de înregistrări sau a unei liste înlănţuite. În bazele de date relaţionale, structură cu linii şi coloane.

Inserare şi acces rapid, când indexul este cunoscut.

Căutare şi ştergere greoaie, dimensiune fixată Tablou

ordonat Căutare mai rapidă în comparaţie cu tablourile neordonate.

Page 9: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

9

Coadă (queue)

Structură realizată după metoda “primul sosit, primul plecat”, FIFO (First-In, First-Out)

Accesul la date se execută în ordinea introducerii acestor date.

Acces greoi la celelalte elemente.

Stivă (stack)

Structură realizată după metoda “ultimul sosit, primul plecat”, LIFO (Last-In, First-Out)

Accesul la date se execută în ordinea inversă introducerii acestor date.

Listă înlănţuită (chain list)

Structură de date sub formă de listă în care fiecare element al listei asigură o adresă pentru următorul element consecutiv al listei.

Inserare şi ştergere rapide Căutare greoaie.

Arbore binar (binary tree)

Structură de date sub forma unui arbore ordonat de gradul doi.

Căutare, inserare şi ştergere rapide (arbore echilibrat).

Algoritmul de ştergere este complicat.

Arbore bicolor (bicolor tree)

Arbori binari la care fiecare nod dispune de caracteristica culoare – roşie sau neagră.

Structuri de date complexe. Arbore 2-3-4

(2-3-4 tree) Arbori multicăi în care fiecare nod poate prezenta cel mult patru succesori (fii).

Tabel de dispersie (hash table)

Structură de date fundamentată pe transformarea unui domeniu de valori ale unei anumite chei într-un domeniu de indici dintr-un tablou.

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

Ştergere greoaie. Acces lent atunci când nu se cunoaşte cheia.

Movilă (heap)

Tip de arbore binar complet implementat printr-un tablou.

Inserare, ştergere şi acces rapide la elementul maxim sau minim.

Acces greoi la celelalte elemente.

Graf (graph) Structură formată din noduri şi arce ca legături dintre noduri.

Modelează situaţii din universul real.

Anumiţi algoritmi sunt greoi şi complicaţi.

La arbori, fiecare nod al arborelui, cu excepţia nodului rădăcină, este succesorul unui nod unic. Fiecare nod admite unul sau mai mulţi subarbori ca succesori sau nu deţine nici un succesor şi se denumeşte 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. Înălţimea arborelui reprezintă drumul de lungime maximă. Un arbore care are ordinul superior lui doi se numeşte arbore multicăi. Arborele echilibrat este un arbore la care diferenţa dintre drumurile de la rădăcină la orice nod terminal este cel mult unu. Un arbore este ordonat dacă, într-un mod de parcurgere prestabilit, elementele considerate satisfac o relaţie 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 excepţia frunzelor, prezintă doi succesori (fii).

Page 10: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

10

Tabelele de dispersie sunt structuri de date ce semnifică lista tuturor intrărilor într-un fişier în concordanţă cu numerele de dispersie ce le aparţin. Codurile de dispersie (hash codes) folosite la obţinerea tabelelor de dispersie sunt derivate din codurile ASCII pe baza unor funcţii de dispersie. Movila (heap-ul) serveşte pentru implementarea cozilor cu priorităţi (acele cozi care permit ştergerea elementului cu cheia maximă sau minimă). Graful complet este graful ale cărui noduri sunt conectate două câte 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 serveşte pentru prelucrarea datelor cu ajutorul calculatorului electronic. Definirea unui model de date cuprinde următoarele:

• structura modelului; • operatorii care se utilizează la manipularea structurilor de date; • stabilirea regulilor de integritate pentru menţinerea corectitudinii datelor.

Definirea structurii modelului cuprinde definirea obiectelor (entităţilor) şi a caracteristicilor asociate (atributelor). Se utilizează următoarele elemente: câmpul (cel mai mic element al structurii) grupul simplu sau compus (set compus din câmpuri multiple şi grupuri) şi înregistrarea (ansamblu de câmpuri sau grupuri care constituie şi elementul generic al structurii). Relaţiile dintre înregistrările unei entităţi (obiect) sau mai multor entităţi (obiecte) independente se materializează într-o legătură dintre o realizare a înregistrării părinte şi una sau mai multe realizări ale înregistrării copil. Prin entitate se înţelege un obiect al universului real ce este supus modelării, obiect care este caraterizat de o identitate proprie, de o existenţă proprie şi de o familie de caracteristici care semnifică proprietăţile acestui obiect. Relaţiile sunt denumite şi asocieri.

Pentru realizarea unei reprezentări grafice (sub formă de diagrame) a structurii modelului se utilizează tehnica entitate-asociere care constă în identificarea componentelor (entităţilor), identificarea asocierilor dintre entităţi şi codificarea lor, identificarea atributelor şi precizarea atributelor de identificare a entităţilor . Fiecare entitate prezintă mai multe realizări . Legăturile dintre entităţi sunt reprezentate prin arce neorientate sau orientate (fig.1.2) care stabilesc legătura între nodurile ce reprezintă entităţile participante la asociere. Semnificaţia legăturii este exprimată printr-un nume acordat legăturii. Legătura se reprezintă cu un nod etichetă (sub formă de romb) dispus pe arc ca nod intermediar.

Fig. 1.2. Reprezentarea relaţiei CLIENŢI-PRODUSE şi a cardinalităţii Tipul sau forma legăturii se evidenţiază cu ajutorul cardinalităţii . În figura 1 este reprezentată grafic cardinalitatea legăturii între CLIENŢI-PRODUSE. Cardinalitatea legăturilor semnifică numărul minim şi numărul maxim de realizări (instanţe) de entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se reprezintă

Page 11: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

11

prin perechi de numere, câte o pereche pentru fiecare entitate din cadrul legăturii. Din fig.1 se observă că un anumit produs poate fi achiziţionat de mai mulţi clienţi şi un client poate cumpăra mai multe produse. Perechea (1,n) este asociată entităţii CLIENTI şi semnifică faptul că un client poate să achiziţioneze un produs sau poate să achiziţioneze mai multe produse. Perechea (0,n) este asociată entităţii PRODUSE şi semnifică faptul că un produs poate să nu fie achiziţionat de nici un client sau poate să fie achiziţionat de mai mulţi clienţi.

Între entităţi se pot stabili următoarele tipuri de legături: 1. După cardinalitatea asocierii şi după gradul asocierii (maximele cardinalităţii) se deosebesc:

- asocieri de tipul „unu la unu” (one-to-one); - asocieri de tipul „unu la mulţi” (one-to-many); - asocieri de tipul „mulţi la mulţi” (many-to-many). 2. După cardinalitatea asocierii şi după obligativitatea participării entităţilor la asociere (minimele cardinalităţii) se diferenţiază: - asocieri parţiale (acele asocieri care nu obligă participarea la asociere a

tuturor entităţilor vizate) - asociere totale (complete). 3. Simultan, după gradul asocierii şi după obligativitatea participării la asociere,

tipurile de legături se diferenţiază în: - asocieri parţiale de tip „unu la unu”; - asocieri totale de tip „unu la unu”; - asocieri parţiale de tip „unu la mulţi”; - asocieri totale de tip „unu la mulţi”; - asocieri parţiale de tip „mulţi la mulţi”; - asocieri totale de tip „mulţi la mulţi”.

4. După numărul de entităţi distincte care participă la asociere se definesc: - asocieri binare (asocieri între două entităţi distincte); - asocieri recursive (asocieri ale entităţilor cu ele însele); - asocieri complexe (asocieri între mai mult de două entităţi distincte).

Atributele reprezintă proprietăţi distincte ale entităţilor. însă ele se pot referi şi la asocierile dintre entităţi. După complexitate, atributele se clasifică în atribute simple sau elementare şi în atribute complexe (compuse din mai multe atribute elementare). După realizările pe care le pot prezenta atributele, acestea pot fi monovaloare, multivaloare, obligatorii sau opţionale. Un atribut de identificare este denumit cheie, atunci când este caracterizat prin unicitatea valorii sale pentru fiecare instanţă a entităţii (de exemplu, cod_client pentru entitatea CLIENTI, cod_produs, pentru entitatea PRODUSE. Atributele cheie se marchează prin subliniere sau printr-o săgeată spre entitatea căreia îi aparţin. Operatorii utilizaţi în modelele de date sunt citire, memorare, modificare, joncţiune etc. Pentru asigurarea corectitudinii datelor se folosesc reguli de integritate. Cele mai importante modele de date sunt modelul ierarhic, modelul reţea, modelul relaţional şi modelul orientat obiect. Modelul ierarhic conţine ca structuri de bază tipuri de înregistrări care grupează toate atributele unei entităţi. Acest model posedă ierarhia ca tip de structură. Această ierarhie dispune de un tip de înregistrare definit ca rădăcină/root şi mai multe tipuri de

Page 12: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

12

înregistrări subordonate, legate sub formă de arbore, motiv pentru care modelul este denumit şi arborescent.

Nodul din arbore care nu este rădăcină sau nod final, are un singur nod superior şi unul sau mai multe noduri inferioare. Legătura de la un nod superior la unul inferior este de tipul 1→m, iar legătura de la un nod inferior la unul superior este de tipul 1→1. Datorită existenţei celor două structuri, modelul oferă operatori separaţi şi anume:

• operatori de citire pentru tipul de înregistrare; • operatori de citire pentru tipul ierarhie; • operatori de memorare pentru tipuri de înregistrări; • operatori de memorare pentru ierarhie.

În cazul modelului reţea, datele sunt reprezentate ca la modelul ierarhic, cu deosebirea că fiecare inferior poate avea mai mulţi superiori. Structurile specifice modelului reţea pot să fie tipul de înregistrări (asigură atributele unei entităţi) şi tipul de set (asigură legăturile între tipurile de înregistrare). Modelul relaţional este fundamentat pe teoria matematică a relaţiilor, caracterizându-se printr-o singură structură de date şi anume relaţia sau tabelul. Un astfel de model poate fi perceput ca o mulţime de tabele obţinute prin metoda normalizării. Normalizarea porneşte de la o mulţime de atribute sau câmpuri de date şi de la o mulţime de dependenţe funcţionale dintre atribute. Normalizarea permite obţinerea unei scheme conceptuale a modelului relaţional î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 entităţile desemnate. Pentru acest capitol paginile din manula 11 –24. Lista subiectelor pentru pregătirea în vederea evaluării finale:

1. Conceptele de societate informaţională – societate a cunoaşterii. 2. Dată, informaţie şi cunoştinţă. 3. Sistem informaţional, sistem informatic, sistem bazat pe cunoştinţe. 4. Noţiuni fundamentale utilizate în organizarea datelor. 5. Obiectivele organizării datelor. 6. Caracteristicile fişierelor de date. 7. Ce reprezintă baza de date. 8. Relaţiile dintre date. 9. Structuri de date, considerente generale. 10. Clasificările 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 utilizaţi în manipularea structutrilor de date. 15. Noţiunile : entitate, atribut, valoare. 16. Tipuri de legături între entităţi. 17. Modelul ierarhic. 18. Modelul reţea. 19. Modelul relaţional. 20. Modelul orientat obiect.

Teste de tipul alegere multiplă (MULTIPLE CHOICE)

Page 13: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

13

1. Organizarea datelor in fisiere prezinta avantaje si dezavantaje. Care dintre

variantele urmatoare este un avantaj?

a. redundanta ridicata d. dependenta programelor fata de date b. izolarea datelor e. localizare rapida prin indexare c. actualizarea datelor

R: e

Teste de tipul completare (COMPLETION) 2. Atributul se mai numeşte ______________.

R: câmp Test de tipul corespondenţă (MATCHING) 3. Modelele de date au următoarele definiţii:

a. modelul ierarhic c. modelul relaţional b. modelul reţea

1. modelul în care fiecare inferior poate avea mai mulţi superiori

2. modelul care are la baza teoria matematica a relaţiilor

3. modelul care are ca structură de bază tipuri de înregistrări care grupează toate atributele unei înregistrări R: 1=b, 2=c, 3=a Capitolul următor tratează noţiuni de bază referitoare la prelucrarea automată a datelor, tipuri de limbaje de programare, elemente de bază ale programării orientate pe obiecte.

Prezentarea lecţiei / capitolul 2: 2 REZOLVAREA PROBLEMELOR ECONOMICE CU AJUTORUL

PROGRAMELOR PE CALCULATOR. PROGRAMARE. Concepte cheie: program, programare, declaraţie, instrucţiune, algoritm, schemă

logică, limbaj de programare. 2.1 Noţiuni de bază specifice procesului de prelucrare automată a datelor

Orice sistem de calcul (adică acel sistem tehnic care asigură execuţia 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 aceloraşi costuri. Problema costurilor unui sistem de calcul devine din ce în ce mai importantă în condiţiile cerute de societatea informaţională – societatea cunoaşterii ş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 rândul ei, software-ul de bază (sistemul de operare sau sistemul de programe de bază) şi software-ul de aplicaţie

Page 14: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

14

(sau sistemul de programe aplicative). Un sistem informatic are funcţia de prelucrare automată a datelor pentru obţinerea informaţiilor necesare procesului de conducere sau de informare. Procesul de prelucrare automată a datelor presupune existenţa simultană a următoarelor 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 ieşire sau rezultatele prelucrărilor. Î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 reţinut că datele de intrare sunt introduse printr-o operaţie de citire - read, iar datele ce reprezintă rezultate sunt obţinute printr-o operaţie de scriere –write sau de tipărire - print a rezultatelor.

Datele ce sunt prelucrate pe un sistem de calcul sunt organizate într-o formă avantajoasă pentru aplicaţia informatică şi sunt reprezentate într-o structură accesibilă calculatorului. Datele sunt organizate în colecţii de date în funcţie de condiţiile specifice impuse de sistemul informaţional existent şi de dorinţele utilizatorilor finali din procesul de decizie.

Procesul de prelucrare automată a datelor are loc într-o succesiune controlată de operator, adică, în accepţiunea clasică, de acel utilizator final specializat în operarea pe sistemul de calcul. Etapele procesului de prelucrare a datelor pe calculator sunt materializate în următoarele operaţii : • pregătirea datelor ini ţiale, de regulă manual, în vederea introducerii lor în procesul de prelucrare automată (citire), ce presupune verificarea, sortarea şi codificarea acestor date în funcţie de documentele primare existente; verificarea datelor presupune confirmarea concordanţei între valorile prezente în documentele primare şi valorile care trebuie să existe în conformitate cu aplicaţia 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 precizări ale utilizatorului; codificarea datelor înseamnă operaţia de atribuire de semne numerice, alfabetice sau alfanumerice unor date cu scopul de a optimiza numărul de semne cu care se scriu şi se prelucrează, de exemplu, elementele specifice sistemului informaţional financiar-contabil; noţiunea de document primar (de evidenţă primară) este cea definită în contabilitate, ca primă etapă a funcţiei contabile, adică acel document în care se consemnează pentru prima dată o operaţie economico-financiară (facturi, chitanţe, cecuri etc). Fiecare eveniment ce prezintă un efect economic se înscrie într-un document primar în momentul şi în locaţia în care s-a produs. • introducerea datelor iniţiale în calculator, adică în memoria internă sau memoria externă a sistemului de calcul; introducerea datelor iniţiale poate fi făcută direct de la tastatură (în regim conversaţional) sau de pe un suport tehnic accesibil calculatorului; • prelucrarea propriu-zisă a datelor, ceea ce înseamnă execuţia automată de către calculator a tuturor operaţiilor prestabilite prin program (validări de date, sortări, interclasări, comparări şi testări ); 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 într-altul); interclasarea datelor reprezintă tipul de prelucrare prin care se obţine un şir (vector) de date ce conţine toate elementele unor vectori iniţiali ordonaţi; compararea datelor este tipul de prelucrare prin care se verifică existenţa unor relaţii de ordine între

Page 15: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

15

două date; relaţia de ordine a fost definită la cursul de matematică şi este o relaţie binară pe o mulţime de date ce stabileşte ordinea de parcurgere a elementelor mulţimii; testarea datelor este tipul de prelucrare prin care se verifică un ansamblu de date ce sunt pregătite pentru buna funcţionare a unui program; • prezentarea rezultatelor prelucrării, adică afişarea pe ecranul monitorului sau imprimarea pe hârtie; când rezultatele sunt folosite în prelucrări ulterioare, ele sunt stocate pe suporţi magnetici.

Etapele şi operaţiile prezentate mai sus se încadrează în “triada de aur” specifică oricărui sistem de calcul: stocare – prelucrare- prezentare date.

2.2 Noţiuni de bază referitoare la programare Rezolvarea unei probleme reprezintă procesul de concepere şi de implementare a

unei strategii de găsire a unei soluţii sau de conversie la normalitate a unor stări generate de condiţii nedorite sau neaşteptate. În activitatea de concepere a programelor destinate calculatoarelor electronice, problema de rezolvat este definită, detaliată şi transformată într-un proiect pe baza căruia se poate realiza un program ce poate fi rulat pe un sistem de calcul. În capitolul 1 al lucrării s-a prezentat noţiunea de sistem informatic. A rezultat astfel că orice sistem informatic conţine unul sau mai multe sisteme de calcul (hard şi soft), cărora li se adaugă restul bazei tehnico-materiale, baza ştiinţifico-metodologică, baza informaţională, resursele umane şi cadrul organizatoric. Baza tehnico-materială conţine echipamentele de culegere, verificare şi transmitere date, echipamentele de teleprelucrare, suporturile de stocare a datelor şi calculatorul propriu-zis. Baza ştiinţifico-metodologică cuprinde modelele matematice ale proceselor şi fenomenelor economice şi metodologii de realizare a sistemelor informatice. Baza informaţională se referă la date, fluxuri şi circuite informaţionale, cataloage şi dicţionare de date etc.

Un sistem informatic are funcţia de prelucrare automată a datelor pentru obţinerea informaţiilor necesare procesului de conducere sau de informare.

Din cele arătate mai sus, rezultă că procesul de prelucrare automată a datelor presupune existenţa simultană a următoarelor 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 ieşire sau rezultatele prelucrărilor. Î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 reţinut că datele de intrare sunt introduse printr-o operaţie de citire - read, iar datele ce reprezintă rezultate sunt obţinute printr-o operaţie de scriere –write sau de tipărire - print a rezultatelor (fig.2.1).

Fig.2.1 Etapele procesului de prelucrare a datelor pe calculator

CITIRE DATE DE INTRARE

PRELUCRĂRI

SCRIERE REZULTATE

Page 16: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

16

Sistemul de operare este realizat cu preponderenţă în limbajul de programare C,

este livrat cu licenţă, de regulă, de compania producătoare a părţii 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 către 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 instrucţiuni (comenzi) ce se execută de sistemul de calcul cu scopul de a efectua o succesiune de acţiuni sau un tip prestabilit de activitate. Instrucţiunea sau comanda semnifică un enunţ ce specifică o acţiune într-un limbaj de programare. Programul pe calculator (sau, mai simplu, programul) are în compunere, de regulă, două tipuri de enunţuri: declaraţii şi instrucţiuni. Declaraţia este asocierea dintre un identificator şi anumite informaţii. Această asociere este formală la realizarea programului şi devine efectivă în timpul compilării sau în timpul execuţiei programului. Declaraţia priveşte modul de organizare a datelor de intrare, pe timpul prelucrării, precum şi a datelor de ieşire (rezultatelor). Identificatorul reprezintă orice şir de caractere alfanumerice ce se foloseşte în calitate de: nume de variabilă sau constantă într-un program; etichetă de regăsire a unui punct din program; nume de procedură sau de funcţie; nume ataşat unei unităţi 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. Noţiunea de algoritm nu are o definiţie riguroasă. Algoritmul este o metodă, un procedeu, o reţetă, o soluţionare a unei probleme, fără însă a realiza echivalenţa cu aceşti termeni. Dicţionarele de informatică definesc algoritmul ca: • o descriere a schemei de realizare a unui eveniment cu ajutorul unei mulţimi finite de acţiuni elementare predenumite, realizabile a priori şi având o durată limitată în timp; • un concept folosit pentru a desemna o mulţime finită de operaţii cunoscute care, executate într-o ordine bine stabilită, pornind de la o mulţime de valori (date) de intrare conduc la obţinerea în timp finit a unei alte mulţimi de valori, valori (date) de ieşire; • o secvenţă finită de paşi prin care se rezolvă o problemă logică sau matematică.

În realizarea unui algoritm este necesară satisfacerea următoarelor patru condiţii (proprietăţi): • claritatea, ceea ce înseamnă ca algoritmul să fie bine definit (cu specificaţii riguroase şi fără ambiguităţi); • exactitatea (determinismul), adică în fiecare moment al execuţiei algoritmului, se cunoaşte cu exactitate următoarea operaţie, precum şi modul de execuţie a fiecărei operaţii; descrierea cu exactitate asigură execuţia algoritmului pe un sistem de calcul; • universalitatea, ceea ce semnifică faptul că orice algoritm, fiind cât mai universal cu putinţă, asigură rezolvarea unei clase largi de probleme; • finitudinea, ce constă în faptul că algoritmul este finit în spaţiu (ca descriere) şi asigură obţinerea rezultatului într-un timp determinat de execuţie, adică după un anumit număr finit de paşi.

Page 17: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

17

După gândirea 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ă enunţuri: standard şi nestandard; enunţurile nestandard sunt fraze în limbajul natural ce se folosesc, de regulă, în programare pentru reprezentarea formei iniţiale a algoritmilor; enunţurile standard exprimă operaţii ce dispun de corespondenţe directe în instrucţiunile limbajului de programare.

Schema logică asigură reprezentarea sub formă grafică a algoritmilor. Schema logică de program se deosebeşte de schema logică de sistem. Schema logică de sistem descrie operaţiile de prelucrare a datelor pe sistemul de calcul, cu focalizare pe sursele de date, documentele primare ce le conţin, activităţile ce se execută asupra lor, modul de stocare şi de prezentare a rezultatelor prelucrării. 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ă ieşire. Această posibilitate se bazează pe teorema lui Boehm şi Jacopini care arată că orice algoritm poate fi reprezentat ca o combinaţie a celor trei structuri de control fundamentale: secvenţială, alternative şi repetitive. Structura de control secvenţială (liniară) cuprinde o succesiune de blocuri care se execută unul după altul. Structurile de control alternative (cu ramificaţii) corespund unui bloc de prelucrare care se execută în functie de satisfacerea unei condiţii. Aceste structuri de control prezintă următoarele forme: structura de control alternativă cu două ramificaţii (If…Then…Else); structura de control alternativă cu mai multe ramificaţii (imbricată); structura de control alternativă generalizată (Case-Of). Structurile de control repetitive (de ciclare) asigură repetarea prelucrării unor secvenţe de program. Formele structurilor de control repetitive sunt: structura repetitivă fără contor condiţionată anterior (While Do); structura repetitivă fără contor condiţionată posterior (Repeat …Until); structura repetitivă cu contor condiţionată anterior (Do…For); structura repetitivă cu contor condiţionată posterior (Do…For).

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 funcţiilor . Mai multe programe alcătuiesc împreună o aplicaţie informatică. Clasic, aplicaţia informatică are o structură statică arborescentă, adică este formată dintr-un program principal care apelează subprograme. Subprogramele sunt independente în conformitate cu principiile programării structurate (programe constituite din subprograme sau module şi folosirea structurilor de control fundamentale).

Aplicaţia informatică este dedicată unui anumit domeniu de activitate economică (de exemplu, aplicaţie informatică de contabilitate, aplicaţie informatică pentru managementul resurselor umane, aplicaţie informatică pentru gestiunea creditelor bancare etc.). Noţiunea de aplicaţie informatică nu este similară cu aceea de sistem informatic.

Limbajul de programare este un limbaj artificial ce se foloseşte pentru definirea unui şir de instrucţiuni care pot fi prelucrate şi executate pe un calculator.

Page 18: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

18

Procedura (procedure) este o parte componentă, cu nume, a unui program, căreia îi sunt associate constante, tipuri de date şi variabile şi care execută, de regulă, un task unic. Task-ul este un subprogram sau aplicaţie autonomă rulată ca o entitate independentă. Funcţia (function) este un subprogram sau rutină care returnează o singură valoare prin însăşi numele funcţiei. Spre deosebire de funcţie, procedura poate returna mai multe valori atunci când este rulată. Variabila este, în programare, o locaţie de memorie în care se stochează date de un anumit tip şi care pot fi modificate pe timpul execuţiei programului. Constanta desemnează o entitate cu nume ce reprezintă o valoare care nu se modifică pe timpul execuţiei unui program. Structura de date este o schemă de organizare a datelor cu scopul de a simplifica operaţiile de prelucrare sau de a uşura interpretarea lor. Există mai multe tipuri de structuri de date: vector, înregistrare, mulţime etc.

Instrucţiunea este formată din două elemente distincte: codul operatorului şi operanzii (datele supuse operaţiei elementare reprezentate prin cod). În funcţie de tipul prelucrării pe care o execută, instrucţiunile se clasifică în:

• instrucţiuni de prelucrare propriu-zisă; • instrucţiuni de organizare (structurare) care realizează concordanţa logică între

algoritm şi succesiunea internă a secvenţelor de program. Instrucţiunile de prelucrare propriu-zisă se grupează în:

� instrucţiuni de intrare-ieşire care stabilesc sensul fluxului de date în sistemul de calcul, fişierul de date asupra căruia se efectuează operaţia şi echipamentul periferic pe care se găseşte acest fişier de date; fişierul de date este o colecţie de date stocată pe un suport tehnic într-o succesiune de înregistrări;

� instrucţiunile de calcul, ce precizează natura operaţiei, adresele operanzilor care participă la calcul şi a operaţiei aritmetice;

� instrucţiunile de transfer (atribuire), ce realizează transferul datelor, precizând sensul transferului şi adresele operanzilor.

Instrucţiunile de organizare sunt următoarele: � instrucţiunile de comparare (decizie logică), care asigură compararea a doi sau

mai mulţi operanzi, rezultatul fiind categorisit ca “adevărat” (True) sau “fals” (False);

� instrucţiunile de salt, ce realizează trecerea de la secvenţa de instrucţiuni curentă din program la o secvenţă de instrucţiuni situată în alt punct al programului. Indiferent de limbajul de programare folosit pentru rezolvarea problemei,

realizarea unui program presupune parcurgerea următoarelor etape: 1. Analiza problemei de rezolvat şi realizarea algoritmului, etapă ce presupune elaborarea unui enunţ complet al problemei, stabilirea modalităţilor de organizare şi de reprezentare a datelor de intrare şi de ieşire, elaborarea schemei logică de sistem care defineşte echipamentele din configuraţia 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 instrucţiunile unui limbaj de programare; pentru această codificare, se foloseşte un editor de texte; acest editor poate fi independent sau poate face parte din mediul integrat de dezvoltare (IDE); se obţine astfel

Page 19: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

19

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 într-un limbaj de programare de nivel înalt în program-obiect, exprimat în instrucţiuni cod-maşină. Această operaţie de traducere se obţine, î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ă nerespectării sintaxei generale a unei instrucţiuni) sunt depistate şi afişate. Erorile de sintaxă sunt eliminate prin corecţii aduse programului-sursă, după care operaţia de compilare este reluată. Este important de menţionat faptul că în etapa de compilare nu se depistează erorile logice din program; erorile logice sunt greşeli produse la realizarea algoritmului de calcul. 4. Editarea de legături (linkeditarea), ce asigură includerea codului obiect al programului (programul-obiect) într-un ansamblu executabil (programul executabil) care cuprinde şi module specifice sistemului de operare, funcţii de bibliotecă etc. cu ajutorul componentei denumită editor de legături (linkeditor). Eventualele erori ce apar conduc la corecţii î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 exploatării programului.

2.3 Problematica generală a limbajelor de programare Limbajul de programare reprezintă un limbaj artificial ce se foloseşte pentru

definirea unui şir de instrucţiuni 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ă mulţimea simbolurilor utilizate pentru scriere în limbajul de programare respectiv. Vocabularul este compus din mulţimea cuvintelor întrebuinţate în limbaj. Gramatica limbajului de programare este reprezentată de ansamblul regulilor de scriere, cu preponderenţă sub aspect sintactic (mulţimea regulilor de formare a instrucţiunilor), cu luarea în consideraţie a regulilor de punctuaţie şi a semanticii (semnificaţiilor conferite cuvintelor) şi extrem de puţin sub aspect morfologic (ansamblul regulilor de modificare a formei cuvintelor, în contextul utilizării lor). Operaţia de interpretare asigură execuţia instrucţiune cu instrucţiune (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ă răspândire în România în deceniul 90 al secolului trecut), Informix, Oracle, Sybase, Microsoft Access.

Din categoria limbajelor de programare specializate fac parte limbajele inteligenţei artificiale. Se dau ca exemple limbajele Lisp şi Prolog.

Page 20: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

20

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ă moştenirea ş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 menţionează Pascal, C++, C#, SmallTalk, Simula, Java etc.

2.4. Elementele de bază ale programării 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ă moştenirea ş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 comparaţie cu alte obiecte. Metodele de comportament ale obiectului reprezintă elementele comportamentale ale acestuia în momentul accesării. Prin comportament, obiectul îşi pune în evidenţă apartenenţa 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 defineşte proprietăţile obiectului la un anumit moment). Elementele ce aparţin colecţiei de obiecte descrise într-o clasă reprezintă instanţe 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 entităţi complexe, obiectele sunt constituite din alte obiecte şi din valori. Distincţia între obiecte şi valori se realizează prin intermediul stării 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 operaţie de creare (new).

Clasa reprezintă o implementare a unui tip abstract de date ce încapsulează două tipuri de atribute: câmpuri sau proprietăţi şi metode sau operaţii ale tipului respectiv. Câmpurile sunt private adică sunt ascunse în reprezentarea obiectului. Metodele sunt publice adică accesibile utilizatorului. Altfel exprimat, clasa defineşte o categorie de obiecte cu proprietăţi şi metode ce se moştenesc într-o subclasă. Subclasa sau clasa derivată defineşte comportamentul obiectului derivat dintr-o clasă considerată de bază. Clasa este un model de realizare a obiectelor de acelaşi tip şi se defineşte cu ajutorul unui limbaj declarativ sau pe cale grafică. Clasa are un nume, prezintă operaţii externe sau metode, are o reprezentare internă (ca expresie a valorilor diverselor stări ale instanţelor de clasă) şi foloseşte cod ce implementează atât operaţiile externe cât şi descrierile reprezentării interne a obiectelor. Clasa există conceptual chiar şi atunci când nu conţine obiecte şi este un şablon pentru generarea şi manipularea obiectelor şi este accesată de utilizator cu ajutorul interfeţei specifice clasei. Specificarea metodei se numeşte semnătură, iar modul de implementare constituie corpul metodei. Noţiunea de clasă este asociată în special cu faza de execuţie şi presupune: generarea de obiecte (new) şi memorarea mulţimii de obiecte care reprezintă instanţele claselor. O clasă descrie

Page 21: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

21

obiectele, crearea unui obiect realizându-se prin luarea în consideraţie a unei expresii de tip. Tipul reprezintă o descriere abstractă a unui grup de entităţi asemănătoare. Obiectul prezintă valorile lui proprii, lista atributelor şi metodelor fiind gestionate de clasă. Pentru majoritatea limbajelor OOP, ansamblul instanţelor unei clase reprezintă o colecţie care are acelaşi nume cu clasa şi care se numeşte extensie a clasei. Obiectele reprezintă instanţe (manifestări) ale claselor din care fac parte. Tipul de dată este folosit pentru descrierea unei mulţimi de obiecte care au aceeaşi reprezentare. Fiecărui tip de dată i se asociază anumite operaţii cum ar fi de exemplu: operaţii aritmetice pentru date numerice, concatenări pentru şirurile de caractere, modificări 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ă atât structura obiectului, cât ş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: interfaţa (listă de metode) şi implementarea (descrierea structurii interne a datelor obiectului şi realizarea procedurilor de implementare a metodelor interfeţei). 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. Diferenţa dintre tipul de dată şi clasă este următoarea: tipul de dată este destinat pentru definirea de declaraţii utilizate pentru controlul static al expresiilor de limbaj, în timp ce clasele sunt şabloane destinate generării şi manipulării obiectelor care prezintă proprietăţi şi comportament comun. Între clase şi obiecte se stabilesc relaţii astfel: asociaţii binare între două clase, asociaţii n-are între mai multe clase, relaţii între obiect şi clasa din care face parte, relaţii între obiectele aceleiaşi clase. Există mai multe paradigme ale modelului folosit de OOP: moştenirea, încapsularea, polimorfismul, abstractizarea datelor, persistenţa, 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. Moştenirea asigură transferarea de proprietăţi şi metode de la clasa-părinte către un obiect nou. Prin moştenire sunt generate tipuri noi de obiecte şi clase într-o ierarhie. Prin moştenire, în OOP se elimină rescrierea şi recodificarea programelor, asigurându-se reutilizarea codului. Un obiect nou moşteneşte operaţii 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 aplicaţii prin intermediul OOP constă gruparea informaţiilor generale în clase care sunt apoi specializate pas cu pas în subclase cu comportament particular. Metodele reprezintă operaţii ce pot regăsi sau actualiza starea unui obiect. Această stare a obiectului este memorată în variabilele instanţelor sale. Într-o ierarhie de moşteniri, o metodă definită pentru o clasă este moştenită de subclasele sale. Moştenirea este implementată static sau dinamic. Moştenirea statică înseamnă adăugarea câmpurilor

Page 22: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

22

moştenite, situaţie în care redefinirea unei clase obligă la actualizarea tuturor subclaselor. Moştenirea dinamică se realizează fără a se copia câmpurilor moştenite şi obligă la parcurgerea legăturilor de moştenire. În cazul moştenirii dinamice, actualizarea se efectuează mai rapid, în timp ce execuţia este mai puţin eficientă. Moştenirea poate fi simplă sau multiplă. Moştenirea simplă se produce atunci când o subclasă moşteneşte proprietăţi şi metode ale unei singure clase-părinte. Moştenirea multiplă se realizează când o subclasă posedă mai multe clase-părinte. Încapsularea reprezintă proprietatea ce defineşte posibilitatea de a ascunde prin mascare atributele proprii ale unui obiect şi modul în care se execută metodele. Astfel, sunt protejate obiectele în situaţia efectuării greşite a unor manipulări exterioare. Un obiect poate fi accesat numai prin metodele asociate la crearea sa.

Polimorfismul defineşte caracteristica unei metode de a se comporta în mod diferit în funcţie de clasa de obiecte căreia îi aparţine. Polimorfismul asigură invocarea pentru obiectele de diferite tipuri a metodelor cu acelaşi nume, dar semantică şi implementare diferită. O metodă se comportă diferit în funcţie de clasa de obiecte căreia îi aparţine.

Abstractizarea datelor se realizează prin faptul că însăşi clasele sunt expresia unei abstracţii. Obiectele dintr-o clasă prelucrează datele modelului clasei căreia îi aparţin. Utilizatorul obţine comunicarea cu obiectele prin mesaje ce se transmit prin interfaţa ce specifică metodele posibile. Persistenţa este o proprietate a obiectelor care implică existenţa acestora şi după încetarea procesului care le-a creat. Starea obiectului şi codul corespunzător metodelor sunt memorate în baza de date. Tipurile obiectelor pot fi declarate persistente prin folosirea cuvântului cheie persistent la momentul declarării, variabila fiind şi ea constrânsă la un tip persistent.

Evenimentul reprezintă o acţiune 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 aplicaţii informatice. Ca urmare, evenimentele se pot produce în mod interactiv sau programat. Într-o aplicaţie informatică dirijată prin evenimente, codul nu urmăreşte o cale prestabilită, ci secvenţe de program executate ca răspuns la apariţia evenimentelor. Succesiunea în care se produc aceste evenimente determină secvenţa 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 pregătirea în vederea evaluării finale:

1. Noţiuni de bază specifice procesului de prelucrare automată a datelor. 2. Noţiuni de bază referitoare la programare. 3. Tipurile de enunţuri pe care le are în compunere un program pe calculator. 4. Ce reprezintă declaraţiile într-un program. 5. Ce reprezintă instrucţiunile într-un program. 6. Ce reprezintă identificatorul într-o declaraţie. 7. Concepte fundamentale în programare: program, structură de date, algoritm, limbaj de programare, declaraţii, instrucţiuni, mediu de programare. 8. Condiţiile pe care trebuie să le satisfacă un algoritm. 9. Clasificarea instrucţiunilor în funcţie de tipul prelucrării.

10. Fazele elaborării unui produs-program. 11. Descrierea algoritmilor. Limbajul pseudocod. Schema logică.

Page 23: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

23

12. Structurile de control fundamentale: secvenţiale, alternative şi repetitive. 13. Definirea noţiunilor de : aplicaţie 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 programării pe obiecte : clasa, metoda, tipul de dată, tipul abstract de dată, polimorfismul, moştenirea, î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 instrucţiuni cod-maşină R: traducere Teste de tipul adevărat/fals (TRUE/FALSE)

3. Clasa este noţiunea de limbaj care defineşte tipul de fişier. R: F

4. Moştenirea permite constituirea de noi tipuri de obiecte şi clase într-o ierarhie de module, prin rescriere şi recodificare. R: F

5. Metodele sunt operaţii care pot regăsi sau actualiza starea unui obiect, stare care este memorată în variabilele instanţelor sale. R: A Capitolul următor tratează problemele specifice limbajului Visual Basic: tipuri de date, funcţii, variabile, constante, instrucţiuni de atribuire, alternative, repetitive,tipuri de fişiere utilizate în VB. Prezentarea lecţiei / capitolul 3:

3. LIMBAJUL DE PROGRAMARE VISUAL BASIC

Concepte cheie: program, programare, declaraţie, instrucţiune, algoritm, schemă logică, limbaj de programare, procedură, funcţie, programare orientată pe obiecte, aplicaţie 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 aplicaţii 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. Când acest mediu de programare asistă utilizatorul (programatorul) în toate etapele de realizare a unui program, el se numeşte mediu de dezvoltare. Când toate componentele de asistare a

Page 24: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

24

utilizatorului (programatorului) sunt integrate în cadrul aceluiaşi mediu de dezvoltare, el se numeşte mediu integrat de dezvoltare.

Termenul visual din denumirea IDE Visual Basic semnifică faptul că aplicaţiile informatice dezvoltate în VB dispun de interfeţe grafice ce sunt proiectate vizual de către utilizator. Pentru aceasta, utilizatorul are la dispoziţie un set de elemente vizuale standard ce pot fi folosite la proiectarea unei interfeţe grafice, denumite elemente de control, sau, pe scurt, controale (Controls). Aceste controale sunt dispuse în ferestrele aplicaţiei, ferestre denumite formulare (Forms), concomitent cu stabilirea proprietăţilor acestora (în fereastra Properties) la dorinţa utilizatorului şi în conformitate cu necesităţile aplicaţiei.

Termenul Basic din compunerea IDE Visual Basic arată tipul limbajului de programare utilizat pentru realizarea programelor (secvenţelor de cod) corespunzătoare evenimentelor generate de acţionarea controalelor dispuse în formularul specific aplicaţiei. Limbajul de programare Basic (acronim provenit din denumirea în limba engleză – Beginner’s All-purpose Symbolic Instruction Code), definit la începutul anilor 1960, a cunoscut numeroase versiuni şi dezvoltări 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 programării structurate (programării bazate pe obiecte), programării dirijate de evenimente, orientării spre prelucrarea bazelor de date (manipulare şi interogare).

Visual Basic face parte din clasa de medii de dezvoltare rapidă a aplicaţiilor, RAD (Rapid Application Development), alături de Microsoft Visual C++, Power Builder, Borland Delphi ş.a. ce prezintă următoarele caracteristici: realizare rapidă a aplicaţiilor informatice, necesităţi acceptabile de resurse informatice la execuţie, separarea proiectării prelucrărilor de proiectarea interfeţei, integrează proiectarea interfeţei, 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 execuţie 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 apariţia ferestrei de creare a unui nou proiect - New Project, se apasă

butonul Open. După aceste acţiuni, 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 proprietăţilor Properties (6), fereastra Form Layout (7), fereastra Immediate (8), fereastra Locals (9), fereastra Watch (10), utilitarul Object Browser (11), aşa cum sunt prezentate în fig.2. Ferestrele care nu apar la pornirea VB şi sunt necesare pentru lucru, pot fi activate prin următoarea succesiune de comenzi: bara cu meniuri – View – poziţionare 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 afişează poziţia (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 acţiunile efectuate în mod frecvent. Pentru deschiderea unui meniu contextual se poziţionează vârful 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 stânga mouse-ului.

Page 25: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

25

Cutia cu instrumente, Toolbox, (fereastra 2 din fig.3.1), asigură instrumentele predefinite folosite în timpul proiectării formularului pentru a introduce controale pe acesta. Utilizatorul poate crea propriile controale, imagini sau grafică prin selecţia opţiunii AddTab din meniul contextual.

Fereastra de proiectare a formularului, Form Design (fereastra 3 din fig.3.1), este fereastra pentru realizarea interfeţei dintre utilizator şi secvenţele 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 aplicaţiei informatice. Fiecare formular sau modul de cod din cadrul aplicaţiei 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), serveşte numai la proiectarea

aplicaţiei pentru afişarea colecţiei de fişiere ce conţin formularele şi modulele din cadrul proiectului aflat în lucru (curent). Unele fişiere sunt încărcate în mod automat de către sistem, iar alte fişiere sunt realizate de către utilizator (programator). Fişierele care se găsesc în fereastră (proiect) se pot grupa pe categorii cu ajutorul butonului Toggle Folders. Butonul View Object serveşte pentru vizualizarea obiectului selectat (current), iar butonul View Code este folosit pentru vizualizarea codului.

Fereastra de stabilire a proprietăţilor, Properties (fereastra 6 din fig.3.1), asigură afişarea valorilor proprietăţilor pentru formularul sau controlul selectat. O proprietate reprezintă o caracteristică a unui obiect (titlu, dimensiuni, poziţie, 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 aplicaţiilor informatice rulate din interiorul mediului IDE. Mediul VB 6.0 permite funcţionarea în trei moduri de lucru: proiectare (design mode), rulare normală (run mode) şi execuţie cu întrerupere (break mode). Execuţia cu

Page 26: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

26

întrerupere (pas cu pas) se utilizează la depanarea aplicaţiei pe baza punctelor de întrerupere (breakpoints) stabilite în prealabil. Fereastra Immediate permite introducerea de secvenţe de cod care se execută imediat sau afişarea valorilor unor expresii.

Fereastra Locals (fereastra 9 din fig.3.1) este destinată, la depanarea programelor VB, pentru afişarea 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 acţiunii (curente). Utilizarea ferestrei Watch este posibilă prin intermediul meniului contextual.

Utilitarul Object Browser (fereastra 11 din fig.3.1) realizează afişarea obiectelor disponibile în IDE ce pot fi utilizate de proiect. Utilitarul serveşte, de asemenea, pentru a examina obiecte din VB şi din alte aplicaţii, pentru a constata ce metode şi proprietăţi sunt disponibile în cazul acestor obiecte şi pentru a prelua coduri de program în propria aplicaţie informatică.

Editorul de meniu (Menu Editor) permite proiectarea meniurilor asociate formularelor. Pentru afişarea ferestrei corespunzătoare, se apasă butonul cu acelaşi nume de pe bara cu instrumente sau prin opţiunea Menu Editor din meniul Tools. Fiecare meniu are nume, proprietăţi şi mod de accesare asociat.

3.3 Proiectarea aplicaţiilor în limbajul Visual Basic Pentru a proiecta o aplicaţie informatică în limbajul Visual Basic, este necesară

parcurgerea următoarelor trei etape: 1. Crearea interfeţei. 2. Precizarea proprietăţilor. 3. Scrierea codului. Crearea interfeţei se efectuează cu ajutorul formularelor (Forms). Acestea servesc pentru

a genera ferestre şi casete de dialog, în calitate de containere pentru elemente care se găsesc în partea ascunsă a aplicaţiei. Precizarea proprietăţilor se realizează prin intermediul ferestrei Properties, după selecţia prealabilă a obiectului. Scrierea codului se execută folosind fereastra de editare a codului, Code Editor. Crearea aplicaţiilor în VB se face în modul de proiectare Design Mode, iar execuţia acestora se efectuează în modul de rulare normală, Run Mode. Înainte de prezentarea în detaliu a celor trei etape de proiectare a unei aplicaţii în VB, se tratează fişierul proiect.

3.3.1 Fişierul proiect Termenul de proiect în VB este similar cu aplicaţia informatică, astfel că el cuprinde o

listă a fişierelor care intră în compunerea aplicaţiei. Fişierul proiect este un fişier 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 (fişierul grup de proiecte are extensia .VBG). În lista de fişiere a unui proiect pot fi incluse următoarele tipuri de fişiere:

� fi şier pentru formular (.FRM); � fi şier pentru formular care cuprinde controale cu proprietăţi care prezintă ca

valori date binare (.FRX); � fi şier pentru clasă de module (.CLS); � fi şier pentru modul standard (.BAS); � fi şier pentru control utilizator (.VBX – DDL-uri pentru controale pe 16 biţi şi

.OCX - DDL-uri pentru controale pe 32 de biţi ). 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ă). Aşa 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

Page 27: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

27

şi în alte programe. Modulul defineşte 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 puţin un modul (modul de formular sau modul de cod).

Atunci când au fost definite toate componentele unui proiect, acesta poate fi transformat direct într-un fişier executabil (.EXE), astfel: 1. din meniul File (fig.3.2, opţiunea notată 6), se selectează opţiunea Make … EXE…; 2. se introduce numele fişierului 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) serveşte pentru crearea unui proiect nou, adăugând un nou

formular şi, eventual, module, referinţe şi obiecte utilizator cuprinse în fişierul Auto32ld.VBP;

• Open Project (2) deschide un proiect existent, cu formularele, modulele şi obiectele utilizator listate în fişierul 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, fişierul proiect al aplicaţiei existente împreună cu toate formularele, clasele de module şi modulele standard.

Aşa cum se deduce din descrierea opţiunilor de salvare a proiectului de mai sus, realizarea aplicaţiei este terminată atunci când se selectează comanda Save Project As…(5) din meniul File sau când se selectează butonul Save Project din linia de butoane. Mediul Visual Basic solicită salvarea, pe rând, a formularului şi apoi a proiectului prin introducerea numelui dar şi a unităţii logice de memorie, precum şi a căii unde se doreşte a avea loc salvarea. În mod implicit, mediul Visual Basic asigură salvarea în locaţia C:\Program Files\Microsoft Visual Studio\VB98 (Save In). Pentru salvarea unui proiect, se recomandă particularizarea numelui proiectului şi folosirea unei unităţi logice de memorare şi a unei căi personalizate a utilizatorului pentru fiecare proiect, ca, de exemplu:

Homes(D:)\Student\Facultatea\Grupa\Nume_prenume_student\Nume proiect.

Page 28: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

28

Când 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 fişiere. Un fişier, cum este. de exemplu, un formular, poate aparţine 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 interfeţei aplicaţiei Crearea interfeţei unei aplicaţii se realizează cu ajutorul unui obiect denumit formular

(Form). În multe lucrări destinate VB, echivalentul românesc pentru Form este formă. În lucrarea de faţă s-a preferat denumirea de formular deşi cea de formă este mai apropiată de termenul în limba engleză (crearea formularului înseamnă de fapt “turnarea” controalelor într-o formă adecvată interfeţei aplicaţiei). Motivul preferinţei pentru “formular” este asigurarea lizibilităţii apariţiei denumirii acestui obiect în explicaţiile din cuprinsul lucrării, deşi în dicţionarele limbii române, formularul, în general, este definit ca un imprimat cu mai multe spaţii albe ce se completează în vederea întocmirii unui tabel.

Formularul este un container de controale care facilitează dialogul dintre utilizator şi aplicaţie. Controalele nu pot funcţiona în afara formularului. Ele sunt obiecte care elibererază programul de sarcinile legate de intrările şi ieşirile generate de acţiunile utilizatorului, concentrând eforturile pe operaţiile de prelucrare a datelor. Avantajul controalelor din VB este că ele se aseamănă foarte mult cu controalele standard ce apar în sistemul de operare Windows (meniuri, butoane, casete). Controalele uşurează munca de programare în sensul că sunt eliminate instrucţiunile care să ghideze utilizatorul asupra acţiunilor pe care acesta trebuie să le întreprindă. La proiectarea interfeţei aplicaţiei (Design Mode), fereastra de proiectare a formularului serveşte pentru dispunerea controalelor necesare proiectului.

La rularea programului (Run Mode), formularul îndeplineşte 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 găsesc linii punctate cu rolul de a asigura orientarea utilizatorului, iar la marginea ferestrei sunt dispuse mânerele de redimensionare a formularului. Este bine ca, încă de la crearea formularului, să se

Page 29: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

29

opteze pentru o dimensiune potrivită a formularului în raport cu numărul de controale introduse şi de dimensiunile acestora; nu este estetic şi nici practic să rămână zone mari nefolosite pe suprafaţa formularului.

Un formular include descrierea grafică a acestuia, controalele sale, proprietăţile, constantele, variabilele şi procedurile externe, subrutinele de tratare a evenimentelor, procedurile generale. Fiecărui formular îi corespunde un modul de formular (Form Module).

Clasa de module (Class Module) este asemănătoare formularului, dar nu dispune de interfaţă utilizator vizibilă. Clasa de module poate fi folosită pentru crearea obiectelor utilizator, cuprinzând secvenţe de cod pentru metodele şi proprietăţile obiectelor definite. Obiectele care aparţin aceleaşi clase nu sunt înzestrate cu evenimente proprii.

Fig.3.4 Caseta cu instrumente (ToolBox)

Mediul VB asigură interfaţă pentru un singur document (SDI) sau interfaţa 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ă părinte) ce poate fi redimensionată. Pentru a obţine comutarea între modurile de lucru SDI şi MDI se realizează următoarea succesiune de acţiuni: 1. se selectează Options (opţiuni) din meniul Tools; efectul este apariţia 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 opţiuni (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 menţiunea că această casetă cu instrumente (Toolbox) este configurabilă. Adăugarea sau scoaterea de controale din caseta cu instrumente (Toolbox) se obţine din meniul Project, opţiunea Components (opţiunea 8 din fig.3.3), în care se validează controlul dorit (aşa cum este prezentat în fig.3.5 pentru controlul Shockwave Flash).

Page 30: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

30

Fig.3.5 Modul de adăugare a unui control la cutia cu instrumente (Toolbox) Introducerea unui control din cutia cu instrumente (Toolbox) pe suprafaţa formularului se

obţine prin parcurgerea etapelor următoare: 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 acţionează butonul din stânga al mouse-lui;

b. se mută cursorul mouse-ului pe suprafaţa formularului, în poziţia în care va fi colţul stâng al controlului;

c. se efectuează succesiunea de operaţii de tipul Drug and Drop până se dimensionează după dorinţă controlul selectat;

d. se eliberează butonul stâng al mouse-ului. O altă modalitate de introducere a controlului selectat pe suprafaţa 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 suprafaţa formularului se face după o anumită logică legată de succesiunea operaţiilor importante de introducere date, prelucrare şi afişare rezultate. Fiecare control este caracterizat de un ansamblu de proprietăţi ce se referă la descrierea comportamentului sau aspectului unui control. Lăţimea sau înălţimea unui control se măsoară în twip (un twip reprezentând cel mai mic punct adresabil de pe ecran, cu dimensiunea de 1/1440 inch). Aşa cum se va arăta în paragraful următor, fereastra Properties permite modificarea între limite prestabilite a valorilor diferitelor proprietăţi ale controalelor.

Focalizarea reprezintă operaţiunea de punere în evidenţă a unui control la un moment dat; mai precis, acel control devine activ prin focalizare. Acel control activ se mai numeşte şi focar (focus). Acest lucru se pune în evidenţă printr-o linie punctată în jurul controlului sau printr-un titlu îngroşat. Mutarea focarului de la un control la altul se efectuează prin intermediul tastelor Tab sau Shift+Tab. Apăsarea tastei Enter va determina acţiunea controlului focar sau focalizat.

Ordinea de parcurgere a controalelor în formular reprezintă ordinea în care controalele sunt puse în evidenţă prin focalizare, odată cu apăsarea succesivă a tastei Tab. În momentul activării formularului, este stabilit primul control care este focalizat. Proprietăţile comune tuturor controalelor din formular care stabilesc ordinea de parcurgere a controalelor sunt TabIndex

Page 31: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

31

(poziţia) ş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 evidenţiată printr-o literă subliniată. Prin acţiunea Alt+ litera subliniată, se provoacă acţiunea controlului respectiv. Litera subliniată se introduce cu ajutorul proprietăţii Caption prin precedare de un ampersand (&).

Redimensionarea unui control introdus deja pe suprafaţa formularului se obţine astfel: 1) se selectează controlul de redimensionat prin click executat cu mouse-ul în interiorul

suprafeţei acestui control. Pe marginile controlului apar mânerele de redimensionare; 2) se fixează cursorul mouse-ului în dreptul unui mâner de redimensionare şi se mişcă

ţinând apăsat butonul stâng al mouse-ului, până se obţine dimensiunea dorită. Mânerele situate în colţurile suprafeţei controlului redimensionează controalele atât pe

verticală cât şi pe orizontală, iar mânerele dispunse pe laturi redimensionează controlul numai într-o singură direcţie.

3) se eliberează butonul stâng al mouse-ului. Mutarea unui control pe suprafaţa formularului se realizează cu mouse-ul prin tehnica

Drug and Drop. După finalizarea proiectării formularului, blocarea tuturor controalelor pe suprafaţa

formularului se obţine din meniul Format cu opţiunea 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 execuţiei aplicaţiei.

Pentru exemplificarea etapei de creare a interfeţei aplicaţiei, în continuare se propune să se introducă controalele pentru un formular care să constituie interfaţa pentru următoarea aplicaţie informatică:

Să se realizeze un program în limbajul Visual Basic care să calculeze valoarea totală a unei facturi de materiale. Deocamdată, factura conţine un singur material la o rulare a programului. Datele de intrare sunt: număr factură (Nrf), data facturii (Df), codul materialului (Codmat), denumirea materialului (Denmat), cantitate (Cant) şi preţul 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 rulării programului se vor afişa în casete text separate pentru valoare material fără TVA (Vmftva), valoare material cu TVA (Vmctva), valoare factură fără TVA (Vfftva) şi valoare factură cu TVA (Vfctva).

Se vor prevedea butoane de comandă (Command Button) pentru calculul şi afişarea unui material (fără TVA şi cu TVA) – butonul CALCULEAZA şi pentru calculul valorii facturii (fără TVA şi cu TVA) – butonul AFISEAZA.

Pentru afişarea denumirilor pentru datele de intrare (Nrf, Df, Codmat, Denmat, Cant şi Pu), a datelor intermediare (Vmftva şi Vmctva) şi a datelor de ieşire sau rezultatelor (Vfftva şi Vfctva), se folosesc controale de tip etichetă (Label). Aceste controale de tip etichetă se găsesc î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 mânerelor de dimensionare (Label1…Label10). Î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 enunţul aplicaţiei informatice (un singur material pe factură), pentru introducerea datelor de intrare şi afişarea datelor intermediare şi de ieşire (Text1…Text2), precum şi cu butoanele de comandă (Command Button) ce se vor folosi pentru declanşarea procedurilor de calcul (Command1), de afişare a valorii facturii (Command2) şi de ieşire din program (Command3). Aspectul formularului astfel obţinut este prezentar în fig.3.6.

3.3.3 Precizarea proprietăţilor Precizarea proprietăţilor î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 (afişează numele şi tipul obiectului selectat, adică obiectul curent) şi caseta Settings – setări (afişează alfabetic sau pe categorii lista proprietăţilor – stânga şi lista cu valorile sau setările proprietăţilor – dreapta).

Page 32: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

32

1

Fig.3.6 Crearea formularului pentru aplicaţia informatică cu factura de materiale

Fig.3.7 Fereastra Properties Activarea ferestrei Properties se poate obţine prin succesiunea de comenzi meniu principal – View – Properties Window sau cu ajutorul tastei funcţionale F4.

Precizarea proprietăţilor se obţine prin parcurgerea următoarele etape:

Page 33: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

33

1) dacă nu este afişată, se activează fereastra Properties; se selectează obiectul căruia urmează să i se precizeze proprietăţile; în acest moment, se afişează automat proprietăţile cu valorile implicite pentru obiectul selectat; 2) din lista alfabetică sau lista pe categorii a proprietăţilor se selectează denumirea proprietăţii la care se vor modifica valorile sau setările existente; 3) în coloana valorilor sau setărilor din dreapta se tastează sau se selectează valorile dorite pentru proprietate.

Pentru a asocia o pictogramă unui formular se atribuie o valoare proprietăţii icon pentru acel formular.

Pentru exemplificarea etapei de precizare a proprietăţilor, se continuă aplicaţia cu factura materiale din paragraful 3.3.2, precizându-se proprietăţile 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 obţine prin introducerea în fereastra Properties a numelui (Name) frmMat şi a etichetei (Caption) FACTURA MATERIALE.

Personalizarea numelui pentru controalele de tip etichetă (Label) se obţine 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 obţine 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 obţine prin introducerea în fereastra Properties a: • cmdCalcul (Name), CALCULEAZA (Caption); • cmdAfisare (Name), AFISARE VALOARE FACTURA (Caption); • cmdExit (Name), IESIRE (Caption). Explicaţiile privind formarea numelui obiectelor cu prefixe standard vor fi date în

paragraful 3.4.1. Aspectul formularului obţinut prin precizarea proprietăţilor formularului şi controalelor

incluse este prezentat în fig.3.8.

Page 34: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

34

Fig.3.8. Introducerea proprietăţilor formularului şi controalelor incluse pentru aplicaţia informatică cu factura de materiale

3.3.4 Scrierea codului După proiectarea formularului şi precizarea proprietăţilor , urmează scrierea codului care

constă în asocierea unor secvenţe de cod pentru toate controalele din formular, adică moduri de acţiune la diverse evenimente.

Codul conţine constante, declaraţii de variabile şi instrucţiuni scrise în limbajul de programare Visual Basic, în conformitate cu algoritmul de calcul. Legarea efectivă de control sau fereastră a secvenţelor de cod se obţine de către utilizator (programator) în mod conversaţional.

Pentru scrierea codului se deschide fereastra de editare a codului (Code Editor), fig.3.9. prin dublu-click executat cu butonul stâng al mouse-ului poziţionat 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 reacţionează 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 numeşte procedură eveniment. Procedura-eveniment asociată unui control are numele alcătuit din numele controlului (stabilit în proprietatea Name), o liniuţă de subliniere (_) şi numele evenimentului.

Page 35: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

35

Fig.3.9. Fereastra editare a codului, Code Editor

Atunci când 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ă următoarea succesiune de acţiuni: caseta Object → se specifică numele obiectului din formularul curent (adică cel care este focalizat) pentru care se scrie codul → caseta cu listă Procedure → selecţie nume eveniment asociat obiectului selectat (de exemplu, procedura Click implicită pentru controlul buton de comandă, Command Button) → şablon pentru procedura-eveniment → între declaraţiile Private Sub şi End Sub, se introduce de la tastatură codul în conformitate cu algoritmul de calcul.

Se poate opta pentru afişarea tuturor procedurilor în aceeaşi fereastră de cod sau pentru afişarea unei singure proceduri la un moment dat.

Pentru afişarea tuturor procedurilor în cadrul aceleiaşi fereastre de cod, se execută clic pe butonul de vizualizare a întregului modul, Full Module View (fig.3.9), în colţul din stânga-jos al ferestrei de editare a codului, Code Editor sau se execută următoarea succesiune de acţiuni: meniul Tools → caseta de dialog Options (fig.3.8) → secţiunea Editor (1) → grupul de setări pentru fereastră, Window Settings (2), bifă în caseta de validare din stânga lui Default to Full Module View (3). În acelaşi grup de setări pentru fereastră, caseta de validare din stânga lui Procedure Separator (4) serveşte la adăugarea sau eliminarea unei linii de separaţie între proceduri (fig.3.10).

Pentru afişarea unei singure proceduri la un moment dat, se execută click pe butonul de vizualizare a procedurii, Procedure View (fig.3.9), în colţul din stânga-jos al ferestrei de editare a codului, Code Editor sau se execută următoarea succesiune de acţiuni: meniul Tools → caseta de dialog Options (fig.3.10) → secţiunea Editor (1) → în grupul de setări pentru fereastră, Window Settings (2), se şterge bifa din caseta de validare din stânga lui Default to Full Module View (3).

Page 36: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

36

Fig.3.10 Fereastra de opţiuni, Options a meniului de instrumente, Tools

Pentru exemplificarea etapei de scriere a codului unei aplicaţii informatice în Visual Basic, se continuă aplicaţia 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. Explicaţiile privind logica scrierii acestui cod vor fi date în paragraful 3.4. Codul pentru aplicaţia cu factura de materiale este prezentat în fig.3.11

3.3.5. Execuţia aplicaţiei informatice în Visual Basic După parcurgerea etapelor de creare a interfeţei (proiectarea formularului), de precizare a

proprietăţilor şi de scriere a codului, toate fişierele aplicaţiei sunt salvate şi se trece de la modul de proiectare (Design Mode) la modul de rulare (execuţie) a proiectului (Run Mode).

Pentru a lansa în execuţie aplicaţia se alege opţiunea Start din meniul Run (fig.3.12) sau se acţionează tasta funcţională F5 sau se execută cu butonul stâng al mouse-ului click pe butonul Start de pe bara cu instrumente.

Terminarea rulării proiectului se efectuează cu opţiunea End din meniul Run (fig.3.12) sau prin apăsarea butonului de închidere (Close) a ferestrei aplicaţiei (colţul din dreapta sus al ferestrei) sau prin apăsarea butonului End de la bara cu instrumente (fig.3.3). După terminarea execuţiei aplicaţiei, mediul VB revine în modul de proiectare (Design Mode).

Prin rularea proiectului, se obţine fişierul executabil. Aşa cum s-a arătat în paragraful 3.3.1, fi şierul executabil se poate obţine direct din meniul File cu opţiunea Make …EXE (fig.3.3).

Page 37: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

37

Fig.3.11 Codul pentru aplicaţia cu factura de materiale introdus în fereastra de editare a codului

Reluând aplicaţia cu factura de materiale din paragrafele 3.3.2, 3.3.3 şi 3.3.4, această aplicaţie 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 unităţile de măsură, acestea fiind topuri, bucăţi, role, cutii) şi se obţin rezultatele prezentate în fig.3.13, pentru setul de date nr.2 din tabelul 3.2.

Page 38: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

38

Fig.3.12 Comanda execuţiei unei aplicaţii în VB

Tabelul 3.2 Exemple de seturi de date de intrare pentru aplicaţia cu factura de materiale consumabile pentru tehnica de calcul

Nr. crt.

Numar factura

Data factura

Cod material

Denumire material

Canti tate

Pret unitar

1 16844 16/10/2004 41000825 Hirtie xerox 30 120000 2 16844 16/10/2004 41081320 Cartus

imprimanta 5 4280000

3 16844 16/10/2004 41061223 Hirtie fax 5 230000 4 16844 16/10/2004 41081422 Ribon 10 620000 5 16844 16/10/2004 41061154 Toner copiator 3 1200000

Fig.3.13 Rezultatele rulării aplicaţiei 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 esenţială 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 căruia îi aparţine. Ca urmare, s-a adoptat convenţia conform căreia un nume trebuie să fie format dintr-un prefix din trei litere (dat de notaţia ungară) şi numele propriu-zis cu semnificaţie

Page 39: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

39

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 conţine 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 compuşi din şiruri de caractere. Literalii pot fi de tipul literali şiruri de caractere şi sunt scrişi între ghilimele, şi de tipul literali numerici – zecimali (în baza 10), octali (în baza 8), hexazecimali (în baza 16). Identificatorii pot fi predefiniţi (cuvinte rezervate şi cuvinte-cheie ce desemnează instrucţiuni, funcţii, operatori, metode) sau pot fi definiţi de utilizator (ce desemnează obiecte, variabile, tipuri de date, constante, etichete, proceduri). Instrucţiunile specifice limbajului Visual Basic se obţin prin combinarea literalilor, identificatorilor şi cuvintelor rezervate. Pentru lizibilitatea codului, fiecare instrucţiune se scrie pe o linie separată. Dacă o instrucţiune nu încape pe o linie, se poate continua pe linia următoare prin caracterul underscore (_). Se pot folosi 20 astfel de linii de continuare a unei instrucţiuni.

Numele sunt folosite la setarea proprietăţilor la momentul execuţiei şi în stabilirea numelor procedurilor pentru evenimentele obiectelor. Setarea proprietăţilor la momentul execuţiei se obţine 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) corespunzător procedurilor eveniment, pentru scrierea codului. Formatul fiecărei 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 ataşează un obiect. Visual Basic construieşte automat un cadru

de lucru (framework) pentru fiecare dintre procedurile eveniment. Utilizatorul care construieşte aplicaţia trebuie să scrie codul procedurilor eveniment la care corespunde aplicaţia.

Page 40: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

40

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 obţin prin combinarea mai multor tipuri de date existente în structuri de date.

Declararea tipurilor de date definite de utilizator se efectuează în secţiunea Declaration (din modulul standard) cu Type…End 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 română Tip engleză

Sufix Memorie ocupată

Interval de valori (domeniu)

Octet

Byte

- 1 0…255

Întreg Integer % 2 -32768…+32767 Întreg lung Long

(integer) & 4 2.147.483.648…+2.147.483.647

Logic Boolean - 2 True, False Real simplă

precizie Single

(floating) !

4 -3,40 e38…+3,40 e38

Real dublă precizie

Double (floating)

#

8 -1,8 e308…+1,8 e308

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

caractere String $ 1 octet/

caracter Şir de caractere alfanumerice

Nedefinit Variant - - Şir, numere, dată De exemplu, tipul de date definite de utilizator Client are următoarea 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

Page 41: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

41

End Type 3.4.3 Variabile şi constante Variabilele care se folosesc într-un program desemnează locaţii de memorie în care

se stochează valori ce se modifică pe timpul execuţiei 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. Corespunzător variabilei care se doreşte 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 conţine: valori numerice, şiruri de caractere sau dată calendaristică.

b) Implicit. Declararea implicită este dată prin folosirea sufixului corespunzător. 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 instrucţiunilor care utilizează variabilele respective şi permite identificarea, gestionarea corectă a apariţiei 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

cuvântul cheie Dim: Dim Denumire_material As String Dim Cantitate As Integer Dim Pret_unitar As Single. Variabilele declarate la nivelul procedurilor îşi vor păstra valorile numai pe

timpul rulării procedurilor respective. Din acest motiv se mai numesc şi variabile locale. Pentru ca variabilele să-şi păstreze valorile şi după terminarea procedurii, se

foloseşte domeniul procedurilor în care variabilele se declară static, cuvântul-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 menţin

valorile la nivelul formularului (modulului), relativ la toate procedurile prin declararea variabilelor cu Dim, dar în partea de declaraţii a obiectului general, în fereastra de cod a formularului.

Pentru domeniul domeniul nivelului global, o variabilă este disponibilă tuturor procedurilor prezentate în aplicaţie, prin declararea în partea de declaraţii a obiectului general din fereastra de cod a unui modul cu ajutorul cuvântului cheie Global. De exemplu:

Global Nr_factura As Long

Page 42: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

42

Global Data_factura As Date. În cazul mai multor variabile cu acelaşi nume, variabilele locale au valabilitate numai în cadrul procedurilor. La părăsirea acestor proceduri se folosesc variabilele cu acelaşi nume, dar definite la nivel superior.

Procedura de introducere a acestor variabile globale este următoarea: • se execută dublu-click oriunde în fereastra formularului pentru a deschide

fereastra de editare a codului (sau se selectează opţiunea View Code din fereastra Project);

• se declară variabilele din formular astfel: • Option Explicit (forţează declararea variabilelor) • Global Nr_factura As Long • Global Data_factura As Date.

Constante simbolice utilizate în Visual Basic În cele mai multe situaţii, funcţiile şi obiectele limbajului Visual Basic necesită

argumente pentru efectuarea operaţiilor 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 Instrucţiuni Visual Basic 3.4.4.1 Construirea expresiilor Cea mai simplă instrucţiune 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 cuvântul Let dar este obligat să exprime numele

variabilei şi expresia pe baza căreia se deduce conţinutul. Vmftva = Cant *Pu Vfftva =Vfftva + Vmftva Nume_client = „Georgescu Constantin” Instrucţiunile se scriu de obicei pe o singură linie fără delimitator. Pentru a putea

scrie mai multe instrucţiuni pe o linie se foloseşte separatorul „:”. Observaţie: se recomandă folosirea atentă a acestui delimitator când este folosită

structura If …End If. Dacă o instrucţiune este foarte lungă, ea poate continua pe următoarea 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 cuvântul cheie Rem sau „’ “. De exemplu: Rem Acesta reprezinta un comentariu ’ Acesta reprezinta un exemplu de comentariu. 3.4.4.2 Operatori Visual Basic

Page 43: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

43

Operatorii Visual Basic, în ordinea claselor de precedenţă, sunt prezentatţi în tabelul 3. Precedenţa operatorilor (clasele de precedenţă) se referă la ordinea în care se execută operaţiile într-o expresie care conţine mai multe tipuri de operatori. Primii sunt executaţi operatorii de concatenare, după care urmează operatorii arithmetic, operatorii de comparare şi, la sfârşit, 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 Funcţii Visual Basic

Funcţia (Function) reprezintă o mulţime ordonată de instrucţiuni creată în scopul îndeplinirii unei sarcini (task) bine precizată şi repetabilă. Funcţia returnează un singur rezultat. Funcţiile Visual Basic sunt predefinite sau definite de utilizator. Visual Basic asigură o bibliotecă variată de funcţii predefinite. În tabelul 4 sunt prezentate principalele funcţii predefinite specifice limbajului Visual Basic.

Tabelul 3 Clasele de precedenţă ale operatorilor în Visual Basic Clasa Operator Operaţia 1. And, Or, Not Logică 2. Mod Modulo 3. <,>,<=,>=,=,<> Comparare

+ -

Adunare Scădere

4. ^ Exponenţiere (ridicare la putere) \ Împărţire întreagă

5. * /

Înmulţire Împărţire

( ) [ ] Stabilire prioritate calcul 6. &, + Concatenare şir de caractere

Tabelul 4 Principalele funcţii predefinite ale limbajului Visual Basic

Funcţie Valoare returnată Abs Valoarea absolută a unui număr Asc Codul ASCII sau ANSI al unui caracter Chr Caracterul corespunzător unui cod ASCII sau ANSI Cos Cosinusul unui unghi Date Data curentă ca şir de caractere Format Dată sau număr convertite la un şir de caractere Left Selectează partea stângă a unui şir de caractere Len Numărul 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 sfârşit a unei şir de caractere Rnd Generarea aleatoare a unui număr Sin Sinusul unui unghi Sqr Rădăcină pătrată dintr-un număr Str Număr transformat într-un şir de caractere Time Timpul curent dat ca şir de caractere

Page 44: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

44

Funcţie Valoare returnată Timer Număr de secunde rămase până la miezul nopţii (ora „0”)

3.4.4.4 Implementarea structurilor de control al execuţiei unui program

S-au prezentat cele trei structuri de control fundamentale: structura de control secvenţială (liniară), structurile de control alternative (cu ramificaţii) şi structurile de control repetitive (de ciclare). Tuturor acestor structuri de control fundamentale le sunt asociate instrucţiuni specifice în limbajul de programare Visual Basic, cu ajutorul cărora poate fi controlată logica de execuţie a oricărei secvenţe de program în Visual Basic. Acestor instrucţiuni li se alătură comenzile asociate operaţiunilor de intrare/ieşire specifice introducerii datelor de intrare, respectiv extragerii rezultatelor prelucrărilor, precum şi instrucţiunile de transfer.

Instrucţiuni alternative (sau cu structură alternativă) • Instrucţiunea If – cea mai simplă formă a acestei instrucţiuni este: If condiţie Then instrucţiune De exemplu: If TVA=0.19 Then Vmctva=Vmftva + TVA * Vmftva Când în instrucţiunea If, după cuvântul cheie Then urmează mai multe

instrucţiuni, sintaxa generală a instrucţiunii este: If condiţie Then Secvenţă de instrucţiuni 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 instrucţiunii 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 • Instrucţiunea Select Case Instrucţiunea Select Case se foloseşte în cazul când sunt precizate mai multe

selecţii. Sintaxa generală a instrucţiunii este următoarea: Select Case variabilă Case Is variabilă sau expresie instrucţiuni … Case Is variabilă sau expresie instrucţiune Case Else instrucţiune End Select De exemplu, pentru selecţia persoanelor după categoria de vârstă

(Categoria_varsta) se procedează astfel: Select Case Vârsta Case Is 5 Categoria_varsta = ”Copii sub 12 ani” Case Is 13 TO 19 Categoria_varsta = ”Adolescenţi” Case Is 20 TO 35, 50, 60 TO 65

Page 45: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

45

Categoria_varsta = ”Adulţi” Case Is > 65 Categoria_varsta = ”Bătrâni” Case Else Categoria_varsta = ”Alte categorii” End Select Instruc ţiuni repetitive Ciclarea este asigurată prin formatul general Do … Loop. Ciclările

implementează operaţiile care se repetă de un anumit număr de ori, ciclarea repetându-se până când se îndeplineşte o condiţie specificată, întâlnită la începutul sau sfârşitul ciclării.

• Instrucţiuni care implementează structuri de control repetitive condiţionate anterior

Din această categorie fac parte instrucţiunile Do {While|Until}…Loop şi While …Wend care au următoarele sintaxe generale:

Do [{While|Until} conditie] Secventa_instructiuni_1 [Exit Do] Secventa_instructiuni_2 Loop, respectiv: While conditie Secventa_instructiuni Wend Când conditie este adevărată (True), se execută secvenţa imediată de instrucţiuni.

Instrucţiunea While …Wend nu permite ieşirea forţată din ciclare. • Instrucţiuni care implementează structuri de control repetitive condiţionate

posterior Din această categorie fac parte instrucţiunile Do …Loop {While|Until}care au

următoarea sintaxă generală: Do [Secventa_instructiuni_1] [Exit Do] [Secventa_instructiuni_2] Loop {While|Until} conditie Un exemplu de utilizare a instrucţiunii Do …Loop Until este următorul: 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ă până când răspunsul la întrebarea “CONTINUATI?” va fi No

(Nu). • Instrucţiuni care implementează structuri de control repetitive cu contor În acest caz, numărul de iteraţii este cunoscut. Din această categorie face parte

instrucţiunea For … Next care are următoarea 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 instrucţiuni este următorul: For i = 1 To Nrm Cant = InputBox("Introduceti cantitatea materialului nr: " & i)

Page 46: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

46

Pu = InputBox("Introduceti pretul unitar al materialului nr: " & i) Vmftva = Cant * Pu Vmctva = Vmftva + tva * Vmftva txtVmftva = Format(Vmftva, "######0.00") txtVmctva = Format(Vmctva, "######0.00") Next i. 3.4.5 Crearea fişierelor în limbajul Visual Basic Limbajul Visual Basic oferă posibilitatea lucrului cu fişiere (definite în capitolul

1). Fişierele pot stoca date de tipuri diferite (date numerice, text, imagini). Accesul la datele unui fişier poate fi: binar; secvenţial; aleator.

Pentru accesul binar trebuie localizat în fişier numărul de caractere care urmează a fi citite sau scrise. Pentru accesul secvenţial trebuie parcurse toate înregistrările care preced înregistrarea dorită. Accesul aleator este un acces direct la înregistrările de mărime fixă, fără a necesita citirea înregistrărilor precedente.

Operaţiile care se pot executa asupra fişierelor sunt: 1. deschiderea fişierelor; 2. închiderea fişierelor; 3. exploatarea fişierelor în acces secvenţial; 4. exploatarea fişierelor în acces aleator. 1. Pentru deschiderea unui fişier se foloseşte comanda OPEN. Orice fişier, înainte

de a se lucra cu el, trebuie să fie deschis. Comanda OPEN alocă zone de memorie tampon pentru operaţiile de intrare/ieşire şi specifică modul de acces asociat zonei tampon.

Formatul general al acestei comenzi este: OPEN nume-fişier FOR mod deschidere AS # număr-fişier LEN = expresie în care: • nume-fişier – este un şir de caractere care desemnează numele de fişier dar poate

cuprinde şi un director şi o unitate de disc. Dacă fişierul nu există în momentul deschiderii lui, el va fi creat când se execută comanda OPEN.

• mod de deschidere – specifică modul în care se deschide acel fişier. Pentru accesul secvenţial se poate specifica: APPEND pentru adăugare de noi înregistrări la sfârşitul fi şierului deja existent; INPUT – pentru citirea înregistrărilor din fişier; OUTPUT – pentru crearea unui nou fişier.

Pentru accesul binar se specifică BINARY, iar pentru accesul aleator, RANDOM. • număr-fi şier – este un număr cuprins între 1-511. În modurile Binary, Input sau

Random se poate deschide un fişier utilizând un număr nou, fără a închide în prealabil copia deschisă anterior; în modurile Append sau Output trebuie să se închidă în prealabil fişierul pentru a-l putea deschide cu un alt număr; pentru lucrul simultan cu mai multe fişiere în expresia #număr-fişier se utilizează funcţia FREEFILE care returnează următorul număr de fişier care poate fi utilizat în instrucţiunea OPEN;

• expresie – este un număr mai mic sau egal cu 32767. În cazul utilizării fi şierelor deschise RANDOM, acest număr corespunde lungimii

unei înregistrări. 2. Închiderea fişierelor se execută prin intermediul comenzii CLOSE care are

urmãtoarea sintaxă generală: CLOSE listă-numere-fişiere în care: • listă-numere-fişiere specifică unul sau mai multe numere separate prin virgulă.

Când acest argument este absent, se închid toate fişierele. Când se închid fişierele care au fost deschise în mod Append sau Output toate datele care sunt în zona tampon acordată fişierului vor fi scrise în fişier înainte de a fi închis. La execuţia instrucţiunii CLOSE, asocierea dintre fişier şi numărul lui este dezactivată.

3. Exploatarea fişierelor în acces secvenţial. Tipul de acces secvenţial este utilizat pentru a citi sau scrie o înregistrare de aceeaşi lungime sau pentru fişiere compuse din înregistrări de lungimi diferite.

Page 47: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

47

Comanda PRINT # scrie datele linie cu linie într-un fişier secvenţial deschis în mod Output sau Append. Sintaxa generală a acestei comenzi este:

Print # număr-fişier, listă-expresii unde:

• număr-fi şier este numele fişierului. • lista-expresii este o expresie şir sau numerică sau o listă de expresii care

se scrie în fişier. Pentru a scrie o linie goală după număr-fi şier se pune virgulă. Comanda LINE INPUT # este folosită pentru a citi o linie dintr-un fişier

secvenţial. Linia citită este atribuită unei variabile şir. Sintaxa comenzii este: LINE INPUT # număr-fişier, nume-variabilă în care:

• număr-fi şier este numărul fişierului; • nume-variabilă este o variabilă şir.

LINE INPUT # citeşte din fişier caracter cu caracter până întâlneşte retur de car, chr (13) sau retur de car şi salt la linie nouă chr (13) + chr (10).

4. Exploatarea fişierelor în acces aleator. La deschiderea fişierului în acces RANDOM se precizează lungimea înregistrării. Scrierea unei înregistrări în fişier se face cu comanda PUT # care scrie dintr-o variabilă într-un fişier. Sintaxa comenzii este:

PUT [#] număr-fişier, număr înregistrare, nume-variabilă în care:

• număr-fi şier este numărul fişierului; • număr înregistrare reprezintă lungimea înregistrării determinând poziţia

scrierii; • nume-variabilă este numele variabilei care conţine datele care urmează a

fi scrise. Citirea unei înregistrări din fişier se face citind într-o variabilă dată din fişier.

Comanda este GET # de forma: GET [#] număr-fişier, număr-înregistrare, nume-variabilă,

în care: număr-fişier este numărul alocat în prealabil fişierului; număr-înregistrare este numărul înregistrării care înmulţit cu lungimea înregistrării stabileşte poziţia citirii

nume-variabilă este numele variabilei care conţine datele care urmează a fi citite. 3.4.6 Exemplu de aplicaţie informatică în limbajul Visual Basic Să se realizeze un program în limbajul Visual Basic care să calculeze valoarea

totală (fără TVA şi cu TVA) a unei facturi de materiale. Factura conţine un număr precizat de materiale. Datele de intrare sunt: numărul de materiale de pe factură (Nrm), număr factură (Nrf), data facturii (Df), codul materialului (Codmat), denumirea materialului (Denmat), cantitate (Cant) şi preţul 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 ieşire sau rezultatele rulării programului (Vfftva şi Vfctva) se vor afişa în casetele text (TextBox) separate din formular. Lucrul cu casete text în formular reprezintă o primă variantă de rezolvare a problemei cu calculul şi afişarea valorii facturii de materiale cu un număr precizat de materiale. Varianta a doua de rezolvare a problemei constă în afişarea, sub formă de tabel, pe formular, a datelor de intrare, a datelor intermediare şi a rezultatelor rulării aplicaţiei. În această variantă de rezolvare a problemei, nu se mai folosesc casete text (TextBox). În ambele variante de rezolvare a problemei, se prevăd butoane de comandă (Command Button) pentru calculul şi afişarea unui material (fără TVA şi cu TVA) – butonul CALCULEAZA, pentru calculul valorii facturii (fără TVA şi cu TVA) – butonul AFISEAZA (pentru afişarea valorii facturii – fără TVA şi cu TVA) şi pentru ieşirea din program – butonul IESIRE.

Page 48: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

48

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

Page 49: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

49

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

Page 50: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

50

Rezultatele rulării programului în prima variantă de rezolvare a problemei sunt prezentat în fig.3.15.

Fig.3.15 Rezultatele rulării 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ă fără contor condiţionată posterior. Implementarea acestei structuri în program se va face cu instrucţiunea 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 următorul:

Page 51: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

51

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

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

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

Vfftva=Vfftva + Vmftva; Vfctva = Vfctva + Vmctva;

Page 52: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

52

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 rulării programului în a doua variantă de rezolvare a problemei, sunt

prezentate în fig.3.17.

Page 53: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

53

Fig.3.17. Rezultatele rulării programului în a doua variantă de rezolvare a problemei

Pentru acest capitol paginile din manula 44-74. Lista subiectelor pentru pregătirea în vederea evaluării finale:

1. Caracterizarea mediului integrat de dezvoltare Visual Basic: definire, descriere, elemente componente, structura unei aplicaţii. 2. Etapele realizării unei aplicaţii Visual Basic. Descrierea ferestrelor de lucru. 3. Noţiunea de proiect în limbajul Visual Basic. 4. Fişierul proiect: conţinut. 5. Definirea fişierelor componente ale proiectului. 6. Crearea interfeţei aplicaţiei. 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 proprietăţilor obiectelor : care sunt cele mai importante proprietăţi şi modul lor de setare. 9. Stabilirea proprietăţilor la momentul execuţiei. 10. Descrierea principalelor controale din fereastra ToolBox. 11. Scrierea codului în limbajul Visual Basic şi ce particularităţi prezintă acesta. 12. Execuţia aplicaţiei 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. Instrucţiuni Visual Basic. Construirea expresiilor. 20. Operatori în Visual Basic. Clase de precedenţă. 21. Functii în limbajul Visual Basic.

Page 54: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

54

22. Funcţii pentru şiruri de caractere. 23. Funcţii de editare. 24. Funcţii financiare. 25. Implementarea structurilor de control pentru execuţia unui program. 26. Instrucţiuni de atribuire în VB. 27. Instrucţiuni alternative (sau cu structură alternativă) 28. Instrucţiuni repetitive(sau cu structură repetitivă) . 29. Crearea fişierelor în Visual Basic. 30. Operaţii şi instrucţiuni de deschidera fişierelor. 31. Operaţii şi instrucţiuni de închiderea fişierelor. 32. Operaţii şi instrucţiuni de exploatare a fişierelor în acces secvenţial. 33. Operaţii şi instrucţiuni de exploatare a fişierelor î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 esenţiale între procedurile de tip Sub şi cele de tip Function. Teste pentru autoevaluare: Teste de tipul adevărat/fals (TRUE/FALSE)

1. În limbajul Visual Basic stabilirea proprietăţilor 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 lipseşte din sintaxa generală a instrucţiunii Visual Basic:

Select Case .... Case Else ... End Select? a. Case Of c. Case Is b. Case On d. Case Are

R: c Teste pentru autoevaluare din toată materia:

1. Din punctul de vedere al compunerii, datele se clasifică în: a) date elementare sau

scalare c) date memorate

b) date introduse cu tastatura d) date compuse

Page 55: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

55

R : a,d 2. După gradul asocierii şi după obligativitatea participării la asociere, tipurile de legături între entităţi se diferenţiază în: a) asocieri parţiale de tip „unu la

unu”; d) asocieri totale de tip „unu la unu”;

b) asocieri parţiale de tip „unu la mulţi”;

e) asocieri parţiale de tip „mulţi la mulţi”;

c) asocieri totale de tip „unu la mulţi”;

f) asocieri totale de tip „mulţi la mulţi”.

R : toate

3. Să se răspundă cu adevărat (True) sau fals (False): Noţiunea de aplicaţie informatică nu este similară cu aceea de sistem informatic. R : Adevărat (True) Teste de tipul completare (COMPLETION)

4. Să se completeze cuvântul lipsă: Limbajul de programare este un limbaj artificial ce se foloseşte pentru definirea

unui şir de ______________-care pot fi prelucrate şi executate pe un calculator. R: instrucţiuni Test de tipul corespondenţă (MATCHING)

5. Precizaţi destinaţia ferestrelor mediului integrat de dezvoltare Visual Basic, prin indicarea corespondenţei între denumirea ferestrei (A…F) şi destinaţia acesteia (1…6): A. Form Designer 1. Stabilirea proprietăţilor B. Code Editor 2. Depanarea programelor Visual Basic C. Project Explorer 3. Realizarea interfeţei dintre utilizator şi secvenţele

de program D Properties 4. Afişarea colecţiei de fişiere E. Form Layout 5. Editor de texte pentru a introduce codul aplicaţiei F. Watch 6. Vizualizarea aspectului formularului

R: 1-D;2-F;3-A;4-C;5-B;6-E;

6. Răspundeţi cu DA(Yes) sau NU (No): Ciclarea este asigurată prin formatul general Do … Loop. Ciclările

implementează operaţiile care se repetă de un anumit număr de ori, ciclarea repetându-se până când se îndeplineşte o condiţie specificată, întâlnită la începutul sau sfârşitul ciclării.

R: DA (Yes) 7. Care este secvenţa de program Visual Basic corectă? a) 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

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

Page 56: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

56

Loop Until MsgBox("CONTINUATI?", vbYesNo) = vbYes

Loop Until TextBox("CONTINUATI?", vbYesNo) = vbNo

b) 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 Loop Until

MsgBox("CONTINUATI?", vbYesNo) = vbNo

d) Do Cant = InputBox("Introduceti

cantitatea materialului: ") Pu = InputBox("Introduceti pretul

unitar al materialului: ") Vmftva = Cant * Pu Print Tab(20); Cant; Tab(20); Pu;

Tab(20); Vmftva Loop Until MsgBox("CONTINUATI?", vbYesNo) = vbNo

R: b. Test de tipul cu răspuns numeric (NUMERIC RESPONSE) 8. Câte etape sunt necesare pentru realizarea unei aplicaţii Visual Basic?

R: 3 9. Prin câte caractere este desemnată extensia unui fişier component al fişierului

proiect? R: 3

Teste de tipul completare (COMPLETION) 10. Instrucţiunea DO WHILE LOOP este o instrucţiune de ____________.

R: ciclare 11. În mediul integrat Visual Basic sunt disponibile două stiluri de lucru diferite şi

anume: interfaţa pentru un singur __________ (SDI) sau interfaţa 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 c. Polimorfismul b. Incapsularea d. Mostenirea

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ă existenţa 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ă operaţiile.

4. permite invocarea pentru obiecte de diferite tipuri a operaţiilor cu acelaşi nume, dar semantică şi implementare diferite.

R: 1=d, 2=a, 3=b, 4=c

Page 57: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

57

Teste de tipul adevărat/fals (TRUE/FALSE)

14. Tipul de dată este utilizat pentru descrierea unei mulţimi de fişiere care au aceeaşi reprezentare. R: F

15. Clasa este noţiunea de limbaj care defineşte tipul de fişier. R: F

16. Moştenirea permite constituirea de noi tipuri de obiecte şi clase într-o ierarhie de module, prin rescriere şi recodificare. R: F

17. Metodele sunt operaţii care pot regăsi sau actualiza starea unui obiect, stare care este memorată în variabilele instanţelor sale. R: A

18. Identitatea unui obiect este acea proprietate a obiectului care îl distinge de alte obiecte. R: A

19. Persistenţa este o proprietate a obiectelor care implică existenţa 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 proiectării pentru a plasa controale pe formular.

R: A

Întreb ări de autoevaluare 1. Care sunt asemănările şi deosebirile esenţiale între conceptele de dată, informaţie şi cunoştinţă? 2. Enumeraţi şi caracterizaţi conceptele utilizate în organizarea datelor. 3. Ce este un fişier de date? 4. Cum se defineşte relaţia binară? 5. Clasificaţi structurile de date. 6. Prezentaţi tipurile de modele de date. 7. Câte tipuri de legături între entităţi cunoaşteţi şi care sunt ele? 8. Ce se înţelege prin procesul de prleucrare automată a datelor? 9. Ce tipuri de structuri de control cunoaşteţi? 10. Ce este un program pe calculator? 11. Care sunt etapele de realizare a unui program pe calculator? 12. Ce se înţelege prin compilarea şi editarea de legături a unui program? 13. Definiţi conceptele de bază ale programării orientate pe obiecte. 14. Ce se înţelege prin metodă? 15. Care sunt elementele mediului integrat de dezvoltare?

Page 58: INFORMATIC Ă DE GESTIUNE (LIMBAJE) - se … · Manual recomandat: ... program ării şi ale limbajului de programare Visual Basic, ... • spa ţiu de memorie intern ă şi extern

58

16. Cum se realizează o aplicaţie în Visual Basic? 17. Cum se stabilesc proprietăţile obiectelor? 18. Cum se realizează scrierea codului? 19. Cum se creează procedurile pentru evenimente? 20. Cum se creează un proiect? 21. Definiţi fi şierul proiect. 22. Ce tipuri de variabile în Visual Basic cunoaşteţi? 23. Cum se declară o variabilă în Visual Basic? 24. Ce reprezintă instrucţiunile de atribuire? 25. Care sunt instrucţiunile alternative în Visual Basic? 26. Care sunt instrucţiunile repetitive în Visual Basic? 27. Care sunt instrucţiunile de salt în Visual Basic? 28. Ce particularităţi prezintă accesul aleator la date? 29. Care sunt instrucţiunile de scriere într-un fişier secvenţial? 30. Care sunt instrucţiunile de citire şi de închidere a fişierelor?