Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

LIMBAJUL DE PROGRAMARE VISUAL BASIC - Caractersticile generale ale mediului integrat de dezvoltare Visual Basic

LIMBAJUL DE PROGRAMARE VISUAL BASIC


1. Caractersticile generale ale mediului integrat de dezvoltare Visual Basic


Visual Basic (VB) reprezinta un mediu integrat de dezvoltare, IDE (Integrated Development Environment), in mod interactiv, pentru aplicatii informatice sub sistemul de operare Microsoft Windows. In general, un mediu de programare este un sistem de programare care asista utilizatorul este asistat in proiectarea si codificarea algoritmilor si a datelor, respectiv in editarea si depanarea programelor. Cand acest mediu de programare asista utilizatorul (programatorul) in toate etapele de realizare a unui program, el se numeste mediu de dezvoltare. Cand toate componentele de asistare a utilizatorului (programatorului) sunt integrate in cadrul aceluiasi mediu de dezvoltare, el se numeste mediu integrat de dezvoltare.



Termenul visual din denumirea IDE Visual Basic semnifica faptul ca aplicatiile informatice dezvoltate in VB dispun de interfete grafice ce sunt proiectate vizual de catre utilizator. Pentru aceasta, utilizatorul are la dispozitie un set de elemente vizuale standard ce pot fi folosite la proiectarea unei interfete grafice, denumite elemente de control, sau, pe scurt, controale (Controls). Aceste controale sunt dispuse in ferestrele aplicatiei, ferestre denumite formulare (Forms), concomitent cu stabilirea proprietatilor acestora (in fereastra Properties) la dorinta utilizatorului si in conformitate cu necesitatile aplicatiei.

Termenul Basic din compunerea IDE Visual Basic arata tipul limbajului de programare utilizat pentru realizarea programelor (secventelor de cod) corespunzatoare evenimentelor generate de actionarea controalelor dispuse in formularul specific aplicatiei. Limbajul de programare Basic (acronim provenit din denumirea in limba engleza - Beginner's All-purpose Symbolic Instruction Code), definit la inceputul anilor 1960, a cunoscut numeroase versiuni si dezvoltari ulterioare.

In anul 1991, firma Microsoft a realizat produsul Visual Basic care, ulterior, a cunoscut mai multe versiuni, in concordanta 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 componenta a pachetului Microsoft Visual Studio.NET.

Visual Basic prezinta caracteristici specifice programarii structurate (programarii bazate pe obiecte), programarii dirijate de evenimente, orientarii spre prelucrarea bazelor de date (manipulare si interogare).

Visual Basic face parte din clasa de medii de dezvoltare rapida a aplicatiilor, RAD (Rapid Application Development), alaturi de Microsoft Visual C++, Power Builder, Borland Delphi s.a. ce prezinta urmatoarele caracteristici: realizare rapida a aplicatiilor informatice, necesitati acceptabile de resurse informatice la executie, separarea proiectarii prelucrarilor de proiectarea interfetei, integreaza proiectarea interfetei, scrierea codului, testarea si depanarea.

In cadrul pachetului de birotica Microsoft Office, a fost inclus ca limbaj de dezvoltare un subset al Visual Basic, denumit Visual Basic for Application - VBA.


2. Componentele de baza ale mediului integrat de dezvoltare Visual Basic


Lansarea in executie a VB 6.0 din mediul Windows se executa astfel:

a) se apasa butonul Start de pe bara de task-uri;

b) se parcurge succesiunea Programs (All Programs in sistemul de operare

Windows XP) - Microsoft Visual Studio 6.0 - Microsoft Visual Basic 6.0;

c) la aparitia ferestrei de creare a unui nou proiect - New Project, se apasa butonul

Open.

Dupa aceste actiuni, apar simultan fereastra principala 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 proprietatilor Properties (6), fereastra Form Layout (7), fereastra Immediate (8), fereastra Locals (9), fereastra Watch (10), utilitarul Object Browser (11), asa cum sunt prezentate in figura 2. Ferestrele care nu apar la pornirea VB si sunt necesare pentru lucru, pot fi activate prin urmatoarea succesiune de comenzi: bara cu meniuri - View - pozitionare pe denumirea ferestrei - click.

Fereastra principala a mediului integrat de dezvoltare VB are patru componente:

bara de meniuri (1), bara cu instrumente (2) si doua zone care afiseaza pozitia (3) si dimensiunea (4) obiectului ce a fost selectat (obiectul curent). Butoanele de pe bara cu instrumente (Toolbar) dubleaza cele mai utilizate comenzi din bara de meniuri. Meniurile contextuale cuprind comenzi rapide pentru actiunile efectuate in mod frecvent. Pentru deschiderea unui meniu contextual se pozitioneaza varful mouse-ului pe obiectul care trebuie folosit, se apasa butonul din dreapta mouse-ului, se selecteaza comanda dorita concomitent cu click executat cu butonul din stanga mouse-ului.




Cutia cu instrumente, Toolbox, (fereastra 2 din figura 2), asigura instrumentele predefinite folosite in timpul proiectarii formularului pentru a introduce controale pe acesta. Utilizatorul poate crea propriile controale, imagini sau grafica prin selectia optiunii AddTab din meniul contextual.

Fereastra de proiectare a formularului, Form Design (fereastra 3 din figura 2), este fereastra pentru realizarea interfetei dintre utilizator si secventele de program.

Fereastra de editare a codului, Code Editor (fereastra 4 din figura 2), este folosita ca editor de texte pentru a introduce codul aplicatiei informatice. Fiecare formular sau modul de cod din cadrul aplicatiei informatice dispune de propria fereastra de editare a codului.

Fereastra Project Explorer (fereastra 5 din figura 2) serveste numai la proiectarea aplicatiei pentru afisarea colectiei de fisiere ce contin formularele si modulele din cadrul proiectului aflat in lucru (curent). Unele fisiere sunt incarcate in mod automat de catre sistem, iar alte fisiere sunt realizate de catre utilizator (programator). Fisierele care se gasesc in fereastra (proiect) se pot grupa pe categorii cu ajutorul butonului Toggle Folders. Butonul View Object serveste pentru vizualizarea obiectului selectat (current), iar butonul View Code este folosit pentru vizualizarea codului.

Fereastra de stabilire a proprietatilor, Properties (fereastra 6 din figura 2), asigura afisarea valorilor proprietatilor pentru formularul sau controlul selectat. O proprietate reprezinta o caracteristica a unui obiect (titlu, dimensiuni, pozitie, culoare etc.).

Fereastra Form Layout (fereastra 7 din figura 2) este folosita pentru vizualizarea

aspectului formularului.

Fereastra Immediate (fereastra 8 din figura 2) este o fereastra suplimentara utilizata in procesul de depanare a aplicatiilor informatice rulate din interiorul mediului

IDE. Mediul VB 6.0 permite functionarea in trei moduri de lucru: proiectare (design mode), rulare normala (run mode) si executie cu intrerupere (break mode). Executia cu intrerupere (pas cu pas) se utilizeaza la depanarea aplicatiei pe baza punctelor de intrerupere (breakpoints) stabilite in prealabil. Fereastra Immediate permite introducerea de secvente de cod care se executa imediat sau afisarea valorilor unor expresii.

Fereastra Locals (fereastra 9 din figura 2) este destinata, la depanarea programelor VB, pentru afisarea valorilor unor expresii din program.

Fereastra Watch (fereastra 10 din figura 2) este, de asemenea, o fereastra suplimentara utilizata in procesul de depanare a programelor VB, pentru gestiunea variabilelor si expresiilor watch, adica a valorilor unor variabile si expresii din program existente in momentul actiunii (curente). Utilizarea ferestrei Watch este posibila prin intermediul meniului contextual.

Utilitarul Object Browser (fereastra 11 din figura 2) realizeaza afisarea obiectelor disponibile in IDE ce pot fi utilizate de proiect. Utilitarul serveste, de asemenea, pentru a examina obiecte din VB si din alte aplicatii, pentru a constata ce metode si proprietati sunt disponibile in cazul acestor obiecte si pentru a prelua coduri de program in propria aplicatie informatica.

Editorul de meniu (Menu Editor) permite proiectarea meniurilor asociate formularelor. Pentru afisarea ferestrei corespunzatoare, se apasa butonul cu acelasi nume de pe bara cu instrumente sau prin optiunea Menu Editor din meniul Tools. Fiecare meniu are nume, proprietati si mod de accesare asociat.


3. Proiectarea aplicatiilor in limbajul Visual Basic


Pentru a proiecta o aplicatie informatica in limbajul Visual Basic, este necesara parcurgerea urmatoarelor trei etape:

1) crearea interfetei.

2) precizarea proprietatilor.

3) scrierea codului.

Crearea interfetei se efectueaza cu ajutorul formularelor (Forms). Acestea servesc pentru a genera ferestre si casete de dialog, in calitate de containere pentru elemente care se gasesc in partea ascunsa a aplicatiei. Precizarea proprietatilor se realizeaza prin intermediul ferestrei Properties, dupa selectia prealabila a obiectului. Scrierea codului se executa folosind fereastra de editare a codului, Code Editor. Crearea aplicatiilor in VB se face in modul de proiectare Design Mode, iar executia acestora se efectueaza in modul de rulare normala, Run Mode. Inainte de prezentarea in detaliu a celor trei etape de proiectare a unei aplicatii in VB, se trateaza fisierul proiect.


3.1. Fisierul proiect

Termenul de proiect in VB este similar cu aplicatia informatica, astfel ca el cuprinde o lista a fisierelor care intra in compunerea aplicatiei. Fisierul proiect este un fisier text cu extensia .VBP. Mediul de dezvoltare VB 6.0 asigura posibilitatea lucrului cu mai multe proiecte concomitent, proiecte ce sunt reunite intr-un grup de proiecte (fisierul grup de proiecte are extensia .VBG). In lista de fisiere a unui proiect pot fi incluse urmatoarele tipuri de fisiere:

fisier pentru formular (.FRM);

fisier pentru formular care cuprinde controale cu proprietati care prezinta ca

valori date binare (.FRX);

fisier pentru clasa de module (.CLS);

fisier pentru modul standard (.BAS);

fisier pentru control utilizator (.VBX - DDL-uri pentru controale pe 16 biti si .OCX - DDL-uri pentru controale pe 32 de biti ).

Din punctul de vedere al utilizatorului, proiectul are in compunere module existente in mediul integrat de dezvoltare (IDE) Visual Basic, in format binar, si module realizate de utilizator (formular, cod, clasa). Modulul reprezinta un termen generic care desemneaza entitatea de structurare a unui program. Modulele sunt reutilizabile, ceea ce inseamna ca un modul folosit intr-un program, poate fi utilizat ulterior si in alte programe. Modulul defineste reguli de vizibilitate adica elementele declarate in interiorul lui pot fi sau nu pot fi vizibile in exteriorul acestui modul. Orice proiect trebuie sa includa cel putin un modul (modul de formular sau modul de cod).

Atunci cand au fost definite toate componentele unui proiect, acesta poate fi transformat direct intr-un fisier executabil (.EXE), astfel:

1)       din meniul File, se selecteaza optiunea Make . EXE.;

2)       se introduce numele fisierului executabil in caseta File Name si se apasa butonul OK.

Crearea, deschiderea si salvarea unui proiect se efectueaza prin intermediul comenzilor disponibile in meniul File, astfel:

New Project serveste pentru crearea unui proiect nou, adaugand un nou formular si, eventual, module, referinte si obiecte utilizator cuprinse in fisierul Auto32ld.VBP;

Open Project deschide un proiect existent, cu formularele, modulele si obiectele utilizator listate in fisierul proiect;

Save Project As.asigura prima salvare a proiectului in lucru sau schimbarea numelui unui proiect existent pentru conservarea stadiului la care s-a ajuns si continuarea lucrului cu un alt nume de proiect;

Save Project actualizeaza, prin salvare pe disc, fisierul proiect al aplicatiei existente impreuna cu toate formularele, clasele de module si modulele standard.

Asa cum se deduce din descrierea optiunilor de salvare a proiectului de mai sus, realizarea aplicatiei este terminata atunci cand se selecteaza comanda Save Project As. din meniul File sau cand se selecteaza butonul Save Project din linia de butoane. Mediul Visual Basic solicita salvarea, pe rand, a formularului si apoi a proiectului prin introducerea numelui dar si a unitatii logice de memorie, precum si a caii unde se doreste a avea loc salvarea. In mod implicit, mediul Visual Basic asigura salvarea in locatia C:Program FilesMicrosoft Visual StudioVB98 (Save In). Pentru salvarea unui proiect, se recomanda particularizarea numelui proiectului si folosirea unei unitati logice de memorare si a unei cai personalizate a utilizatorului pentru fiecare proiect, ca, de exemplu:

Homes(D:)StudentFacultateaGrupaNume_prenume_studentNume proiect

Cand se lucreaza cu mai multe proiecte, la un anume moment un singur proiect este activ. Intre aceste proiecte cu care se lucreaza simultan, se pot partaja fisiere. Un fisier, cum este. de exemplu, un formular, poate apartine mai multor proiecte. Crearea unor formulare, module si controale noi se efectueaza cu comenzile din meniul Project.


3.2. Crearea interfetei aplicatiei

Crearea interfetei unei aplicatii se realizeaza cu ajutorul unui obiect denumit formular (Form). In multe lucrari destinate VB, echivalentul romanesc pentru Form este forma. In lucrarea de fata s-a preferat denumirea de formular desi cea de forma este mai apropiata de termenul in limba engleza (crearea formularului inseamna de fapt "turnarea" controalelor intr-o forma adecvata interfetei aplicatiei). Motivul preferintei pentru "formular" este asigurarea lizibilitatii aparitiei denumirii acestui obiect in explicatiile din cuprinsul lucrarii, desi in dictionarele limbii romane, formularul, in general, este definit ca un imprimat cu mai multe spatii albe ce se completeaza in vederea intocmirii unui tabel.

Formularul este un container de controale care faciliteaza dialogul dintre utilizator si aplicatie. Controalele nu pot functiona in afara formularului. Ele sunt obiecte care elibereaza programul de sarcinile legate de intrarile si iesirile generate de actiunile utilizatorului, concentrand eforturile pe operatiile de prelucrare a datelor. Avantajul controalelor din VB este ca ele se aseamana foarte mult cu controalele standard ce apar in sistemul de operare Windows (meniuri, butoane, casete). Controalele usureaza munca de programare in sensul ca sunt eliminate instructiunile care sa ghideze utilizatorul asupra actiunilor pe care acesta trebuie sa le intreprinda. La proiectarea interfetei aplicatiei (Design Mode), fereastra de proiectare a formularului serveste pentru dispunerea controalelor necesare proiectului.

La rularea programului (Run Mode), formularul indeplineste rolul de fereastra principala a proiectului sau de fereastra de dialog. La pornirea mediului VB, fereastra de proiectare a formularului cu numele implicit (default) Form1 este dispusa in centrul ecranului. In interiorul acestei ferestre se gasesc linii punctate cu rolul de a asigura orientarea utilizatorului, iar la marginea ferestrei sunt dispuse manerele de redimensionare a formularului. Este bine ca, inca de la crearea formularului, sa se opteze pentru o dimensiune potrivita a formularului in raport cu numarul de controale introduse si de dimensiunile acestora; nu este estetic si nici practic sa ramana zone mari nefolosite pe suprafata formularului.

Un formular include descrierea grafica a acestuia, controalele sale, proprietatile, constantele, variabilele si procedurile externe, subrutinele de tratare a evenimentelor, procedurile generale. Fiecarui formular ii corespunde un modul de formular (Form Module).

Clasa de module (Class Module) este asemanatoare formularului, dar nu dispune de interfata utilizator vizibila. Clasa de module poate fi folosita pentru crearea obiectelor utilizator, cuprinzand secvente de cod pentru metodele si proprietatile obiectelor definite.

Obiectele care apartin aceleasi clase nu sunt inzestrate cu evenimente proprii.

Mediul VB asigura interfata pentru un singur document (SDI) sau interfata multidocument (MDI). In cazul SDI, toate ferestrele mediului VB pot fi deplasate pe ecran, iar in cazul MDI, toate ferestrele mediului integrat de dezvoltare VB (numite fii) sunt incluse intr-o fereastra unica (numita parinte) ce poate fi redimensionata. Pentru a obtine comutarea intre modurile de lucru SDI si MDI se realizeaza urmatoarea succesiune de actiuni:

1)       se selecteaza Options (optiuni) din meniul Tools; efectul este aparitia casetei de dialog Options;

2)       se selecteaza Advanced;

3)       se valideaza sau se invalideaza caseta SDI Developement Environement.

Controalele standard sunt butoanele de comanda (Command Button), casetele cu text (TextBox), etichetele (Label), casetele de validare (Check Box), butoanele de optiuni (Option Button), casetele cu lista (ListBox), casetele cu imagine (PictureBox), barele de defilare (ScrollBar) orizontale si verticale, casetele combinate (ComboBox).

Introducerea unui control din cutia cu instrumente (Toolbox) pe suprafata formularului se obtine prin parcurgerea etapelor urmatoare:

1)       se deplaseaza cursorul mouse-ului in cutia cu instrumente (Toolbox), pe pictograma care reprezinta controlul ce urmeaza a fi introdus in formular si se actioneaza butonul din stanga al mouse-lui;

2)       se muta cursorul mouse-ului pe suprafata formularului, in pozitia in care va fi coltul stang al controlului;



3)       se efectueaza succesiunea de operatii de tipul Drug and Drop pana se dimensioneaza dupa dorinta controlul selectat;

4)       se elibereaza butonul stang al mouse-ului.

O alta modalitate de introducere a controlului selectat pe suprafata formularului este reprezentata de dublu-click-ul mouse-ului pe pictograma (icon-ul) controlului din cutia cu instrumente (Toolbox). Se genereaza astfel un control cu dimensiunile implicite, dispus in centrul formularului.

Dispunerea controalelor pe suprafata formularului se face dupa o anumita logica legata de succesiunea operatiilor importante de introducere date, prelucrare si afisare rezultate. Fiecare control este caracterizat de un ansamblu de proprietati ce se refera la descrierea comportamentului sau aspectului unui control. Latimea sau inaltimea unui control se masoara in twip (un twip reprezentand cel mai mic punct adresabil de pe ecran, cu dimensiunea de 1/1440 inch). Asa cum se va arata in paragraful urmator, fereastra Properties permite modificarea intre limite prestabilite a valorilor diferitelor proprietati ale controalelor.

Focalizarea reprezinta operatiunea de punere in evidenta a unui control la un moment dat; mai precis, acel control devine activ prin focalizare. Acel control activ se mai numeste si focar (focus). Acest lucru se pune in evidenta printr-o linie punctata in jurul controlului sau printr-un titlu ingrosat. Mutarea focarului de la un control la altul se efectueaza prin intermediul tastelor Tab sau Shift+Tab. Apasarea tastei Enter va determina actiunea controlului focar sau focalizat.

Ordinea de parcurgere a controalelor in formular reprezinta ordinea in care controalele sunt puse in evidenta prin focalizare, o data cu apasarea succesiva a tastei Tab.

In momentul activarii formularului, este stabilit primul control care este focalizat.

Proprietatile comune tuturor controalelor din formular care stabilesc ordinea de parcurgere a controalelor sunt TabIndex (pozitia) si TabStop (oprirea). Ordinea de parcurgere a controalelor este circulara si in ambele sensuri - inainte (Tab) si inapoi (Shift+Tab).

Un control poate include o tasta "fierbinte" (Hot Key) ce este evidentiata printr-o litera subliniata. Prin actiunea Alt+litera subliniata, se provoaca actiunea controlului respectiv. Litera subliniata se introduce cu ajutorul proprietatii Caption prin precedare de un ampersand (&).

Redimensionarea unui control introdus deja pe suprafata formularului se obtine astfel:

1)       se selecteaza controlul de redimensionat prin click executat cu mouse-ul in interiorul suprafetei acestui control. Pe marginile controlului apar manerele de redimensionare;

2)       se fixeaza cursorul mouse-ului in dreptul unui maner de redimensionare si se misca tinand apasat butonul stang al mouse-ului, pana se obtine dimensiunea dorita.

3)       Manerele situate in colturile suprafetei controlului redimensioneaza controalele atat pe verticala, cat si pe orizontala, iar manerele dispuse pe laturi redimensioneaza controlul numai intr-o singura directie.

4)       se elibereaza butonul stang al mouse-ului.

Mutarea unui control pe suprafata formularului se realizeaza cu mouse-ul prin tehnica Drug and Drop.

Dupa finalizarea proiectarii formularului, blocarea tuturor controalelor pe suprafata formularului se obtine din meniul Format cu optiunea Lock Controls sau cu butonul Lock Controls Toggle de pe bara cu instrumente Form Editor.

Formularele sau controalele Visual Basic au asociate, in cadrul proiectului, proceduri eveniment vide care sunt personalizate in momentul executiei aplicatiei.


3.3. Precizarea proprietatilor

Precizarea proprietatilor in etapa de proiectare (Design Mode) a formularului sau a altui obiect vizual se realizeaza cu ajutorul ferestrei Properties. Fereastra Properties este formata din caseta cu obiecte, Objects (afiseaza numele si tipul obiectului selectat, adica obiectul curent) si caseta Settings - setari (afiseaza alfabetic sau pe categorii lista proprietatilor - stanga si lista cu valorile sau setarile proprietatilor - dreapta).

Activarea ferestrei Properties se poate obtine prin succesiunea de comenzi meniu principal - View - Properties Window sau cu ajutorul tastei functionale F4.

Precizarea proprietatilor se obtine prin parcurgerea urmatoarele etape:

1)       daca nu este afisata, se activeaza fereastra Properties; se selecteaza obiectul caruia urmeaza sa i se precizeze proprietatile; in acest moment, se afiseaza automat proprietatile cu valorile implicite pentru obiectul selectat;

2)       din lista alfabetica sau lista pe categorii a proprietatilor se selecteaza denumirea proprietatii la care se vor modifica valorile sau setarile existente;

3)       in coloana valorilor sau setarilor din dreapta se tasteaza sau se selecteaza valorile dorite pentru proprietate.

Pentru a asocia o pictograma unui formular se atribuie o valoare proprietatii icon pentru acel formular.


3.4. Scrierea codului

Dupa proiectarea formularului si precizarea proprietatilor, urmeaza scrierea codului care consta in asocierea unor secvente de cod pentru toate controalele din formular, adica moduri de actiune la diverse evenimente.

Codul contine constante, declaratii de variabile si instructiuni scrise in limbajul e programare Visual Basic, in conformitate cu algoritmul de calcul. Legarea efectiva de control sau fereastra a secventelor de cod se obtine de catre utilizator (programator) in mod conversational.

Pentru scrierea codului se deschide fereastra de editare a codului (Code Editor), prin dublu-click executat cu butonul stang al mouse-ului pozitionat pe obiectul selectat.

Fereastra de editare a codului (Code Editor) este formata din fereastra principala ce reprezinta zona pentru scrierea codului si doua casete de tip lista din care se selecteaza controlul pentru care se scrie codul (Object) si, respectiv, din care se alege evenimentul la care se reactioneaza prin codul scris pentru procedura in fereastra principala (Procedure).

Codul din proiectele realizate in VB se divide in blocuri de dimensiuni mai mici numite proceduri. Codul care corespunde unui eveniment se numeste procedura eveniment.

Procedura-eveniment asociata unui control are numele alcatuit din numele controlului (stabilit in proprietatea Name), o liniuta de subliniere (_) si numele evenimentului.

Atunci cand se deschide fereastra de cod si se selecteaza evenimentul pentru care se scrie codul, se genereaza automat prima si ultima linie a procedurii (Private Sub Form_Load () si End Sub) ce constituie un sablon de lucru.

Pentru crearea unei proceduri-eveniment se executa urmatoarea succesiune de actiuni: caseta Object → se specifica numele obiectului din formularul curent (adica cel care este focalizat) pentru care se scrie codul → caseta cu lista Procedure → selectie nume eveniment asociat obiectului selectat (de exemplu, procedura Click implicita pentru controlul buton de comanda, Command Button) → sablon pentru procedura-eveniment → intre declaratiile Private Sub si End Sub, se introduce de la tastatura codul in conformitate cu algoritmul de calcul.

Se poate opta pentru afisarea tuturor procedurilor in aceeasi fereastra de cod sau pentru afisarea unei singure proceduri la un moment dat.

Pentru afisarea tuturor procedurilor in cadrul aceleiasi ferestre de cod, se executa clic pe butonul de vizualizare a intregului modul, Full Module View, in coltul din stanga-jos al ferestrei de editare a codului, Code Editor sau se executa urmatoarea succesiune de actiuni: meniul Tools → caseta de dialog Options → sectiunea Editor → grupul de setari pentru fereastra, Window Settings, bifa in caseta de validare din stanga lui Default to Full Module View. In acelasi grup de setari pentru fereastra, caseta de validare din stanga lui Procedure Separator serveste la adaugarea sau eliminarea unei linii de separatie intre proceduri.

Pentru afisarea unei singure proceduri la un moment dat, se executa click pe butonul de vizualizare a procedurii, Procedure View, in coltul din stanga-jos al ferestrei de editare a codului, Code Editor sau se executa urmatoarea succesiune de actiuni: meniul Tools → caseta de dialog Options → sectiunea Editor → in grupul de setari pentru fereastra, Window Settings, se sterge bifa din caseta de validare din stanga lui Default to Full Module View.


3. Executia aplicatiei informatice in Visual Basic

Dupa parcurgerea etapelor de creare a interfetei (proiectarea formularului), de precizare a proprietatilor si de scriere a codului, toate fisierele aplicatiei sunt salvate si se trece de la modul de proiectare (Design Mode) la modul de rulare (executie) a proiectului (Run Mode).

Pentru a lansa in executie aplicatia se alege optiunea Start din meniul Run sau se actioneaza tasta functionala F5 sau se executa cu butonul stang al mouse-ului click pe butonul Start de pe bara cu instrumente.

Terminarea rularii proiectului se efectueaza cu optiunea End din meniul Run sau prin apasarea butonului de inchidere (Close) a ferestrei aplicatiei (coltul din dreapta sus al ferestrei) sau prin apasarea butonului End de la bara cu instrumente. Dupa terminarea executiei aplicatiei, mediul VB revine in modul de proiectare (Design Mode).

Prin rularea proiectului, se obtine fisierul executabil. Fisierul executabil se poate obtine direct din meniul File cu optiunea Make .EXE.


4. Elementele limbajului de programare Visual Basic


4.1 Unele reguli de scriere

O proprietate esentiala a unui obiect in Visual Basic este numele (Name). Numele este folosit pentru a referi un obiect particular in cadrul codului. Numele obiectului trebuie sa fie sugestiv si sa arate, in cazul controalelor, grupul de controale caruia ii apartine. Ca urmare, s-a adoptat conventia conform careia un nume trebuie sa fie format dintr-un prefix din trei litere (dat de notatia ungara) si numele propriu-zis cu semnificatie pentru utilizarea obiectului. Prefixul numelui (tabelul 1) indica, in mod unic, grupul de controale din care face parte.


Numele obiectelor pot avea maxim 40 de caractere, trebuie sa inceapa cu o litera si pot contine numai litere, numere si underscore ( _ ). In cadrul mai larg al intregului limbaj Visual Basic, cu setul de caractere ASCII extins ce formeaza alfabetul acestui limbaj, se construiesc literalii si identificatorii. Literalii sunt compusi din siruri de caractere. Literalii pot fi de tipul literali siruri de caractere si sunt scrisi intre ghilimele, si de tipul literali numerici - zecimali (in baza 10), octali (in baza 8), hexazecimali (in baza 16). Identificatorii pot fi predefiniti (cuvinte rezervate si cuvinte-cheie ce desemneaza instructiuni, functii, operatori, metode) sau pot fi definiti de utilizator (ce desemneaza obiecte, variabile, tipuri de date, constante, etichete, proceduri). Instructiunile specifice limbajului Visual Basic se obtin prin combinarea literalilor, identificatorilor si cuvintelor rezervate. Pentru lizibilitatea codului, fiecare instructiune se scrie pe o linie separata.

Daca o instructiune nu incape pe o linie, se poate continua pe linia urmatoare prin caracterul underscore (_). Se pot folosi 20 astfel de linii de continuare a unei instructiuni.

Numele sunt folosite la setarea proprietatilor la momentul executiei si in stabilirea numelor procedurilor pentru evenimentele obiectelor. Setarea proprietatilor la momentul executiei se obtine prin scrierea unui cod. Formatul acestui cod se scrie prin notarea cu punct si este:

Nume obiect. proprietate = noua valoare

(Object Name. Property = New value).

In Visual Basic, numele obiectelor sunt utilizate in setarea unui cadru de lucru (framework) corespunzator procedurilor eveniment, pentru scrierea codului. Formatul fiecarei subrutine (in Visual Basic nu exista program principal; toate procedurile obiectelor sunt subrutine) este:

Private Sub Object Name_Event (Optional Arguments) . End Sub.

Formularului i se ataseaza un obiect. Visual Basic construieste automat un cadru de lucru (framework) pentru fiecare dintre procedurile eveniment. Utilizatorul care construieste aplicatia trebuie sa scrie codul procedurilor eveniment la care corespunde aplicatia.


4.2. Tipuri de date

Tipurile de date reprezinta natura datelor in cadrul unui limbaj de programare. In limbajul Visual Basic, tipurile de date sunt predefinite (standard) sau definite de utilizator. In tabelul 2 sunt prezentate tipurile de date predefinite cele mai utilizate.

Tipurile de date definte de utilizator se obtin prin combinarea mai multor tipuri de date existente in structuri de date.

Declararea tipurilor de date definite de utilizator se efectueaza in sectiunea Declaration (din modulul standard) cu Type.End Type care are sintaxa generala:

[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 declara la nivelul modulelor standard, de clasa sau formular (numai Private). Aceste tipuri de date nu pot fi declarate la nivelul unei proceduri.

De exemplu, tipul de date definite de utilizator Client are urmatoarea structura:

Type Client

Nume_client As String *20

Prenume_client As String *20

Adresa_client As Adresa

CNP_client As String *13

End Type

unde tipul de date definit de utilizator Adresa are structura:

Type Adresa

Localitate As String *20

Strada As String *20

Numar As Integer

Judet As String *20

End Type


4.3. Variabile si constante

Variabilele care se folosesc intr-un program desemneaza locatii de memorie in care se stocheaza valori ce se modifica pe timpul executiei programului. O variabila in limbajul Visual Basic are un nume (identificator) format astfel:

maxim 40 de caractere;

numele include: litere, numere, underscore (-):

primul caracter trebuie sa fie o litera;

nu se pot folosi ca nume de variabile, cuvintele rezervate, care fac parte din setul de cuvinte cheie al limbajului.

Corespunzator variabilei care se doreste a fi creata si utilizata, utilizatorul poate sa stabileasca tipul de data asociat prin folosirea unui sufix de natura tip de data care va putea fi stocat sau prelucrat prin intermediul respectivei variabile.

Exista trei moduri de declarare a unei variabile:

a). Prin lipsa (din oficiu). Daca variabila nu este definita in nici un mod, ea este presupusa Variant, adica un tip de data Visual Basic care poate contine: valori numerice, siruri de caractere sau data calendaristica.

b). Implicit. Declararea implicita este data prin folosirea sufixului corespunzator.

De exemplu, o variabila de tip String (sir de caractere) poate fi declarata implicit astfel:

Material$ = "Cherestea"

iar o variabila de tip Integer se poate declara implicit astfel:

Cantitatea% = 273

c). Explicit. Acest mod de declarare a unei variabile prezinta mai multe avantaje: asigura efectuarea unui calcul corect prin intermediul instructiunilor care utilizeaza variabilele respective si permite identificarea, gestionarea corecta a aparitiei literelor mari sau a literelor mici in numele variabilelor. Datorita acestor avantaje, se prefera lucrul cu tipurile de variabile explicite.



Pentru a putea lucra cu variabile declarate explicit trebuie sa fie cunoscut domeniul de valabilitate, si anume:

1) domeniul procedurilor;

2) domeniul procedurilor in care variabilele se declara static;

3) domeniul formularelor si modulelor;

4) domeniul nivelului global.

De exemplu, pentru domeniul procedurilor, variabilele sunt declarate folosind cuvantul-cheie Dim:

Dim Denumire_material As String

Dim Cantitate As Integer

Dim Pret_unitar As Single.

Variabilele declarate la nivelul procedurilor isi vor pastra valorile numai pe timpul rularii procedurilor respective. Din acest motiv se mai numesc si variabile locale.

Pentru ca variabilele sa-si pastreze valorile si dupa terminarea procedurii, se foloseste domeniul procedurilor in care variabilele se declara static, cuvantul-cheie Dim fiind inlocuit cu Static. De exemplu:

Static Denumire_material As String

Static Cantitate As Integer

Static Pret_unitar As Single.

Pentru domeniul domeniul formularelor si modulelor, variabilele isi mentin valorile la nivelul formularului (modulului), relativ la toate procedurile prin declararea variabilelor cu Dim, dar in partea de declaratii a obiectului general, in fereastra de cod a formularului.

Pentru domeniul domeniul nivelului global, o variabila este disponibila tuturor procedurilor prezentate in aplicatie, prin declararea in partea de declaratii a obiectului general din fereastra de cod a unui modul cu ajutorul cuvantului cheie Global. De exemplu:

Global Nr_factura As Long

Global Data_factura As Date.

In cazul mai multor variabile cu acelasi nume, variabilele locale au valabilitate numai in cadrul procedurilor. La parasirea acestor proceduri se folosesc variabilele cu acelasi nume, dar definite la nivel superior.

Procedura de introducere a acestor variabile globale este urmatoarea:

se executa dublu-click oriunde in fereastra formularului pentru a deschide fereastra de editare a codului (sau se selecteaza optiunea View Code din fereastra Project);

se declara variabilele din formular astfel:

- Option Explicit (forteaza declararea variabilelor)

- Global Nr_factura As Long

- Global Data_factura As Date.

Constante simbolice utilizate in Visual Basic

In cele mai multe situatii, functiile si obiectele limbajului Visual Basic necesita argumente pentru efectuarea operatiilor specifice, argumente care reprezinta constante numerice. Acestea sunt greu de interpretat din punct de vedere al utilizatorului. Pentru a le face inteligibile, limbajul Visual Basic asigura nume celor mai utilizate valori si acestea se numesc constante simbolice.

De exemplu, pentru setarea fondului formularului frmMat pe culoarea albastra se poate scrie:

frmMat. Back Color = 0XFF0000 sau, folosind constanta simbolica pentru albastru:

frmMat. Back Color = VBBlue

Utilizatorul isi poate defini propriile constante ca de exemplu: const TVA = 0.19.

Constantele de utilizator se scriu cu litere mari, pentru a le distinge de variabile.

Domeniul de valabilitate al unei constante este similar cu cel al variabilelor.


4.4. Instructiuni Visual Basic

4.4.1. Construirea expresiilor

Cea mai simpla instructiune este cea de atribuire, formatul ei este:

Let variabila = expresie. De exemplu:

Let Vmftva = Cant *Pu

Let Vfftva =Vfftva + Vmftva

Let Nume_client = "Georgescu Constantin"

Utilizatorul poate tasta sau nu cuvantul Let dar este obligat sa exprime numele variabilei si expresia pe baza careia se deduce continutul.

Vmftva = Cant *Pu

Vfftva =Vfftva + Vmftva

Nume_client = "Georgescu Constantin"

Instructiunile se scriu de obicei pe o singura linie fara delimitator. Pentru a putea scrie mai multe instructiuni pe o linie se foloseste separatorul ":".

Observatie: se recomanda folosirea atenta a acestui delimitator cand este folosita structura If .End If. Daca o instructiune este foarte lunga, ea poate continua pe urmatoarea 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 incep cu cuvantul-cheie Rem sau "' ".

De exemplu: Rem Acesta reprezinta un comentariu 'Acesta reprezinta un exemplu de comentariu.

4.4.2. Operatori Visual Basic

Operatorii Visual Basic, in ordinea claselor de precedenta, sunt prezentati in tabelul 3. Precedenta operatorilor (clasele de precedenta) se refera la ordinea in care se executa operatiile intr-o expresie care contine mai multe tipuri de operatori. Primii sunt executati operatorii de concatenare, dupa care urmeaza operatorii arithmetic, operatorii de comparare si, la sfarsit, operatorii logici.

Operatorii pot fi unari (se aplica unui singur operand, de exemplu, Not) sau binari (prezinta doi operatori, de exemplu, +. -, *, /, And, Or etc.).

4.4.3. Functii Visual Basic

Functia (Function) reprezinta o multime ordonata de instructiuni creata in scopul indeplinirii unei sarcini (task) bine precizata si repetabila. Functia returneaza un singur rezultat. Functiile Visual Basic sunt predefinite sau definite de utilizator. Visual Basic asigura o biblioteca variata de functii predefinite. In tabelul 4 sunt prezentate principalele functii predefinite specifice limbajului Visual Basic.



Tabel 4


S-au prezentat cele trei structuri de control fundamentale: structura de control secventiala (liniara), structurile de control alternative (cu ramificatii) si structurile de control repetitive (de ciclare). Tuturor acestor structuri de control fundamentale le sunt asociate instructiuni specifice in limbajul de programare Visual Basic, cu ajutorul carora poate fi controlata logica de executie a oricarei secvente de program in Visual Basic.

Acestor instructiuni li se alatura comenzile asociate operatiunilor de intrare/iesire specifice introducerii datelor de intrare, respectiv extragerii rezultatelor prelucrarilor, precum si instructiunile de transfer.

Instructiuni alternative (sau cu structura alternativa)

. Instructiunea If - cea mai simpla forma a acestei instructiuni este:

If conditie Then instructiune

De exemplu: If TVA=0.19 Then Vmctva=Vmftva + TVA * Vmftva

Cand in instructiunea If, dupa cuvantul cheie Then urmeaza mai multe instructiuni, sintaxa generala a instructiunii este:

If conditie Then

Secventa de instructiuni

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 alta forma a instructiunii 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

. Instructiunea Select Case

Instructiunea Select Case se foloseste in cazul cand sunt precizate mai multe selectii.

Sintaxa generala a instructiunii este urmatoarea:

Select Case variabila

Case Is variabila sau expresie instructiuni


Case Is variabila sau expresie instructiune

Case Else

instructiune

End Select

De exemplu, pentru selectia persoanelor dupa categoria de varsta

(Categoria_varsta) se procedeaza astfel:

Select Case Varsta

Case Is 5

Categoria_varsta = "Copii sub 12 ani"

Case Is 13 TO 19

Categoria_varsta = "Adolescenti"

Case Is 20 TO 35, 50, 60 TO 65

Categoria_varsta = "Adulti"

Case Is > 65

Categoria_varsta = "Batrani"

Case Else

Categoria_varsta = "Alte categorii"

End Select

Instructiuni repetitive

Ciclarea este asigurata prin formatul general Do . Loop. Ciclarile implementeaza operatiile care se repeta de un anumit numar de ori, ciclarea repetandu-se pana cand se indeplineste o conditie specificata, intalnita la inceputul sau sfarsitul ciclarii.

Instructiuni care implementeaza structuri de control repetitive conditionate anterior

Din aceasta categorie fac parte instructiunile Do .Loop si While .Wend, care au urmatoarele sintaxe generale:

Do [ conditie]

Secventa_instructiuni_1

[Exit Do]

Secventa_instructiuni_2

Loop,

respectiv:

While conditie

Secventa_instructiuni

Wend

Cand conditie este adevarata (True), se executa secventa imediata de instructiuni.

Instructiunea While .Wend nu permite iesirea fortata din ciclare.

Instructiuni care implementeaza structuri de control repetitive conditionate posterior

Din aceasta categorie fac parte instructiunile Do .Loop , care au

urmatoarea sintaxa generala:

Do

[Secventa_instructiuni_1]

[Exit Do]

[Secventa_instructiuni_2]

Loop conditie

Un exemplu de utilizare a instructiunii Do .Loop Until este urmatorul:

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 repeta pana cand raspunsul la intrebarea "CONTINUATI?" va fi No

(Nu).

Instructiuni care implementeaza structuri de control repetitive cu contor

In acest caz, numarul de iteratii este cunoscut. Din aceasta categorie face parte instructiunea For . Next care are urmatoarea sintaxa generala:

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 instructiuni este urmatorul:

For i = 1 To Nrm

Cant = InputBox('Introduceti cantitatea materialului nr: ' & i)

Pu = InputBox('Introduceti pretul unitar al materialului nr: ' & i)

Vmftva = Cant * Pu

Vmctva = Vmftva + tva * Vmftva

txtVmftva = Format(Vmftva, '######0.00')

txtVmctva = Format(Vmctva, '######0.00')

Next i.


3.4. Crearea fisierelor in limbajul Visual Basic

Limbajul Visual Basic ofera posibilitatea lucrului cu fisiere.

Fisierele pot stoca date de tipuri diferite (date numerice, text, imagini). Accesul la datele unui fisier poate fi: binar; secvential; aleator.

Pentru accesul binar trebuie localizat in fisier numarul de caractere care urmeaza a fi citite sau scrise. Pentru accesul secvential trebuie parcurse toate inregistrarile care preced inregistrarea dorita. Accesul aleator este un acces direct la inregistrarile de marime fixa, fara a necesita citirea inregistrarilor precedente.

Operatiile care se pot executa asupra fisierelor sunt:

1) deschiderea fisierelor;

2) inchiderea fisierelor;

3) exploatarea fisierelor in acces secvential;

4) exploatarea fisierelor in acces aleator.

1). Pentru deschiderea unui fisier se foloseste comanda OPEN. Orice fisier, inainte de a se lucra cu el, trebuie sa fie deschis. Comanda OPEN aloca zone de memorie tampon pentru operatiile de intrare/iesire si specifica modul de acces asociat zonei tampon.

Formatul general al acestei comenzi este:

OPEN nume-fisier FOR mod deschidere AS # numar-fisier LEN = expresie in care:

nume-fisier - este un sir de caractere care desemneaza numele de fisier dar poate cuprinde si un director si o unitate de disc. Daca fisierul nu exista in momentul deschiderii lui, el va fi creat cand se executa comanda OPEN.

mod de deschidere - specifica modul in care se deschide acel fisier. Pentru accesul secvential se poate specifica: APPEND pentru adaugare de noi inregistrari la sfarsitul fisierului deja existent; INPUT - pentru citirea inregistrarilor din fisier;

OUTPUT - pentru crearea unui nou fisier.

Pentru accesul binar se specifica BINARY, iar pentru accesul aleator, RANDOM.

numar-fisier - este un numar cuprins intre 1-511. In modurile Binary, Input sau

Random se poate deschide un fisier utilizand un numar nou, fara a inchide in prealabil copia deschisa anterior; in modurile Append sau Output trebuie sa se inchida in prealabil fisierul pentru a-l putea deschide cu un alt numar; pentru lucrul simultan cu mai multe fisiere in expresia #numar-fisier se utilizeaza functia FREEFILE care returneaza urmatorul numar de fisier care poate fi utilizat in instructiunea OPEN;

expresie - este un numar mai mic sau egal cu 32767.

In cazul utilizarii fisierelor deschise RANDOM, acest numar corespunde lungimii unei inregistrari.

2). Inchiderea fisierelor se executa prin intermediul comenzii CLOSE care are urmatoarea sintaxa generala:

CLOSE lista-numere-fisiere

in care:

. lista-numere-fisiere specifica unul sau mai multe numere separate prin virgula.

Cand acest argument este absent, se inchid toate fisierele. Cand se inchid fisierele care au fost deschise in mod Append sau Output toate datele care sunt in zona tampon acordata fisierului vor fi scrise in fisier inainte de a fi inchis. La executia instructiunii CLOSE, asocierea dintre fisier si numarul lui este dezactivata.

3). Exploatarea fisierelor in acces secvential. Tipul de acces secvential este utilizat pentru a citi sau scrie o inregistrare de aceeasi lungime sau pentru fisiere compuse din inregistrari de lungimi diferite.

Comanda PRINT # scrie datele linie cu linie intr-un fisier secvential deschis in mod Output sau Append.

Sintaxa generala a acestei comenzi este:

Print # numar-fisier, lista-expresii



unde:

numar-fisier este numele fisierului.

lista-expresii este o expresie sir sau numerica sau o lista de expresii care se scrie in fisier. Pentru a scrie o linie goala dupa numar-fisier se pune virgula.

Comanda LINE INPUT # este folosita pentru a citi o linie dintr-un fisier secvential.

Linia citita este atribuita unei variabile sir. Sintaxa comenzii este:

LINE INPUT # numar-fisier, nume-variabila in care:

. numar-fisier este numarul fisierului;

. nume-variabila este o variabila sir.

LINE INPUT # citeste din fisier caracter cu caracter pana intalneste retur de car, chr (13) sau retur de car si salt la linie noua chr (13) + chr (10).

4). Exploatarea fisierelor in acces aleator. La deschiderea fisierului in acces

RANDOM se precizeaza lungimea inregistrarii. Scrierea unei inregistrari in fisier se face cu comanda PUT # care scrie dintr-o variabila intr-un fisier. Sintaxa comenzii este:

PUT [#] numar-fisier, numar inregistrare, nume-variabila in care:

numar-fisier este numarul fisierului;

numar inregistrare reprezinta lungimea inregistrarii determinand pozitia scrierii;

nume-variabila este numele variabilei care contine datele care urmeaza a fi scrise.

Citirea unei inregistrari din fisier se face citind intr-o variabila data din fisier.

Comanda este GET # de forma:

GET [#] numar-fisier, numar-inregistrare, nume-variabila, in care:

numar-fisier este numarul alocat in prealabil fisierului;

numar-inregistrare este numarul inregistrarii care inmultit cu lungimea

inregistrarii stabileste pozitia citirii;

nume-variabila este numele variabilei care contine datele care urmeaza a fi

citite.


4.6. Exemplu de aplicatie informatica in limbajul Visual Basic

Sa se realizeze un program in limbajul Visual Basic care sa calculeze valoarea totala (fara TVA si cu TVA) a unei facturi de materiale. Factura contine un numar precizat de materiale. Datele de intrare sunt: numarul de materiale de pe factura (Nrm), numar factura (Nrf), data facturii (Df), codul materialului (Codmat), denumirea materialului (Denmat), cantitate (Cant) si pretul 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 si Vmctva) si datele de iesire sau rezultatele rularii programului (Vfftva si Vfctva) se vor afisa in casetele text (TextBox) separate din formular. Lucrul cu casete text in formular reprezinta o prima varianta de rezolvare a problemei cu calculul si afisarea valorii facturii de materiale cu un numar precizat de materiale.

Varianta a doua de rezolvare a problemei consta in afisarea, sub forma de tabel, pe formular, a datelor de intrare, a datelor intermediare si a rezultatelor rularii aplicatiei. In aceasta varianta de rezolvare a problemei, nu se mai folosesc casete text (TextBox).

In ambele variante de rezolvare a problemei, se prevad butoane de comanda (Command Button) pentru calculul si afisarea unui material (fara TVA si cu TVA) - butonul CALCULEAZA, pentru calculul valorii facturii (fara TVA si cu TVA) - butonul AFISEAZA (pentru afisarea valorii facturii - fara TVA si cu TVA) si pentru iesirea din program - butonul IESIRE.

Varianta 1 de rezolvare a problemei

Schema logica este prezentata in figura 3. Este folosita o structura de control repetitiva cu contor (i), conditionata anterior care se implementeaza cu instructiunea For .Next.

Codul programului in limbajul Visual Basic, pentru varianta 1 de rezolvare, este urmatorul:

Option Explicit

Dim Nr_factura As Long



Dim Data_factura As Date

Dim Vmftva As Double

Dim Vmctva As Double

Dim Vfftva As Double

Dim Vfctva As Double

Dim Nrm As Byte

Const tva = 0.19

Private Sub cmdCalcul_Click()

Dim Cod_mat As Long

Dim Den_mat As String

Dim Cant As Integer

Dim Pu As Single

Dim i As Byte

Nr_factura = InputBox('Introduceti numarul facturii: ')

txtNrf = Format(Nr_factura, '######0')

Data_factura = InputBox('Introduceti data facturii sub forma zz/ll/aaaa')

txtDf = Format(Data_factura, 'Short Date')

Nrm = InputBox('Introduceti numarul de materiale de pe factura: ')

Vfftva = 0

Vfctva = 0

For i = 1 To Nrm

Cod_mat = InputBox('Introduceti codul materialului nr: ' & i)

txtCodmat = Format(Cod_mat, '######0')

Den_mat = InputBox('Introduceti denumirea materialului nr: ' & i)

txtDenmat = Format(Den_mat, '######0')

Cant = InputBox('Introduceti cantitatea materialului nr: ' & i)

txtCant = Format(Cant, '######0')

Pu = InputBox('Introduceti pretul unitar al materialului nr: ' & i)

txtPu = Format(Pu, '######0.00')

Vmftva = Cant * Pu

Vmctva = Vmftva + tva * Vmftva

Vfftva = Vfftva + Vmftva

Vfctva = Vfctva + Vmctva

txtVmftva = Format(Vmftva, '######0.00')

txtVmctva = Format(Vmctva, '######0.00')

Next i

End Sub

Private Sub cmdAfisare_Click()

txtVfftva = Format(Vfftva, '######0.00')

txtVfctva = Format(Vfctva, '######0.00')

End Sub

Private Sub cmdExit_Click()

End

End Sub

Rezultatele rularii programului in prima varianta de rezolvare a problemei sunt prezentat in figura 4.


Varianta 2 de rezolvare a problemei

Schema logica este prezentata in figura 5, Este utilizata o structura de control repetitiva fara contor conditionata posterior. Implementarea acestei structuri in program se va face cu instructiunea Do .Loop Until. Pe baza acestor considerente, nu mai sunt necesare variabilele i si Nrm folosite in varianta 1 de rezolvare a problemei.

Codul programului in limbajul Visual Basic, pentru rezolvarea in varianta 2, este urmatorul:

Option Explicit

Dim Nrf As Long

Dim Df As Date

Dim Vmftva As Double



Fig.  Schema logica pentru varianta 2 de rezolvare a problemei

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 rularii programului in a doua varianta de rezolvare a problemei, sunt prezentate in figura 6


INTREBARI DE AUTOEVALUARE

1. Care sunt asemanarile si deosebirile esentiale intre conceptele de data,

informatie si cunostinta?

2. Enumerati si caracterizati conceptele utilizate in organizarea datelor.

3. Ce este un fisier de date?

4. Cum se defineste relatia binara?

Clasificati structurile de date.

6. Prezentati tipurile de modele de date.

7. Cate tipuri de legaturi intre entitati cunoasteti si care sunt ele?

8. Ce se intelege prin procesul de prelucrare automata a datelor?

9. Ce tipuri de structuri de control cunoasteti?

10. Ce este un program pe calculator?

11. Care sunt etapele de realizare a unui program pe calculator?

12. Ce se intelege prin compilarea si editarea de legaturi a unui program?

13. Definiti conceptele de baza ale programarii orientate pe obiecte.

14. Ce se intelege prin metoda?

1 Care sunt elementele mediului integrat de dezvoltare?

16. Cum se realizeaza o aplicatie in Visual Basic?

17. Cum se stabilesc proprietatile obiectelor?

18. Cum se realizeaza scrierea codului?

19. Cum se creeaza procedurile pentru evenimente?

20. Cum se creeaza un proiect?

21. Definiti fisierul proiect.

22. Ce tipuri de variabile in Visual Basic cunoasteti?

23. Cum se declara o variabila in Visual Basic?

24. Ce reprezinta instructiunile de atribuire?

2 Care sunt instructiunile alternative in Visual Basic?

26. Care sunt instructiunile repetitive in Visual Basic?

27. Care sunt instructiunile de salt in Visual Basic?

28. Ce particularitati prezinta accesul aleator la date?

29. Care sunt instructiunile de scriere intr-un fisier secvential?

30. Care sunt instructiunile de citire si de inchidere a fisierelor?

TESTE GRILA

1. Din punctul de vedere al compunerii, datele se clasifica in:

a) date elementare sau scalare;

b) date introduse cu tastatura;

c) date memorate;

d) date compuse.

2. Dupa gradul asocierii si dupa obligativitatea participarii la asociere, tipurile de

legaturi intre entitati se diferentiaza in:

a) asocieri partiale de tip "unu la unu";

b) asocieri partiale de tip "unu la multi";

c) asocieri totale de tip "unu la multi";

d) asocieri totale de tip "unu la unu";

e) asocieri partiale de tip "multi la multi";

f) asocieri totale de tip "multi la multi".

3. Raspundeti cu Adevarat sau Fals:

Notiunea de aplicatie informatica nu este similara cu aceea de sistem informatic.

4. Completati cuvantul lipsa:

Limbajul de programare este un limbaj artificial ce se foloseste pentru definirea unui sir de ......... , care pot fi prelucrate si executate pe un calculator.

Precizati destinatia ferestrelor mediului integrat de dezvoltare Visual Basic, prin indicarea corespondentei intre denumirea ferestrei (A.F) si destinatia acesteia (1.6):

6. Raspundeti cu Da sau Nu:

Ciclarea este asigurata prin formatul general Do . Loop. Ciclarile implementeaza operatiile care se repeta de un anumit numar de ori, ciclarea repetandu-se pana cand se indeplineste o conditie specificata, intalnita la inceputul sau sfarsitul ciclarii.

7. Care este secventa de program Visual Basic corecta?

8. Cate etape sunt necesare pentru realizarea unei aplicatii Visual Basic?

Raspunsuri la testele grila: 1. (a,d); 2. (toate); 3. (Adevarat); 4. (instructiuni);

(1-D;2-F;3-A;4-C;5-B;6-E); 6. (Da); 7. (b); 8. (3).


6. BIBLIOGRAFIE

1. Gheorghe Popa, Matei Iliescu, Bogdan Vasiliuc - Baze de date. Access, Ed. Univ. Titu Maiorescu, Bucuresti, 2004.

2. Udrica M. - Modelare orientata obiect, Ed. Cison, Bucuresti, 2000.

3. Florescu V., Stanciu V. - Baze de date, Ed. Economica, Bucuresti, 1999.

4. Popa Gh., Berbec F. - Baze de date. Access, Ed. Cison, Bucuresti, 2001.

Fusaru, Doina, Gherasim Z., Bara Adela, Informatica de gestiune - limbaje de programare si sisteme de gestiune a bazelor de date. Teste grila, Editura Fundatiei Romania de Maine, Bucuresti, 200

6. Gh. Popa, Matei Iliescu, Valeria Mareș- Programarea calculatorelor. Visual Basic, Ed. Univ. Titu Maiorescu, Bucuresti, 2004.

7. Zaharie, D., Rosca, I., Proiectarea obiectuala a sistemelor informatice, Editura Dual Tech, Bucuresti, 2002.

8. Dospinescu, O., Dezvoltarea aplicatiilor in Visual Basic. NET, Editura Polirom, Iasi, 2004.

9. Mihai Draganescu - De la societatea informationala la societatea cunoasterii, Ed. Tehnica, Bucuresti, 2003

*** Microsoft Visual Basic 6.0. Ghidul programatorului, Editura Teora, Bucuresti, 2002