Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Elementele limbajului de programare Visual Basic



Elementele limbajului de programare Visual Basic


Elementele limbajului de programare Visual Basic

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.




Tabelul 1 Stabilirea numelor unor obiecte in 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 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.


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.


Tabelul 2 Tipurile de date predefinite in Visual Basic

Tip romana

Tip engleza

Sufix

Memorie ocupata

Interval de valori (domeniu)

Octet

Byte


1

0.255

Intreg

Integer


2

-32768.+32767

Intreg lung

Long

(integer)

&

4

2.147.483.648.+2.147.483.647

Logic

Boolean


2

True, False

Real simpla precizie

Single (floating)



4

-3,40 e38.+3,40 e38

Real dubla precizie

Double (floating)



8

-1,8 e308.+1,8 e308

Moneda

Currency


8

-9,22 e14.+9,22 e14

Data

Date


8

Jan 01/100-dec 31/9999

Obiect

Object


4

Adresa unui obiect

Sir de caractere

String


1 octet/

caracter

Sir de caractere alfanumerice

Nedefinit

Variant



Sir, numere, data

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

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. In tabelul 3.4 s-au prezentat tipurile de date, sufixul asociat si intervalul de valori.

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 Instructiuni Visual Basic

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.2 Operatori Visual Basic


Operatorii Visual Basic, in ordinea claselor de precedenta, sunt prezentatti 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.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.

Tabelul 3 Clasele de precedenta ale operatorilor in Visual Basic

Clasa

Operator

Operatia

1.      

And, Or, Not

Logica

2.      

Mod

Modulo

3.      

<,>,<=,>=,=,<>

Comparare



Adunare

Scadere

4.      


Exponentiere (ridicare la putere)


Impartire intreaga

5.      



Inmultire

Impartire

[ ]

Stabilire prioritate calcul

6.      

&,

Concatenare sir de caractere


Tabelul 4 Principalele functii predefinite ale limbajului Visual Basic

Functie

Valoare returnata

Abs

Valoarea absoluta a unui numar

Asc

Codul ASCII sau ANSI al unui caracter

Chr

Caracterul corespunzator unui cod ASCII sau ANSI

Cos

Cosinusul unui unghi

Date

Data curenta ca sir de caractere

Format

Data sau numar convertite la un sir de caractere

Left

Selecteaza partea stanga a unui sir de caractere

Len

Numarul de caractere dintr-un sir de caractere (lungimea sirului de caractere)

Mid

Selecteaza o parte din sirul de caractere

Now

Data si ora curenta

Right

Selecteaza partea de sfarsit a unei sir de caractere

Rnd

Generarea aleatoare a unui numar

Sin

Sinusul unui unghi

Sqr

Radacina patrata dintr-un numar

Str

Numar transformat intr-un sir de caractere

Time

Timpul curent dat ca sir de caractere

Timer

Numar de secunde ramase pana la miezul noptii (ora "0")


4.4 Implementarea structurilor de control al executiei unui program

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.

5 Crearea fisierelor in limbajul Visual Basic

Limbajul Visual Basic ofera posibilitatea lucrului cu fisiere (definite in capitolul 1). 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.


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.











Fig.3.14. Schema logica pentru varianta 1 de rezolvare a problemei


Dim Data_factura As Date

Dim Vmftva As Double

Dim Vmctva As Double

Dim Vfftva As Double

Dim Vfctva As Double

Dim Nrm As Byte

Const tva = 0.19

Private Sub cmdCalcul_Click()

Dim Cod_mat As Long

Dim Den_mat As String

Dim Cant As Integer

Dim Pu As Single

Dim i As Byte

Nr_factura = InputBox('Introduceti numarul facturii: ')

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

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

txtDf = Format(Data_factura, 'Short Date')

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

Vfftva = 0

Vfctva = 0

For i = 1 To Nrm

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

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

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

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

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

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

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

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

Vmftva = Cant * Pu

Vmctva = Vmftva + tva * Vmftva

Vfftva = Vfftva + Vmftva

Vfctva = Vfctva + Vmctva

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

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

Next i

End Sub

Private Sub cmdAfisare_Click()

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

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

End Sub

Private Sub cmdExit_Click()

End

End Sub


Rezultatele rularii programului in prima varianta de rezolvare a problemei sunt prezentat in fig.3.15.





Fig.3.15 Rezultatele rularii programului realizat in varianta 1



Varianta 2 de rezolvare a problemei

Schema logica este prezentata in fig.3.16, 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:








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



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



Fig.3.17. Rezultatele rularii programului in a doua varianta de rezolvare a problemei

Pentru acest capitol paginile din manula 44-74.




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright