Prof.univ.dr. Zenovic GHERASIM

Size: px
Start display at page:

Download "Prof.univ.dr. Zenovic GHERASIM"

Transcription

1 INFORMATICĂ DE GESTIUNE (LIMBAJE) Prof.univ.dr. Zenovic GHERASIM Codul cursului: MFC2304 Denumirea cursului: INFORMATICĂ DE GESTIUNE (LIMBAJE) Tip curs: obligatoriu Durata cursului / Nr. credite: un semestru / 5 Perioada de accesare a cursului: prelegeri 5 oct iunie 2017 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, 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 2014 (80%). Consultaţii pentru studenţi: În cancelarie, în fiecare miercuri de la ora 12-14, pe perioada cursurilor. Adresa responsabil pentru contactul cu studenţii: zenovic.gherasim@yahoo.com. 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ţă Noţiuni fundamentale utilizate în organizarea datelor Relaţiile dintre date Structuri de date Modele de date. 1

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 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 Fişierul proiect Crearea interfeţei aplicaţiei Precizarea proprietăţilor Scrierea codului Execuţia aplicaţiei informatice în Visual Basic Elementele limbajului de programare Visual Basic Unele reguli de scriere Tipuri de date Variabile şi constante Instrucţiuni Visual Basic Construirea expresiilor Operatori Visual Basic Funcţii Visual Basic Implementarea structurilor de control al execuţiei unui program. Instrucţiuni alternative (sau cu structură alternativă). Instrucţiuni repetitive 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, 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, 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 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 2

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ţă). 3

4 SOCIETATEA CUNOAŞTERII Fig.1.1 Ierarhia informaţională a societăţii informaţionale-societăţii cunoaşterii 4

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. 5

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, ); (BANCA, BCR); (CONT_BANCAR, RO15RZBR ). 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 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; 6

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

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 În programare, listă de Inserare şi acces rapid, (table) elemente, implementată sub când indexul este Căutare şi ştergere forma unui vector de cunoscut. greoaie, Tablou ordonat înregistrări sau a unei liste înlănţuite. În bazele de date relaţionale, structură cu linii şi coloane. Căutare mai rapidă în comparaţie cu tablourile neordonate. dimensiune fixată 8

9 Coadă (queue) Stivă (stack) Listă înlănţuită (chain list) Arbore binar (binary tree) Arbore bicolor (bicolor tree) Arbore (2-3-4 tree) Tabel de dispersie (hash table) Movilă (heap) Graf (graph) Structură realizată după metoda primul sosit, primul plecat, FIFO (First-In, First- Out) Structură realizată după metoda ultimul sosit, primul plecat, LIFO (Last-In, First- Out) Structură de date sub formă de listă în care fiecare element al listei asigură o adresă pentru următorul element consecutiv al listei. Structură de date sub forma unui arbore ordonat de gradul doi. Arbori binari la care fiecare nod dispune de caracteristica culoare roşie sau neagră. Arbori multicăi în care fiecare nod poate prezenta cel mult patru succesori (fii). Structură de date fundamentată pe transformarea unui domeniu de valori ale unei anumite chei într-un domeniu de indici dintr-un tablou. Tip de arbore binar complet implementat printr-un tablou. Structură formată din noduri şi arce ca legături dintre noduri. Accesul la date se execută în ordinea introducerii acestor date. Acces greoi la celelalte elemente. Accesul la date se execută în ordinea inversă introducerii acestor date. Inserare şi ştergere rapide Căutare greoaie. Căutare, inserare şi ştergere rapide (arbore echilibrat). Structura de date cea mai rapidă (inserare rapidă şi acces rapid pe baza unei chei). Inserare, ştergere şi acces rapide la elementul maxim sau minim. Modelează situaţii din universul real. Algoritmul ştergere complicat. de este Structuri de date complexe. Ştergere greoaie. Acces lent atunci când nu se cunoaşte cheia. Acces greoi la celelalte elemente. 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). 9

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 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 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ă 10

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 11

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

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 13

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 economicofinanciară (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 întraltul); 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 14

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). CITIRE DATE DE INTRARE PRELUCRĂRI SCRIERE REZULTATE Fig.2.1 Etapele procesului de prelucrare a datelor pe calculator 15

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. 16

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. 17

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 18

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 întrun limbaj de programare de nivel înalt în program-obiect, exprimat în instrucţiuni codmaş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. 19

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 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 20

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 21

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 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ă. 22

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 23

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 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. 24

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 25

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 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 26

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. 27

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) Crearea interfeţei aplicaţiei Fig. 3.3 Meniul Project 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 28

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). 29

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 30

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 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). 31

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

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 Aspectul formularului obţinut prin precizarea proprietăţilor formularului şi controalelor incluse este prezentat în fig

34 Fig.3.8. Introducerea proprietăţilor formularului şi controalelor incluse pentru aplicaţia informatică cu factura de materiale 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. Proceduraeveniment asociată unui control are numele alcătuit din numele controlului (stabilit în proprietatea Name), o liniuţă de subliniere (_) şi numele evenimentului. 34

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). 35

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 şi Codul aferent se introduce în fereastra de editare a codului (Code Editor) care a fost prezentată în fig 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 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). 36

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, ş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

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 /10/ Hirtie xerox /10/ Cartus imprimanta /10/ Hirtie fax /10/ Ribon /10/ Toner copiator Fig.3.13 Rezultatele rulării aplicaţiei cu factura de materiale cu setul nr.2 de date de intrare din tabelul Elementele limbajului de programare Visual Basic 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 38

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. 39

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 Sufix Memorie Interval de valori (domeniu) engleză ocupată Oct B et yte Întreg Integer % Întreg lung Long & (integer) Logic Boolean - 2 True, False Real simplă Single 4-3,40 e 38 +3,40 e 38 precizie (floating)! Real dublă Double 8-1,8 e ,8 e 308 precizie (floating) # Monedă 8-9,22 e 14 +9,22 e 14 Dată Date - 8 Jan 01/100-dec 31/9999 Obiect Object - 4 Adresa unui obiect Şir de String $ 1 octet/ Şir de caractere alfanumerice caractere caracter Nedefinit Variant - - Şir, numere, dată De exemplu, tipul de date definite de utilizator Client are 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 40

41 End Type 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 41

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 = 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 Instrucţiuni Visual Basic 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 Operatori Visual Basic 42

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.) 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 43

44 Funcţie Valoare returnată Timer Număr de secunde rămase până la miezul nopţii (ora 0 ) 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 44

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

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 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 Î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 Î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. 46

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 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. 47

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 48

49 Fig 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 49

50 Rezultatele rulării programului în prima variantă de rezolvare a problemei sunt prezentat în fig 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: 50

51 Vfftva = 0; Vfctva = 0; TVA=0,19 Vmftva= Cant * Pu; Vmctva=Vmftva + TVA * Vmftva; Vfftva=Vfftva + Vmftva; Vfctva = Vfctva + Vmctva; Fig Schema logică pentru varianta 2 de rezolvare a probleme 51

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

53 Fig Rezultatele rulării programului în a doua variantă de rezolvare a problemei Pentru acest capitol paginile din manula 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. 53

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice "Îmbunătăţirea proceselor şi activităţilor educaţionale în cadrul programelor de licenţă şi masterat în domeniul

More information

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin Structura și Organizarea Calculatoarelor Titular: BĂRBULESCU Lucian-Florentin Chapter 3 ADUNAREA ȘI SCĂDEREA NUMERELOR BINARE CU SEMN CONȚINUT Adunarea FXP în cod direct Sumator FXP în cod direct Scăderea

More information

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962) ARBORI AVL (denumiti dupa Adelson-Velskii si Landis, 1962) Georgy Maximovich Adelson-Velsky (Russian: Гео ргий Макси мович Адельсо н- Ве льский; name is sometimes transliterated as Georgii Adelson-Velskii)

More information

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A. Excel Advanced Curriculum Școala Informală de IT Tel: +4.0744.679.530 Web: www.scoalainformala.ro / www.informalschool.com E-mail: info@scoalainformala.ro Cuprins 1. Funcții Excel pentru avansați 2. Alte

More information

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila MS POWER POINT s.l.dr.ing.ciprian-bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Pornire PowerPoint Pentru accesarea programului PowerPoint se parcurg următorii paşi: Clic pe butonul de

More information

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales MANAGEMENTUL CALITĂȚII - MC Proiect 5 Procedura documentată pentru procesul ales CUPRINS Procedura documentată Generalități Exemple de proceduri documentate Alegerea procesului pentru realizarea procedurii

More information

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N Pentru a putea vizualiza imaginile unei camere web IP conectată într-un router ZTE H218N sau H298N, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

Procesarea Imaginilor

Procesarea Imaginilor Procesarea Imaginilor Curs 11 Extragerea informańiei 3D prin stereoviziune Principiile Stereoviziunii Pentru observarea lumii reale avem nevoie de informańie 3D Într-o imagine avem doar două dimensiuni

More information

Metrici LPR interfatare cu Barix Barionet 50 -

Metrici LPR interfatare cu Barix Barionet 50 - Metrici LPR interfatare cu Barix Barionet 50 - Barionet 50 este un lan controller produs de Barix, care poate fi folosit in combinatie cu Metrici LPR, pentru a deschide bariera atunci cand un numar de

More information

Baze de date distribuite și mobile

Baze de date distribuite și mobile Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Baze de date distribuite și mobile Lect.dr. Adrian Runceanu Curs 3 Model fizic şi model

More information

Auditul financiar la IMM-uri: de la limitare la oportunitate

Auditul financiar la IMM-uri: de la limitare la oportunitate Auditul financiar la IMM-uri: de la limitare la oportunitate 3 noiembrie 2017 Clemente Kiss KPMG in Romania Agenda Ce este un audit la un IMM? Comparatie: audit/revizuire/compilare Diferente: audit/revizuire/compilare

More information

GHID DE TERMENI MEDIA

GHID DE TERMENI MEDIA GHID DE TERMENI MEDIA Definitii si explicatii 1. Target Group si Universe Target Group - grupul demografic care a fost identificat ca fiind grupul cheie de consumatori ai unui brand. Toate activitatile

More information

Versionare - GIT ALIN ZAMFIROIU

Versionare - GIT ALIN ZAMFIROIU Versionare - GIT ALIN ZAMFIROIU Controlul versiunilor - necesitate Caracterul colaborativ al proiectelor; Backup pentru codul scris Istoricul modificarilor Terminologie și concepte VCS Version Control

More information

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) Semnale şi sisteme Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) http://shannon.etc.upt.ro/teaching/ssist/ 1 OBIECTIVELE CURSULUI Disciplina îşi propune să familiarizeze

More information

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document

More information

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; } Arbori Arborii, ca şi listele, sunt structuri dinamice. Elementele structurale ale unui arbore sunt noduri şi arce orientate care unesc nodurile. Deci, în fond, un arbore este un graf orientat degenerat.

More information

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU UNIVERSITATEA POLITEHNICA BUCUREŞTI FACULTATEA ENERGETICA Catedra de Producerea şi Utilizarea Energiei Master: DEZVOLTAREA DURABILĂ A SISTEMELOR DE ENERGIE Titular curs: Prof. dr. ing Tiberiu APOSTOL Fond

More information

Mecanismul de decontare a cererilor de plata

Mecanismul de decontare a cererilor de plata Mecanismul de decontare a cererilor de plata Autoritatea de Management pentru Programul Operaţional Sectorial Creşterea Competitivităţii Economice (POS CCE) Ministerul Fondurilor Europene - Iunie - iulie

More information

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. 9. Memoria Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. Primul nivel conține memorie de program cache (L1P) și memorie de date cache (L1D). Al doilea

More information

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog Laborator 1 Programare declarativă O paradigmă de programare în care controlul fluxului de execuție este lăsat la latitudinea implementării limbajului, spre deosebire de programarea imperativă în care

More information

Proiectarea bazelor de date. PL/SQL Înregistrări și Colecții # 13. Adrian Runceanu

Proiectarea bazelor de date. PL/SQL Înregistrări și Colecții # 13. Adrian Runceanu Proiectarea bazelor de date # 13 PL/SQL Înregistrări și Colecții 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 13 Înregistrări și Colecții Proiectarea bazelor de date 2 Înregistrări și Colecții în PL/SQL

More information

Baze de date - Lucrare de laborator 3 -

Baze de date - Lucrare de laborator 3 - Baze de date - Lucrare de laborator 3 - PROIECTAREA BAZELOR DE DATE RELATIONALE 1. NOTIUNI TEORETICE Proiectarea unei baze de date consta din proiectarea schemei conceptuale (logice) si fizice a acesteia,

More information

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4 Metode merice - Lucrarea de laborator 4 Lucrarea de laborator nr. 4 I. Scopul lucrării Elemente de programare în MAPLE II. III. Conţinutul lucrării 1. Atribuirea. Decizia. Structuri repetitive. 2. Proceduri

More information

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban Reflexia şi refracţia luminii. Aplicaţii. Sumar 1. Indicele de refracţie al unui mediu 2. Reflexia şi refracţia luminii. Legi. 3. Reflexia totală 4. Oglinda plană 5. Reflexia şi refracţia luminii în natură

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

BAZE DE DATE. Conf. univ.dr. ELENA NECHITA Lector univ. dr. GLORIA-CERASELA CRIŞAN

BAZE DE DATE. Conf. univ.dr. ELENA NECHITA Lector univ. dr. GLORIA-CERASELA CRIŞAN ROMÂNIA MINISTERUL EDUCAŢIEI, CERCETĂRII ŞI TINERETULUI UNIVERSITATEA din BACĂU FACULTATEA DE ŞTIINŢE Str. Spiru Haret, nr. 8, Bacău, 600114 Tel. ++40-234-542411, tel./ fax ++40-234-516345 www.ub.ro; e-mail:

More information

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive. . egimul de curent continuu de funcţionare al sistemelor electronice În acest regim de funcţionare, valorile mărimilor electrice ale sistemului electronic sunt constante în timp. Aşadar, funcţionarea sistemului

More information

Subiecte Clasa a VI-a

Subiecte Clasa a VI-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

More information

Baza de date: tabele, date. Componentele unei B.D.: tabele, constrangeri, relatii. Entitati ale unei B.D.: formulare, interogari, rapoarte

Baza de date: tabele, date. Componentele unei B.D.: tabele, constrangeri, relatii. Entitati ale unei B.D.: formulare, interogari, rapoarte 1. Introducere ~ Microsoft Access ~ Baze de Date Baza de date: tabele, date. Componentele unei B.D.: tabele, constrangeri, relatii. Entitati ale unei B.D.: formulare, interogari, rapoarte 2. Crearea unei

More information

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB Grafuri bipartite Lecție de probă, informatică clasa a XI-a Mihai Bărbulescu b12mihai@gmail.com Facultatea de Automatică și Calculatoare, UPB Colegiul Național de Informatică Tudor Vianu București 27 februarie

More information

Modalitǎţi de clasificare a datelor cantitative

Modalitǎţi de clasificare a datelor cantitative Modalitǎţi de clasificare a datelor cantitative Modul de stabilire a claselor determinarea pragurilor minime şi maxime ale fiecǎrei clase - determinǎ modul în care sunt atribuite valorile fiecǎrei clase

More information

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Nume şi Apelativ prenume Adresa Număr telefon  Tip cont Dobânda Monetar iniţial final Enunt si descriere aplicatie. Se presupune ca o organizatie (firma, banca, etc.) trebuie sa trimita scrisori prin posta unui numar (n=500, 900,...) foarte mare de clienti pe care sa -i informeze cu diverse

More information

Metoda de programare BACKTRACKING

Metoda de programare BACKTRACKING Metoda de programare BACKTRACKING Sumar 1. Competenţe............................................ 3 2. Descrierea generală a metodei............................. 4 3......................... 7 4. Probleme..............................................

More information

Metoda BACKTRACKING. prof. Jiduc Gabriel

Metoda BACKTRACKING. prof. Jiduc Gabriel Metoda BACKTRACKING prof. Jiduc Gabriel Un algoritm backtracking este un algoritm de căutare sistematică și exhausivă a tuturor soluțiilor posibile, dintre care se poate alege apoi soluția optimă. Problemele

More information

Cuprins Cuprins Bănci şi baze de date Etapele de realizare a unei bănci de date... 17

Cuprins Cuprins Bănci şi baze de date Etapele de realizare a unei bănci de date... 17 Cuprins Cuprins... 1 1. Bănci şi baze de date... 5 1.1. Noţiuni generale... 5 1.2. Sisteme de baze de date... 6 1.3. Organizarea datelor într-o bază de date... 7 1.4. Modelarea la nivel logic a datelor

More information

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: 9, La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - (ex: "9", "125", 1573" - se va scrie fara ghilimele) Parola: -

More information

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ CATEDRA DE INFORMATICĂ ECONOMICĂ BAZE DE DATE

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ CATEDRA DE INFORMATICĂ ECONOMICĂ BAZE DE DATE BAZE DE DATE Autori: Prof.univ.dr. LUNGU Ion Asist.univ.drd. BOTHA Iuliana CUPRINS Unitatea de învăţare 1: ORGANIZAREA DATELOR ÎN MEMORIA EXTERNĂ Unitatea de învăţare 2: BAZE DE DATE NOŢIUNI FUNDAMENTALE

More information

Prelucrarea numerică a semnalelor

Prelucrarea numerică a semnalelor Prelucrarea numerică a semnalelor Assoc.Prof. Lăcrimioara GRAMA, Ph.D. http://sp.utcluj.ro/teaching_iiiea.html 27 februarie 2017 Lăcrimioara GRAMA (sp.utcluj.ro) Prelucrarea numerică a semnalelor 27 februarie

More information

Universitatea George Bariţiu, Braşov

Universitatea George Bariţiu, Braşov LUCRUL CU BAZE DE DATE ÎN JAVA Lect.univ.dr.ing. IOAN-GHEORGHE RAŢIU Lect.univ. NICOLETA DAVID Universitatea George Bariţiu, Braşov Rezumat O bază de date reprezintă o modalitate de stocare a unor informaţii

More information

Reţele Neuronale Artificiale în MATLAB

Reţele Neuronale Artificiale în MATLAB Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox.

More information

ISBN-13:

ISBN-13: Regresii liniare 2.Liniarizarea expresiilor neliniare (Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISBN-13:978-0-07-340110-2 ) Există cazuri în care aproximarea

More information

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC Anul II Nr. 7 aprilie 2013 ISSN 2285 6560 Referent ştiinţific Lector univ. dr. Claudiu Ionuţ Popîrlan Facultatea de Ştiinţe Exacte Universitatea din

More information

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU 2 Curs 1 Noţiuni introductive despre teoria

More information

PROIECT. La Baze de date. Evidența activității pentru o firmă IT. Îndrumător: ș. l. dr. ing. Mirela Danubianu. Efectuat de: Grigoriev Sergiu gr.

PROIECT. La Baze de date. Evidența activității pentru o firmă IT. Îndrumător: ș. l. dr. ing. Mirela Danubianu. Efectuat de: Grigoriev Sergiu gr. PROIECT La Baze de date Evidența activității pentru o firmă IT Îndrumător: ș. l. dr. ing. Mirela Danubianu Efectuat de: Grigoriev Sergiu gr. 1131B Suceava 2011 Cuprins 1. DESCRIERE 3 2. MODELAREA CONCEPTUALĂ

More information

CERERI SELECT PE O TABELA

CERERI SELECT PE O TABELA SQL - 1 CERERI SELECT PE O TABELA 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325

More information

Software Process and Life Cycle

Software Process and Life Cycle Software Process and Life Cycle Drd.ing. Flori Naghiu Murphy s Law: Left to themselves, things tend to go from bad to worse. Principiile de dezvoltare software Principiul Calitatii : asigurarea gasirii

More information

Structuri de date: ARBORI

Structuri de date: ARBORI Structuri de date: ARBORI Organizarea liniară de tip listă este adecvată pentru aplicaţiile în care datele (elementele din listă) formează o mulţime omogenă si deci se află pe acelasi nivel. În multe aplicaţii,

More information

Propuneri pentru teme de licență

Propuneri pentru teme de licență Propuneri pentru teme de licență Departament Automatizări Eaton România Instalație de pompare cu rotire în funcție de timpul de funcționare Tablou electric cu 1 pompă pilot + 3 pompe mari, cu rotirea lor

More information

BAZE DE DATE Crearea, gestionarea şi exploatarea bazelor de date spaţiale

BAZE DE DATE Crearea, gestionarea şi exploatarea bazelor de date spaţiale BAZE DE DATE Crearea, gestionarea şi exploatarea bazelor de date spaţiale (note de curs) 1 Organizarea datelor. Concepte de bază Afluxul fără precedent de informaţie de diferite tipuri şi pe diverse canale,

More information

Cap.5 Normalizarea relaţiilor

Cap.5 Normalizarea relaţiilor CAPITOLUL 5 NORMALIZAREA RELAŢIILOR Dependenţele de date reprezintă constrângeri care se impun valorilor atributelor unei relaţii şi determină proprietăţile relaţiei în raport cu operaţiile de inserare,

More information

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET CAIETUL DE SARCINI Organizare evenimente VS/2014/0442 Euro network supporting innovation for green jobs GREENET Str. Dem. I. Dobrescu, nr. 2-4, Sector 1, CAIET DE SARCINI Obiectul licitaţiei: Kick off,

More information

Ce este o BAZA DE DATE?

Ce este o BAZA DE DATE? Ce este o BAZA DE DATE? In sens larg un sistem proiectat pentru a oferi un mecanism organizat, capabil sa stocheze, sa actualizeze si sa regaseasca informatia Exemplu: o biblioteca Noţiunea de bază de

More information

Modele de date utilizate în bazele de date pentru prelucrari grafice

Modele de date utilizate în bazele de date pentru prelucrari grafice 64 Revista Informatica Economica, nr. 7/1998 Modele de date utilizate în bazele de date pentru prelucrari grafice Sef lucrari dr.ing. Marius Dorian ZAHARIA Universitatea POLITEHNICA Bucuresti Lucrarea

More information

HEAPSORT I. CONSIDERAŢII TEORETICE

HEAPSORT I. CONSIDERAŢII TEORETICE I. CONSIDERAŢII TEORETICE HEAPSORT Algoritm de sortare care combină calităţile sortării prin inserţie cu cele ale sortării prin interclasare. A fost inventat de Williams 1964. Prin heapsort se ordonează

More information

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii www.pwc.com/ro Aspecte controversate în Procedura Insolvenţei şi posibile soluţii 1 Perioada de observaţie - Vânzarea de stocuri aduse în garanţie, în cursul normal al activității - Tratamentul leasingului

More information

Interogarea (query), este operaţia prin care se obţin datele

Interogarea (query), este operaţia prin care se obţin datele CAPITOLUL 3 INTEROGAREA BAZELOR DE DATE Interogarea (query), este operaţia prin care se obţin datele dorite dintr-o bază de date, selectate conform unui anumit criteriu (condiţie). Întrucât operaţia de

More information

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE WebQuest O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE Cuvinte cheie Internet WebQuest constructivism suport educational elemente motivationale activitati de grup investigatii individuale Introducere Impactul tehnologiilor

More information

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU 03.03.2013 Curs 1 - BAZE DE DATE 2 Curs 1 Noţiuni

More information

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs Acta Technica Napocensis: Civil Engineering & Architecture Vol. 57, No. 1 (2014) Journal homepage: http://constructii.utcluj.ro/actacivileng Updating the Nomographical Diagrams for Dimensioning the Concrete

More information

M C I O H L BAZE DE CUNOŞTINŢE A H E O L N S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A A C U N O Ş T I N Ţ E L O R

M C I O H L BAZE DE CUNOŞTINŢE A H E O L N S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A A C U N O Ş T I N Ţ E L O R BAZE DE CUNOŞTINŢE S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A C U N O Ş T I N Ţ E L O R M C I O H L A H E O L N A TIPURI DE CUNOŞTINŢE Pentru a putea rezolva problemele complexe de

More information

INTEROGĂRI ÎN SQL SERVER

INTEROGĂRI ÎN SQL SERVER INTEROGĂRI ÎN SQL SERVER Principala operaţie efectuată într-o bază de date este operaţia de extragere a datelor, care se realizează cu ajutorul unei clauze SELECT. SELECT Clauza SELECT are o sintaxă foarte

More information

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

INSTRUMENTE DE MARKETING ÎN PRACTICĂ: INSTRUMENTE DE MARKETING ÎN PRACTICĂ: Marketing prin Google CUM VĂ AJUTĂ ACEST CURS? Este un curs util tuturor celor implicați în coordonarea sau dezvoltarea de campanii de marketingși comunicare online.

More information

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows Ghid identificare versiune AWP, instalare AWP 4.5.4 şi verificare importare certificat în Store-ul de Windows Data: 28.11.14 Versiune: V1.1 Nume fişiser: Ghid identificare versiune AWP, instalare AWP 4-5-4

More information

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU 28.04.2014 Curs 1 - BAZE DE DATE 2 Curs 1 Noţiuni

More information

R O M Â N I A CURTEA CONSTITUŢIONALĂ

R O M Â N I A CURTEA CONSTITUŢIONALĂ R O M Â N I A CURTEA CONSTITUŢIONALĂ Palatul Parlamentului Calea 13 Septembrie nr. 2, Intrarea B1, Sectorul 5, 050725 Bucureşti, România Telefon: (+40-21) 312 34 84; 335 62 09 Fax: (+40-21) 312 43 59;

More information

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER 3.2 Arhitectura setului de instrucţiuni ISA Copyright Paul GASNER Programarea CPU Programele scrise în limbaje de nivel înalt trebuie compilate pentru a obţine un program executabil Din punctul de vedere

More information

Itemi Sisteme de Operare

Itemi Sisteme de Operare Itemi Sisteme de Operare 1. Pentru a muta un dosar (folder) de pe partiţia C: pe partiţia D: folosim: a. New Folder b. Ctrl + C din bara de instrumente şi Copy; c. Ctrl + X şi Ctrl + V; d. Edit Paste;

More information

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M ) FLEXIMARK FCC din oțel inoxidabil este un sistem de marcare personalizată în relief pentru cabluri și componente, pentru medii dure, fiind rezistent la acizi și la coroziune. Informații Included in FLEXIMARK

More information

FIŞA DISCIPLINEI. Cosmin Sabo 2.5 Anul de studiu Semestrul Tipul de evaluare E 2.8 Regimul disciplinei DOB

FIŞA DISCIPLINEI. Cosmin Sabo 2.5 Anul de studiu Semestrul Tipul de evaluare E 2.8 Regimul disciplinei DOB FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituția de învățământ superior Universitatea Tehnică din Cluj-Napoca 1.2 Facultatea Facultatea de Științe 1.3 Departamentul Matematică și Informatică 1.4

More information

Documentaţie Tehnică

Documentaţie Tehnică Documentaţie Tehnică Verificare TVA API Ultima actualizare: 27 Aprilie 2018 www.verificaretva.ro 021-310.67.91 / 92 info@verificaretva.ro Cuprins 1. Cum funcţionează?... 3 2. Fluxul de date... 3 3. Metoda

More information

COMUNICAȚII INFORMATIZARE

COMUNICAȚII INFORMATIZARE COMUNICAȚII INFORMATIZARE 120 Migrare servicii telefonie la Vodafone S-a asigurat suportul tehnic și s-a colaborat cu echipele Vodafone la portarea numerelor UPT și migrarea infrastructuri: 1200 linii

More information

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare

Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare M. Merca, Partiţii întregi şi grafuri orientate aciclice 15 Partiţii întregi şi grafuri orientate aciclice Mircea Merca 1) Articol dedicat Prof. Dr. Ioan Tomescu la a 70-a aniversare Abstract. The algorithms

More information

Managementul Proiectelor Software Metode de dezvoltare

Managementul Proiectelor Software Metode de dezvoltare Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Managementul Proiectelor Software Metode de dezvoltare 2 Metode structurate (inclusiv metodele OO) O mulțime de pași și

More information

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea:

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea: Baze de date Pentru început este bine să înţelegem noţiunile de bază din Access: modul de organizare a unei baze de date, a noţiunilor de tabel, înregistrare, câmp, tip de dată al câmpului, proprietăţi

More information

Metode de acces la informatie în bazele de date pentru prelucrari grafice

Metode de acces la informatie în bazele de date pentru prelucrari grafice 46 Metode de acces la informatie în bazele de date pentru prelucrari grafice Sef lucr.dr.ing. Marius Dorian ZAHARIA Catedra de Calculatoare, Universitatea POLITEHNICA Bucuresti Lucrarea prezinta modalitati

More information

PROIECTAREA ALGORITMILOR

PROIECTAREA ALGORITMILOR Universitatea Constantin Brâncuşi Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu 3 PROIECTAREA ALGORITMILOR Lect. univ. dr. Adrian Runceanu 1 Curs 3 Alocarea dinamică de

More information

UNIVERSITATEA DIN CRAIOVA FACULTATEA DE ELECTROMECANICĂ CATEDRA DE ACŢIONĂRI ELECTRICE. Şef lucrări dr. ing. Cătălin CONSTANTINESCU BAZE DE DATE

UNIVERSITATEA DIN CRAIOVA FACULTATEA DE ELECTROMECANICĂ CATEDRA DE ACŢIONĂRI ELECTRICE. Şef lucrări dr. ing. Cătălin CONSTANTINESCU BAZE DE DATE UNIVERSITATEA DIN CRAIOVA FACULTATEA DE ELECTROMECANICĂ CATEDRA DE ACŢIONĂRI ELECTRICE Şef lucrări dr. ing. Cătălin CONSTANTINESCU BAZE DE DATE Electromecanică - Frecvenţă redusă - Suport teoretic - 2006-2007

More information

Consideratii privind structurile de date specifice sistemelor informationale geografice

Consideratii privind structurile de date specifice sistemelor informationale geografice 34 Consideratii privind structurile de date specifice sistemelor informationale geografice Ing. Laurentiu-Virgil RUSAN Ministerul Apararii Nationale În domeniul administrativ, al lucrarilor publice, al

More information

I. CONCEPTE ALE BAZELOR DE DATE RELAŢIONALE

I. CONCEPTE ALE BAZELOR DE DATE RELAŢIONALE I. CONCEPTE ALE BAZELOR DE DATE RELAŢIONALE 1.1 Definiţii 1.2 Niveluri de abstractizare a datelor 1.3 Componente ale bazelor de date relaţionale 1.4 Proiectarea bazelor de date relaţionale. Etape. Normalizarea

More information

Lucrarea Nr.1. Sisteme de operare. Generalitati

Lucrarea Nr.1. Sisteme de operare. Generalitati Lucrarea Nr.1 Sisteme de operare. Generalitati Scopul lucrarii Lucrarea îsi propune familiarizarea studentilor cu sistemele de operare disponibile în laborator, respectiv acele sisteme de operare cu ajutorul

More information

Şef Lucrări Dr. Tudor Călinici

Şef Lucrări Dr. Tudor Călinici Şef Lucrări Dr. Tudor Călinici Informatică, informaţie, informatică medicală, informaţii medicale Hardware și software Internet Date Reprezentarea datelor Operaţii şi unităţi de măsură Informatica este

More information

O abordare Data Mining pentru detectarea accesului neautorizat la baza de date.

O abordare Data Mining pentru detectarea accesului neautorizat la baza de date. O abordare Data Mining pentru detectarea accesului neautorizat la baza de date. 1. Introducere 2. Lucrări asemănătoare 3. Modelul de clasificare 4. Dependenţele intre date 4.1 Terminologia dependenţei

More information

Bazele Informaticii şi Limbaje de Programare

Bazele Informaticii şi Limbaje de Programare 1 Baze de date UNIVERSITATEA TEHNICǍ DE CONSTRUCŢII BUCUREŞTI Catedra de Matematică şi Informatică Bazele Informaticii şi Limbaje de Programare Partea a II-a Note de curs Romică TRANDAFIR Mihai Ştefan

More information

FIŞA DISCIPLINEI. 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babes-Bolyai Cluj-Napoca

FIŞA DISCIPLINEI. 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babes-Bolyai Cluj-Napoca FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babes-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Matematica si Informatica 1.3 Departamentul Departamentul

More information

PACHETE DE PROMOVARE

PACHETE DE PROMOVARE PACHETE DE PROMOVARE Școala de Vară Neurodiab are drept scop creșterea informării despre neuropatie diabetică și picior diabetic în rândul tinerilor medici care sunt direct implicați în îngrijirea și tratamentul

More information

5.1 Definirea datelor în SQL

5.1 Definirea datelor în SQL SQL Acronim pentru Structured Query Language Dezvoltat pentru sistemul de gestiune a bazelor de date System R, creat de IBM Research Laboratory, San Jose, California, la sfârşitul anilor 70. SQL a fost

More information

Managementul referinţelor cu

Managementul referinţelor cu TUTORIALE DE CULTURA INFORMAŢIEI Citarea surselor de informare cu instrumente software Managementul referinţelor cu Bibliotecar Lenuţa Ursachi PE SCURT Este gratuit Poţi adăuga fişiere PDF Poţi organiza,

More information

SISTEME INTELIGENTE DE SUPORT DECIZIONAL. Ș.l.dr.ing. Laura-Nicoleta IVANCIU. Curs 7 Sisteme inteligente de suport decizional bazate pe RNA

SISTEME INTELIGENTE DE SUPORT DECIZIONAL. Ș.l.dr.ing. Laura-Nicoleta IVANCIU. Curs 7 Sisteme inteligente de suport decizional bazate pe RNA SISTEME INTELIGENTE DE SUPORT DECIZIONAL Ș.l.dr.ing. Laura-Nicoleta IVANCIU Curs 7 Sisteme inteligente de suport decizional bazate pe RNA Cuprins RNA pentru aproximare de funcții Clasificatori cu RNA Studii

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE.

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. I. SCOPUL LUCRĂRILOR Lucrările prezintă reprezentarea

More information

DETERMINATION OF REQUIREMENT FOR INFORMATION MANAGEMENT, AN ECONOMIC ENTITY. Constantin Teleșpan. Prof., PhD, Romanian-German University of Sibiu

DETERMINATION OF REQUIREMENT FOR INFORMATION MANAGEMENT, AN ECONOMIC ENTITY. Constantin Teleșpan. Prof., PhD, Romanian-German University of Sibiu DETERMINATION OF REQUIREMENT FOR INFORMATION MANAGEMENT, AN ECONOMIC ENTITY Constantin Teleșpan Prof., PhD, Romanian-German University of Sibiu Abstract: In any economic entity making a decision involves

More information

Colegiul Național Calistrat Hogaș Piatra-Neamț LIMBAJUL SQL

Colegiul Național Calistrat Hogaș Piatra-Neamț LIMBAJUL SQL LIMBAJUL SQL Prezentare generală SQL (Structured Query Language) este în prezent, unul din cele mai puternice limbaje structurate pentru interogarea bazelor de date relaţionale. Este un limbaj neprocedural

More information

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE) ANTICOLLISION ALGORITHM FOR VV AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP VV (VEHICLE-TO-VEHICLE) 457 Florin MARIAŞIU*, T. EAC* *The Technical University

More information

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm Preparatory Problems 1Se dau punctele coliniare A, B, C, D în această ordine aî AB 4 cm, AC cm, BD 15cm a) calculați lungimile segmentelor BC, CD, AD b) determinați distanța dintre mijloacele segmentelor

More information

Luminiţa Scripcariu PREFAŢĂ... 3

Luminiţa Scripcariu PREFAŢĂ... 3 Luminiţa Scripcariu CUPRINS PREFAŢĂ... 3 CAPITOLUL I. INTRODUCERE ÎN TEORIA BAZELOR DE DATE... 5 I.1 Definiţii şi aplicativitate... 6 I.2 Categorii de personal... 8 I.3 Noţiuni specifice bazelor de date...

More information

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple Memoria cache Memoria virtuală 1 Memorii RAM: datele sunt identificate cu ajutorul unor adrese unice Memorii asociative:

More information

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare).

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Formatul instrucţiunilor

More information

SGBD Access 2010: Query

SGBD Access 2010: Query SGBD Access 2010: Query Interogarea (Query) este un obiect ce permite vizualizarea informaţiilor obţinute prin selectarea şi prelucrarea datelor din unul sau mai multe tabele (sau interogări) Rezultatul

More information

Algoritmi pentru regăsirea informaţiei

Algoritmi pentru regăsirea informaţiei Algoritmi pentru regăsirea informaţiei Costel Cătălin Gărgăun Colegiul Henri Coandă Bacău, catalin_costel@yahoo.com Ana Nicoleta Grigoreanu Colegiul Henri Coandă Bacău, ananicoleta2002@yahoo.com Abstract

More information

Procese de planificare

Procese de planificare Procese de planificare 2. Procese de planificare Analiza stakeholder-ilor Identificarea sarcinilor Planificarea succesiunii sarcinilor Identificarea activităţilor critice Recrutarea personalului Estimarea

More information