Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

Embed Size (px)

DESCRIPTION

Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

Citation preview

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    1/236

    Doina FUSARUZenovic GHERASIM Maria ANDRONIE

    Adela BRA Petrior STROE

    APLICAII ECONOMICE

    N VISUAL BASIC I ACCESSEdiia a III-a

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    2/236

    Descrierea CIP a Bibliotecii Naionale a RomnieiAplicaii economice n Visual Basic i Access. / Doina Fusaru,

    Zenovic Gherasim, Maria Andronie, Adela Bra,Petrior Stroe Ed. a 3-a -

    Bucureti, Editura FundaieiRomnia de Mine, 2007236 p; 24 cm

    ISBN 978-973-725-773-4I. Fusaru, DoinaII. Gherasim, ZenovicIII. Bra, AdelaIV. Andronie, MariaV. Stroe, Petrior

    004:33(075.8)

    Editura FundaieiRomnia de Mine, 2007

    Redactor: Maria CERNEATehnoredactori: Maria ANDRONIE

    Marcela OLARUCoperta: Maria ANDRONIE

    Bun de tipar: 22.02.2007; Coli tipar: 14,75Format: 16/70100

    Editura FundaieiRomnia de MineBulevardul Timioara nr.58, Bucureti, Sector 6

    Tel./Fax: 021/444.20.91; www.spiruharet.ro

    e-mail: [email protected]

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    3/236

    UNIVERSITATEA SPIRU HARET

    Doina FUSARUZenovic GHERASIM Maria ANDRONIE

    Adela BRA Petrior STROE

    APLICAII ECONOMICE

    N VISUAL BASIC I ACCESSEdiia a III-a

    EDITURA FUNDAIEI ROMNIA DE MINEBucureti, 2007

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    4/236

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    5/236

    5

    CUPRINS

    Cuvnt-nainte .. 7

    1.VISUAL BASIC . 9

    Aplicaii rezolvate .... 9Aplicaii propuse . 185

    2.ACCESS .. 189

    Aplicaii rezolvate ... 189

    Aplicaii propuse . 196

    3.APLICAII ECONOMICE COMPLEXE .. 197

    4.EXEMPLE DE TESTE GRILPENTRU EXAMENUL DE LICEN 223

    Bibliografie ... 236

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    6/236

    6

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    7/236

    7

    CUVNT NAINTE

    Lucrarea Aplicaii economice n Visual Basic i Access este destinat

    studenilor din nvmntul economic care studiaz disciplina Informatic de

    gestiune (Limbaje i Sisteme de gestiune a bazelor de date).De asemenea, lucrarea

    este utilcelor care doresc sse iniieze sau s-i dezvolte abilitile practice n

    rezolvarea unor probleme economice cu ajutorul limbajului de programare Visual

    Basic i al sistemului de gestiune a bazelor de date Microsoft Access.

    Autorii au urmrit atingerea urmtoarelor obiective: fixarea noiunilor de

    bazdin programare, n general, i din programarea orientatpe obiecte (asigurat

    de mediul de programare Visual Basic), n special; iniierea n folosirea sistemului de

    gestiune a bazelor de date Microsoft Access, ca baz pentru continuarea de ctre

    studeni a pregtirii n informatic, din anii de studii urmtori, prin cursurile de

    Proiectarea sistemelor informatice, Sisteme experti Audit informatic; cuprinderea

    unui numr ct mai diversificat de aplicaii economice complementare cursurilor

    economice.

    Cursul de fa conine capitole separate destinate aplicaiilor economicesimple n Visual Basic i Access, precum i un capitol pentru aplicaii economice

    complexe. Majoritatea aplicaiilor au detaliate algoritmul de calcul, schema

    logic, codul, formularul asociat, datele de intrarei rezultatele obinute, toate acestea

    constituind modele pentru ntocmirea, de ctre studeni, a proiectului prevzut ca

    obligatoriu n programa analitic a cursului. Au fost avute cu prioritate n vedere

    structurile de date, obiectele, structurile de control, instruciunile de intrare/ieire,

    procedurile de baz, unitile standard, elementele specifice ale mediului integrat de

    dezvoltare Visual Basic. Toate acestea sunt utile att pentru nsuirea bazelor acestui

    limbaj de programare, ct i pentru folosirea ulterioar, cu particularitile existente,n cadrul sistemului de gestiune a bazelor de date Microsoft Access. Sunt prezentate i

    cteva elemente de bazale limbajului SQL.

    Prin ntregul su coninut, lucrarea este util i pentru pregtirea

    examenului de licen, motiv pentru care, n finalul acesteia, au fost cuprinse i

    cteva exemple de teste-gril.

    Autorii, 2007

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    8/236

    8

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    9/236

    9

    1.VISUAL BASIC

    APLICAII REZOLVATE

    Aplicaia 1.1

    Se cere s se realizeze un program pentru calculul profitului brut cadiferenntre venituri i cheltuieli, a profitului impozabil, a celui net, precum idividendele acordate la un agent economic.

    Algoritm de calcul

    Formularul dispune de dou butoane de comand: un buton pe care seinscripioneazDemarare program; un buton care dispune de interfaa Parasireprogram.

    Se introduc de la tastatururmtoarele date: denumire societate; veniturileobinute i cheltuielile efectuate.

    Valorile variabilelor de lucru i finale se calculeazcu formulele (1.1) i (1.2).

    Profit brut = Venituri Cheltuieli;

    Fond de rezerv= 5% * Profit brut

    Profit impozabil = Profit brut Fond de rezerv (1.1)Impozit pe profit = 38% * Profit impozabil

    Profit net = Profit impozabil Impozit pe profit

    La repartizare:

    Profit pentru dezvoltare = 50 % * Profit Brut

    Profit pentru consum = Profit net Profit pentru dezvoltare (1.2)Impozit pe dividende = 10 % * Profit repartizat pentru consumDividende = Profit repartizat pentru consum Impozit pe dividende

    Se afieazprin casetde mesaj:Profit brut; Profit Impozabil; Impozit pe profit; Profit net; Profit repartizat

    pentru consum; Dividende acordate.

    Se afieaz n formular toate informaiile care au fost vizualizate princasetde mesaj.

    Schema logicaferentacestui exemplu este prezentatn fig.1.1.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    10/236

    10

    Fig.1.1. Schema logicpentru aplicaia 1.1

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    11/236

    11

    Date de intrareDen_soc StringVen VariabilChe VariabilCalcule Prof_brut=Ven-CheFond_dezv=Prof_brut*5% Prof_impoz=Prof_brut-Fond_dezvImpoz=Prof_impoz*38% Prof_net=Prof_impoz-ImpozRep_dez=Prof_brut*50% Rep_cons=Prof_net-Rep_dezDivid=Rep_cons-(Rep_cons*10%)Date de ieire Prof_netProf_brut Prof_impozImpoz Divid

    Secvena de instruciuni n Visual Basic care determinrezolvarea cerinelordin enuneste urmtoarea:

    Dim den_soc As String

    Dim ven As Variant

    Dim che As Variant

    Dim prof_brut As Variant

    Dim fond_dez As Variant

    Dim impoz As Variant

    Dim prof_impoz As Variant

    Dim prof_net As Variant

    Dim rep_dez As Variant

    Dim rep_cons As Variant

    Dim impoz_divid As Variant

    Dim divid As Variant

    Private Sub Buton1_Click()

    den_soc = InputBox("Tastati denumirea societatii")

    ven = InputBox("Tastati suma veniturilor obtinute de societate")

    che = InputBox("Tastati suma cheltuielilor efectuate de societate")

    prof_brut = ven-he

    MsgBox ("Profitul brut obtinut este de:" + Str(prof_brut)), 64

    fond_dez = prof_brut * 5 / 100prof_impoz = prof_brut-fond_dez

    MsgBox ("Profitul impozabil este de:" + Str(prof_impoz))impoz = prof_impoz * 38 / 100

    MsgBox ("Impozitul pe profit (38%) este de:" + Str(impoz))

    prof_net = prof_impoz - impoz

    MsgBox ("Profitul net obtinut este de:" + Str(prof_net)), 64

    rep_dez = prof_brut * 50 / 100

    rep_cons = prof_net - rep_dezMsgBox ("Profitul repartizat pentru consum este de:" + Str(rep_cons)), 64

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    12/236

    12

    impoz_divid = rep_cons * 10 / 100

    divid = rep_cons - impoz_divid

    MsgBox ("Dividendele acordate sunt de:" + Str(divid)), 64

    Print " S I T U A T I E C A L C U L "

    Print " -------------------------------"

    Print " "

    Print "******************************************"

    Print "* Denumire societate *", den_soc

    Print "__________________________________________"

    Print "Profit brut : ", prof_brut

    Print "Profit impozabil :", prof_impoz

    Print "Impozit pe profit:", impoz

    Print "Profit net: ", prof_net

    Print "Dividende : ", dividEnd Sub

    Private Sub Buton2_Click()

    End

    End Sub

    Rezultatul execuiei formularului Calcul profit i dividendeeste prezentat nfig.1.2.

    Fig.1.2. Rezultatul execuiei formularului Calcul profit i dividende

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    13/236

    13

    Aplicaia 1.2

    Casierul unei bnci trebuie s elibereze unei persoane suma suma(exprimatn lei). Sse determine numrul de bancnotede 500.000 lei, 100.000lei, 50.000 lei, 10.000 lei i 2.000 lei i restul de sumn monede diverse.

    Algoritm de calcul

    Tipurile de bancnote se vor grupa ntr-o mulime (m) cu 6 elemente, iarnumrul de bancnote ce trebuie pltit de casier n mulimea (nr_m) tot cu 6elemente.

    Se mparte suma iniialde plat(suma) la primul tip de bancnot(m(1)).Restul de plat (suma_curenta) se va mpri succesiv la fiecare tip de bancnot(m(i)) (relaiile (1.3), (1.4)). Se folosete \ deoarece este necesar obinereaseparata ctului i restului.

    nr_m(i) = suma_curenta \ m(i) (1.3)suma_curenta = suma_curenta - nr_m(i) * m(i) (1.4)

    Se realizeaz un formular (frmPlata) cu dou butoane de comand(fig.1.4): PLATA SUMEI (Caption) pentru procedura de calcul i afiare anumrului de bancnote (cmdPlata) i pentru ieirea din program (cmdIesire).Obiectele adugate n formular sunt prezentate n tabelul urmtor:

    Obiect Proprieti Evenimente

    Formular (Form) Name: frmPlata

    Caption: PLATA SUMEI

    -

    Buton de comand(Command Button) Name: cmdPlataCaption: Plata

    Click

    Buton de comand(Command Button) Name: cmdIesireCaption: Iesire

    Click

    Caseta de text (Text Box) Name: txtSumaEtichete (Labels) Caption: Suma de plataCasete de text (Text Box) -6 Name: txtXEtichete (Labels) - 6 Caption: Bancnote de... lei

    Dupdeclararea variabilelor de lucru ce reprezintdate de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare din casete-text dinformular, iar mulimea tipurilor de bancnote (m) se completeaz cu valorileacestora (500.000 lei, 100.000 lei, 50.000 lei, 10.000 lei 2.000 lei). Iniial, numrulde bancnote din fiecare tip este egal cu 0 (nr_m(i)=0).

    Pentru calculul i afiarea rezultatelor n casete-text se folosete o structurde control repetitivde tipul For Next.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul decalcul de mai sus este prezentatn fig. 1.3.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    14/236

    14

    Fig. 1.3. Schema logicpentru rezolvarea aplicaiei 1.2

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    15/236

    15

    Procedurile cmdPlata_Click()i cmdIesire_Click()sunt urmtoarele:

    Private Sub cmdPlata_Click()

    declararea variabilelor de lucruDim suma As Double

    Dim m(6) As Double

    Dim nr_m(6) As Double

    Dim suma_curenta As Double

    introducerea datelor de intrare

    suma = txtSuma.Text

    se initializeaza multimea tipurilor de bancnote si a numarului acestora

    m(1) = 500000

    m(2) = 100000

    m(3) = 50000

    m(4) = 10000

    m(5) = 2000

    m(6) = 1

    For i = 1 To 6

    nr_m(i) = 0

    Next i

    se calculeaza numarul de bancnote din fiecare tip

    se utilizeaza o structura repetitiva de tip For Next

    suma_curenta = sumaFor i = 1 To 6

    nr_m(i) = suma_curenta \ m(i)

    suma_curenta = suma_curenta - nr_m(i) * m(i)

    se afiseaza in casete de text numarul de bancnote din fiecare tip

    txtX(i - 1).Text = nr_m(i)

    Next i

    End Sub

    Private Sub cmdIesire_Click()

    EndEnd Sub

    Data de intrare utilizatpentru obinerea rezultatelor din fig. 1.4 este:Suma=1956540.

    Algoritmul de calcul poate fi modificat astfel, nct numrul tipurilor de bacnote sfie variabil (se propune ca exerciiu).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    16/236

    16

    Fig. 1.4. Situaia de ieire pentru aplicaia 1.2

    Aplicaia 1.3

    O societate comercialdesface 50 de produse pentru care se cunosc ca datede intrare: codprod codul produsului, denprod denumirea produsului,cant cantitatea, pret preul. Secvena de program se refer la calculul valorii(valoare) pentru fiecare produs i afiarea pe ecran a acelor produse pentru carevaloare

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    17/236

    17

    Fig.1.5. Schema logicpentru aplicaia 1.3

    NU

    DA

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    18/236

    18

    ntregul program este asociat evenimentului clic pe butonul de comandcmdCalcul:

    Private Sub cmdCalcul_Click()

    Dim CODPROD As Single

    Dim DENPROD As String

    Dim CANT As IntegerDim PRET As Single

    Dim VALOARE As Single

    Print Tab(10); "*** PRODUSE CU VALOAREA MAI MICA DE 5,500,000 LEI ***"

    Print String(45, "=")

    Print Tab(2); "PRODUSUL"; Tab(33); "VALOAREA"

    Print String(45, "=")

    For I = 1 To 50

    CODPROD = InputBox("Introduceti codul produsului:")

    DENPROD = InputBox("Introduceti denumire produsului:")

    CANT = InputBox("Introduceti cantitatea:")

    PRET = InputBox("Introduceti pretul:")

    VALOARE = CANT * PRET

    If VALOARE < 5500000 Then

    Print Tab(2); DENPROD; Tab(33); VALOARE

    End If

    Next I

    Print String(45, "=")

    End Sub

    Rezultatele rulrii aplicaiei sunt prezentate n fig.1.6.

    Fig.1.6 Situaia de ieire pentru aplicaia 1.3

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    19/236

    19

    Aplicaia 1.4

    Sse stabileasccategoria de vrst(copil, adolescent, tnr, adult, btrn)a unui cetean, tiind data nateriii data curent.

    Datele de intrare sunt nume, prenume i data_n.

    Algoritm de calcul

    Modul de lucru al programului este urmtorul: pentru fiecare persoancreia se dorete s i se determine categoria de vrst se acioneaz butonulcmdCalcul. Codul asociat evenimentului clic al acestui buton determinintroducerea datelor, calcularea categoriei i incrementarea cu 1 a variabilei careine evidena totalului de persoane aflate n categoria respectiv(nc numr copii,na numr adolesceni, nt numr tineri, nad numr aduli, nb numr

    btrni). Deoarece intereseaz ca ntre dou apeluri ale procedurii Private SubcmdCalcul_Click()variabilele nc, na, nt, nad, nbs-i pstreze valorile, acestease declarcuStaticn loc deDim.

    Procedura Private Sub cmdStatistica_Click() (care se execut la

    acionarea butonului cu CaptionStatistic) calculeazprocentul de persoane pentrufiecare categorie de vrst, pe baza valorilor luate de variabilele nc1, na1, nt1,nad1, nb1. Aceste variabile sunt declarate n seciunea General Declarations, deci

    pot fi utilizate n orice modul al aplicaiei, spre deosebire de variabilele ale crorvalori le preiau lasfritulprocedurii evenimentPrivate Sub cmdCalcul_Click().A fost necesar introducerea variabilelor nc1, na1, nt1, nad1, nb1 deoarecevariabilele declarate cu Staticpot fi folosite numai n interiorul procedurii n careau fost declarate.

    Se calculeazpentru nceput vrsta n zile a fiecrei persoane ca diferen ntredata curent, returnatde funciaDate, i data naterii, introdusn variabila data_n:

    varsta = Date data_n(1.5)

    Vrsta n ani se obine prin mprirea vrstei calculate ca numr de zile la365 (neglijm anii biseci):

    varsta = varsta / 365. (1.6)Instruciunea Select Case care urmeaz selecteaz n funcie de variabila

    vrst categoria fiecrei persoane; apoi, se incrementeaz cu 1 una dintrevariabilele nc, na, nt, nad, nb,iar apoi se afieaz. n final, se transfervalorilevariabilelor nc, na, nt, nad, nbn nc1, na1, nt1, nad1, nb1pentru a le puteafolosi n afara procedurii.

    Urmtorul cod de program mrete suprafaa formularului, la fiecare acionare a

    butonului cmdCalcul, pnn momentul n care acesta depete 10.000:If Form1.Height > 10.000 Then Exit SubForm1.Height = Form1.Height + 250 formularul se mrete n jos cu 250 de

    puncte

    cmdCalcul.Top = cmdCalcul.Top + 250 butonul cmdCalcul este deplasat n jos

    cmdExit.Top = cmdExit.Top + 250

    cmdStatistica.Top = cmdStatistica.Top + 250unde Form1.Height nlimea formularului, iar cmdCalcul.Top distana ntre coluldin stnga sus al formularului i colul din stnga sus al butonului cmdCalcul.

    Schema logic e corespunztoare procedurii Private Sub cmdCalcul_Click()

    este prezentatn fig.1.7.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    20/236

    20

    Fig. 1.7. Schema logicpentru aplicaia 1.4.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    21/236

    21

    Procedurile Private Sub cmdCalcul_Click(),Private Sub cmdStatistica_Click(),Private Sub cmdExit_Click() i seciuneaGeneral Declarations:

    General Declarations

    Dim nc1 As Byte, na1 As Byte, nt1 As Byte, nad1 As Byte, nb1 As Byte

    Private Sub cmdCalcul_Click()

    'variabilele declarate cu "Static" nu pot fi declarate in sectiunea General

    Declarations

    'sunt vizibile doar in interiorul procedurii unde au fost declarate

    cmdStatistica.Enabled = True

    Static nc As Byte, na As Byte, nt As Byte, nad As Byte, nb As Byte

    Dim nume As String

    Dim prenume As String

    Dim data_n As Date

    Dim categorie As Stringnume = InputBox("Introduceti numele:", "Nume", "Popescu")

    prenume = InputBox("Introduceti prenumele:", "Prenume", "Ion")

    data_n = InputBox("Introduceti data nasterii in format :",

    "Data nasterii", "25.9.1978")

    varsta = Date - data_n

    'neglijam anii bisecti

    varsta = varsta / 365

    Select Casevarsta

    Case Is < 12

    categorie = "copil"

    nc = nc + 1

    Case Is < 16

    categorie = "adolescent"

    na = na + 1

    Case Is < 25

    categorie = "tanar"

    nt = nt + 1

    Case Is < 60

    categorie = "adult"nad = nad + 1

    Case Else

    categorie = "batran"

    nb = nb + 1

    End Select

    Print nume; Tab(25); prenume; Tab(50); categorie

    total = 0

    nc1 = nc

    na1 = nant1 = nt

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    22/236

    22

    nad1 = nad

    nb1 = nb

    If Form1.Height > 10000 Then Exit Sub

    Form1.Height = Form1.Height + 250

    cmdCalcul.Top = cmdCalcul.Top + 250

    cmdExit.Top = cmdExit.Top + 250

    cmdStatistica.Top = cmdStatistica.Top + 250

    End Sub

    Private Sub cmdExit_Click()

    Unload Me

    End Sub

    Private Sub cmdStatistica_Click()

    Cls

    total = nc1 + na1 + nt1 + nad1 + nb1

    Print "==========="

    Print "= Statistica ="

    Print "==========="

    Print "In cadrul colectivitatii dumneavoastra sunt:" & Chr(13) & _

    " -- " & Format(nc1 / total * 100, "fixed") & "% copii;" & Chr(13) &_" -- " & Format(na1 / total * 100, "fixed") & "% adolescenti;" & Chr(13) & _

    " -- " & Format(nt1 / total * 100, "fixed") & "% tineri;" & Chr(13) & _

    " -- " & Format(nad1 / total * 100, "fixed") & "% adulti;" & Chr(13) & _

    " -- " & Format(nb1 / total * 100, "fixed") & "% batrani," & Chr(13) & _"in total " & total & " persoane."

    Print String(40, "=")End Sub

    Rezultatele rulrii aplicaiei sunt prezentate n fig.1.8. i 1.9.

    Fig.1.8. Situaia de ieire 1 pentru aplicaia 1.4

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    23/236

    23

    Fig.1.9. Situaia de ieire 2 pentru aplicaia 1.4

    Aplicaia 1.5S se realizeze un program care spermita conversia n diferite valute a

    unei sume exprimate n lei.

    Algoritm de calculSe mparte suma n lei (suma_lei) la cursul valutar (curs) i se va obine

    suma n valut(suma_valuta) conform relaiei (1.7).

    suma_valuta = suma_lei / curs (1.7)

    Pentru conversia unei sume exprimate n valut (suma_valuta) iobinerea sumei corespunztoare n lei (suma_lei)se utilizeazformula:

    suma_lei=suma_valuta * curs (1.8)Se realizeazun formular cu doubutoane de comand(fig. 1.11): CURS

    VALUTAR (Caption) pentru procedura de calcul i afiare a sumei n valut(cmdConversie) i pentru ieirea din program (cmdIesire). Obiectele adugate nformular sunt prezentate n tabelul urmator:

    Obiect Proprieti EvenimenteFormular (Form) Name: frmConversie

    Caption: CURS VALUTAR-

    Buton de comand(Command Button) Name: cmdConversieCaption: Conversie

    Click

    Buton de comand(Command Button) Name: cmdIesireCaption: Iesire

    Click

    Casetde text (Text Box) Name: txtSLEtichete (Labels) Caption: Suma in leiCasetde text (Text Box) Name: txtSVEtichete (Labels) Caption: Suma in valutaCasetde text (Text Box) Name: txtCursEtichete (Labels) Caption: Curs valutarListderulant(List Box) Name: cmbValuta

    List: Dolar, EURO...Text: Valuta

    Buton de opiune (Option Button) Name: optLV

    Buton de opiune (Option Button) Name: optVL

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    24/236

    24

    START

    Citete suma_lei, curs

    suma_valuta = suma_lei / curs

    Afieazsuma_valuta

    STOP

    Utilizarea listei derulante asigurafiarea tuturor tipurilor de valute n carese poate efectua conversia sumei exprimate n lei.

    Pe formularul de lucru se introduc doubutoane de exprimare a opiunilorutilizatorului (optLV i optVL), care permit alegerea tipului de conversie: din lei nvalut(1.7) sau din valutn lei (1.8).

    Dupdeclararea variabilelor de lucru ce reprezintdatele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare din casete de textdin formular.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmulde calcul de mai sus este prezentatn fig. 1.10.

    Fig. 1.10. Schema logicpentru rezolvarea aplicaiei 1.5

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    25/236

    25

    Procedurile cmdConversie_Click()i cmdIesire_Click()sunt urmtoarele:

    Private Sub cmdConversie_Click()

    declararea variabilelor de lucru

    Dim suma_lei As Double

    Dim curs As Double

    Dim suma_valuta As Double

    If optLV.Value = True Then

    suma_lei = txtSL.Text

    curs = txtCurs.Text

    suma_valuta = suma_lei / curstxtSV.Text = suma_valuta

    Else

    If optVL.Value = True Then

    suma_valuta = txtSV.Text

    curs = txtCurs.Text

    suma_lei = suma_valuta * curs

    txtSL.Text = suma_lei

    End If

    End If

    End Sub

    Private Sub cmdIesire_Click()

    End

    End Sub

    Datele de intrare utilizate pentru obinerea rezultatelor din fig. 1.11. sunt:suma_lei=250.000, curs=36.549.

    Se propune, ca exerciiu, s se modifice algoritmul de calcul i schemalogic, astfel nct programul s realizeze tabelarea a zece sume convertite(numr curent nrcrt, suma n lei slei, suma n valut svaluta,tip valut tval, curs valutar cval).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    26/236

    26

    Fig. 1.11. Situaia de ieire pentru aplicaia 1.5

    Aplicaia 1.6

    Se cere s se realizeze un program pentru calculul cifrei de afaceri a uneisocieti. Programul va realiza selecia societilor comerciale n funcie de cifra deafaceri i de rata profitului, ntr-o prim faz, i apoi n funcie de rata profitului

    raportat la cifra de afaceri, n a doua faz. Se vor afia doar societile carendeplinesc cumulativ urmtoarele condiii: cifra de afaceri > 1.520.000.000;

    profit > 500.000.000 i rata profitului > 40%.

    Algoritm de calcul

    Formularul dispune de dou butoane de comand: un buton pe care seinscripioneaz Obinere Situaie; un buton care dispune de interfaa Prsireprogram. Se introduc de la tastatururmtoarele date: denumire societate; cifra

    de afacerii profitul obinut.Se calculeazrata profitului cu urmtoarea formul:

    Rata profitului = Profit / Cifra de afaceri (1.9)

    Se folosesc structuri alternative de tip If...Then...Else...End If. Seutilizeazafiarea n formular i prin caseta de mesaj.

    Schema logicaferentacestui exemplu este prezentatn figura 1.12.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    27/236

    27

    Fig.1.12. Schema logicaferentaplicaiei 1.6

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    28/236

    28

    Declarare variabileDen_soc ir de caractereCA VariabilProfit VariabilRata_pr VariabilDate de intrareDen_soc StringCA VariabilProfit VariabilCalculeRata_pr=Profit/CADate de ieire CAProfit Rata_pr

    Secvena de instruciuni n Visual Basic care determinrezolvarea cerinelordin enuneste urmtoarea:

    Dim Den_soc As String

    Dim CA As Variant

    Dim Profit As Variant

    Dim Rata_pr As Variant

    Private Sub situatie_Click()

    Den_soc = InputBox("Introduceti denumirea societtii")

    CA = InputBox("Introduceti cifra de afaceri")

    Profit = InputBox("Introduceti profitul realizat de societate")

    If (CA < 1520000000) And (Profit < 500000000) Then

    MsgBox "Nu ne intereseaz", 64, "Importanta economic"Else

    MsgBox "Societatea" + Den_soc + "Prezint important", 64, "Importanta economic"

    Rata_pr = Profit / CA

    If Rata_pr < 0.4 Then

    MsgBox "Societatea prezint o rat mic a profitului", 64, "Rata profit"

    Else

    MsgBox "Societatea important", 64, "Rata profit"

    Print "Societatea: ", Den_soc

    Print "*****************************************"

    Print "Cifra de afaceri este:", CA

    Print "Profitul obtinut este:", ProfitPrint "Rata profitului este:", Rata_pr * 100; "%"

    End If

    End If

    End Sub

    Private Sub iesire_Click()

    End

    End Sub

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    29/236

    29

    Rezultatul execuiei aplicaiei este prezentat n figura 1.13.

    Fig.1.13. Rezultatul execuiei aplicaiei 1.6

    Aplicaia 1.7

    S se realizeze selecia societilor comerciale (denumire) n funcie decifra de afaceri, CA(>2 miliarde) i de rata profitului, rata_p(>45%).

    Algoritm de calcul

    Programul accept ca date de intrare denumirea societii comerciale

    (denumire), cifra de afaceri (CA) i rata profitului (rata_p) pentru o societatecomercial. Dac rata profitului este mai mare de 45 i cifra de afaceri depetedou miliarde, societatea este considerat corespunztoare, iar datele respectivesunt memorate n "D:\coresp.txt", fiier deschis cu numrul 1 la ncrcareaformularului (evenimentul Form_Load); altfel, datele sunt memorate n fiieruldeschis cu numrul 2, adic "D:\nucoresp.txt".

    Interfaa aplicaiei (formularul) cuprinde, pe lng controalele dejamenionate, i un control de tipRichTextBoxn care este ncrcat unul dintre celedou fiiere (reprezentnd societile care corespund, respectiv pe cele care nu

    corespund), dup cum este acionat butonul de comandcmdDa

    (Caption:Societi care corspund criteriului) sau cmdNu (Caption: Societi care NUcorespund criteriului), aa cum se prezintn fig.1.14.

    De exemplu, butonul cmdDaare asociat urmtorul cod:

    Private Sub cmdDA_Click()

    Close #1

    'pentru a-i afisa continutul, fisierul trebuie sa fie inchis

    RichTextBox1.FileName = "D:\coresp.txt"

    Open "D:\coresp.txt" For Append As #1

    End Sub

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    30/236

    30

    Pentru afiarea coninutului unui fiier ntr-un control de tip RichTextBoxeste necesar ca fiierul sfie nchis (Close #1). Proprietatea FileNamese referlaun ir de caractere care indic numele i calea ctre fiierul dorit. Dup afiareaconinutului, fiierul poate fi redeschis, pentru adugarea de noi societicomerciale.

    Codul asociat evenimentului Load al formularului se execut primul(Private Sub Form_Load). Pentru includerea controluluiRichTextBoxn bara deinstrumente se execut urmtoarea succesiune de comenzi: meniul

    Project/Components(la fel ca la aplicaia 1.21).n continuare, este prezentat codul de program. Liniile considerate

    deosebite au fost completate cu comentarii.

    Private Sub cmdDA_Click()

    Close #1

    'pentru a-i afisa continutul, fisierul trebuie sa fie inchis

    RichTextBox1.FileName = "D:\coresp.txt"Open "D:\coresp.txt" For Append As #1

    End Sub

    Private Sub cmdExit_Click()

    descarca din memorie formularul curent, declansand si toate evenimentele de

    inchidere

    spre deosebire de end

    Unload Me

    End Sub

    Private Sub cmdGoleste_Click()

    casetele de text sunt deblocate: este permisa editarea lor

    txtDenumire.Locked = False

    txtCA.Locked = False

    txtRP.Locked = False

    goleste continutul casetelor de text

    goleste

    End Sub

    Private Sub cmdNU_Click()

    Close #2

    RichTextBox1.FileName = "D:\nucoresp.txt"

    Open "D:\nucoresp.txt" For Append As #2

    End Sub

    Sub goleste()

    txtDenumire = " "

    txtCA = " "

    txtRP = " "

    End Sub

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    31/236

    31

    Private Sub cmdSave_Click()

    If Val(txtCA) > 2000000000 And Val(txtRP) > 45 Then

    Print #1, txtDenumire, " ", txtCA, " ", txtRP

    ElsePrint #2, txtDenumire, " ", txtCA, " ", txtRP

    End If

    txtDenumire.Locked = True

    txtCA.Locked = True

    txtRP.Locked = True

    goleste

    End Sub

    Private Sub Form_Load()

    la prima executie fisierul nu exista se trece peste aceast aroare, la linia

    urmtoare

    On Error Resume Next

    se sterg fisierele si se recreeaza la fiecare rulare a aplicatiei

    Kill "D:\coresp.txt"

    Kill "D:\nucoresp.txt"

    Open "D:\coresp.txt" For Append As #1

    Open "D:\nucoresp.txt" For Append As #2

    se tipareste antetul fisierului

    Print #1, "Denumire", " ", "CA ", _

    " ", "Rata_pr"Print #2, "Denumire", " ", "CA ", _

    " ", "Rata_pr"

    casetele de text sunt blocate: nu este permisa editarea lor

    txtDenumire.Locked = True

    txtCA.Locked = True

    txtRP.Locked = True

    End Sub

    Se propune, ca exerciiu, s se modifice algoritmul de calcul, astfel nctprogramul srealizeze selecia societilor comerciale n funcie de cifra de afaceri(CA) i de localitatea unde i are sediul societatea comercial(localitate).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    32/236

    32

    Fig.1.14. Situaia de ieire pentru aplicaia 1.7

    Aplicaia 1.8

    S se calculeze penalitile pentru plata furnizorilor la o societatecomerciali suma de platpe factura majorat, tiind valoarea iniiala facturilori numrul zilelor de ntrziere pentru fiecare dintre facturi. Penalitile secalculeazastfel: pnla 15 zile ntrziere 5%, ntre 15 i 30 de zile 8%, peste

    30 de zile 10%.

    Algoritm de calcul

    Informaiile despre facturi se vor grupa n mulimi cu nelemente, n carenreprezintnumrul de facturi:

    numrul i seria facturii: nr_serie(i); numrul de zile: nr_Zile(i); valoarea facturii: Valf(i); suma penalitilor pentru fiecare factur: SumaP(i).

    Pentru adugarea de date seacioneazacest buton caredescuie casetele de text (leface editabile)

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    33/236

    33

    Formula de calcul a penalitilor pentru fiecare factur (SumaP(i)), n

    funcie de numrul de zile (nr_zile(i)), valoarea facturii (Valf(i)) i de procentulaplicat este:

    SumaP(i) = Valf(i) + Valf(i) * procent / 100 (1.10)

    n care procentul va avea valorile 5, 8, 10, n funcie de numrul de zile dentrziere.

    Se va calcula suma total de plat (SumaPTotal) pentru toate facturile.Iniial aceast sumva avea valoarea 0, la care se vor aduga penalitile pentrufiecare factur.

    SumaPTotal = SumaPTotal + SumaP(i) (1.11)

    Se realizeaz un formular cu dou butoane de comand (fig.1.16):PENALITATI PENTRU PLATA FACTURILOR (Caption) pentru procedura decalcul i afiare a penalitilor (cmdPenalitati) i pentru ieirea din program(cmdIesire). Obiectele adugate n formular sunt prezentate n tabelul urmtor:

    Obiect Proprieti Evenimente

    Formular (Form) Name: frmPenalitatiCaption: PENALITATI

    PENTRU PLATAFACTURILOR

    -

    Buton de comand(Command Button)

    Name: cmdPenalitatiCaption: Calculeaza Penalitati

    Click

    Buton de comand(Command Button)

    Name: cmdIesireCaption: Iesire

    Click

    Dupdeclararea variabilelor de lucru ce reprezintdatele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare cu ajutorul caseteide introducere a textuluiInputBox().

    Pentru calculul i afiarea rezultatelor n formular, se folosete o structurde control repetitivde tipulForNext, n caren reprezinatnumrul de facturi.Pentru selectarea valorii procentului aplicat n funcie de numrul de zile, seutilizeazo structuralternativde tipul Select Case.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul decalcul de mai sus este prezentatn fig.1.15.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    34/236

    34

    Fig. 1.15. Schema logicpentru rezolvarea aplicaiei 1.8

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    35/236

    35

    Procedurile cmdPenalitati_Click()i cmdIesire_Click()sunt urmtoarele:

    Private Sub cmdPenalitati _Click()

    declararea variabilelor de lucru

    Dim n As Integer

    Dim nrserie(3) As String

    Dim Valf(3) As Double

    Dim SumaP(3) As Double

    Dim nrZile(3) As Integer

    Dim SumaPTotal As Double

    citirea datelor de intrare

    For i = 1 To 3

    nrserie(i) = InputBox("Introduceti numarul si seria facturii:")

    Valf(i) = InputBox("Valoarea facturii:")

    nrZile(i) = InputBox("Nr zile intarziere:")Next i

    calculul penalitatilor

    SumaPTotal = 0

    Print "Nr serie______Valoare_____Zile Intarziere____Penalitati"

    For i = 1 To 3

    Select CasenrZile(i)

    Case Is < 15

    SumaP(i) = Valf(i) + Valf(i) * 5 / 100

    Case 15 To 30

    SumaP(i) = Valf(i) + Valf(i) * 8 / 100

    Case Is >= 30

    SumaP(i) = Valf(i) + Valf(i) * 10 / 100

    End Select

    Print nrserie(i), Valf(i), nrZile(i), SumaP(i)

    SumaPTotal = SumaPTotal + SumaP(i)

    Next i

    Print "______________________________________________________"

    Print "Total penalizari:"; SumaPTotal

    End Sub

    Private Sub cmdIesire _Click()

    End

    End Sub

    Datele de intrare utilizate pentru obinerea rezultatelor din fig. 20.2 sunt:n=3,nr_serie(1)=R 123, valf(1)=10000, nr_zile(1)=5

    nr_serie(2)=RX 234, valf(2)=20000, nr_zile(2)=20nr_serie(3)=RX 345, valf(3)=30000, nr_zile(3)=35

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    36/236

    36

    Fig.1.16. Situaia de ieirepentru aplicaia 1.8

    Aplicaia 1.9

    S se afieze elementul maxim i elementul minim dintr-o mulime cereprezintnumrul de kilometri parcuri zilnic de un autoturism.

    Algoritm de calculElementul maxim (max) al unei mulimi se determinastfel:Iniial, se considermaximul egal cu primul element al mulimii:max=element(1) (1.12)Se parcurge mulimea ncepnd cu al doilea element, comparnd maximul

    cu fiecare element. Dac elementul curent este mai mare dect maximul atunciacesta va lua valoarea elementului. Se utilizeazrelaiile:

    Dacelement (i) > max, atunci max= element(i) (1.13)Elementul minim (min) al mulimii se determin n mod asemntor,

    conform relaiilor:Dacelement (i) < min, atunci min= element(i) (1.14)Se realizeazun formular cu doubutoane de comand(fig.1.18): MAXIM SI

    MINIM (Caption) i dou butoane de comand: pentru procedura de determinare amaximului, respectiv minimului (cmdMaxMin), i pentru ieirea din program(cmdIesire). Obiectele adugate n formular sunt prezentate n tabelul urmtor:

    Obiect Proprieti EvenimenteFormular (Form) Name: frmMaxMin

    Caption: MAXIM SI MINIM-

    Buton de comand(Command Button)

    Name: cmdMaxMinCaption: CalculeazMaximuli Minimul

    Click

    Buton de comand(Command Button)

    Name: cmdIesireCaption: Iesire

    Click

    Dupdeclararea variabilelor de lucru ce reprezintdatele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare cu ajutorul caseteide introducere a textuluiInputBox().

    Pentru parcurgerea elementelor mulimii se folosete o structurde controlrepetitivde tipul For Next, n caren reprezinatnumrul de elemente. Pentrucomparearea elementelor cu max, respectiv min, se utilizeaz o structuralternativde tipulIf Then Else.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul decalcul de mai sus este prezentatn fig.1.17.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    37/236

    37

    Fig. 1.17. Schema logicpentru rezolvarea aplicaiei 1.9

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    38/236

    38

    Procedurile cmdMaxMin_Click()i cmdIesire_Click() sunt urmtoarele:Private Sub cmdIesire_Click()EndEnd Sub

    Private Sub cmdMaxMin_Click()Dim n As Integer

    Dim element(10) As Single

    Dim max As SingleDim min As Singlen = InputBox("Numarul de elemente:")

    For i = 1 To nelement(i) = InputBox("Elementul:")

    Print element(i)Next imax = element(1)min = element(1)

    For i = 2 To nIf element(i) > max Then

    max = element(i)Else

    If element(i) < min Thenmin = element(i)

    End IfEnd If

    Next iPrintPrint "Maximul este:"; maxPrint "Minimul este:"; minEnd Sub

    Datele de intrare utilizate, precum i rezultatele obinute sunt prezentate n fig.1.18.

    Fig. 1.18. Situaia de ieire pentru aplicaia 1.9

    Aplicaia 1.10

    Se cere sse ntocmeascun program n Visual Basicpentru calculul salariuluimediu i al abaterilor specifice pentru fiecare salariat al agentului economic.

    Numrul de salariai al fiecrei secii este de 10.

    Rezolvare

    Schema logicaferentacestui exemplu este prezentatn figura 1.19.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    39/236

    39

    Fig.1.19. Schema logicaferentaplicaiei 1.10

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    40/236

    40

    Secvena de instruciuni n Visual Basic care determinrezolvarea cerinelordin enuneste urmtoarea:

    Dim Salariu(10) As Long

    Dim Abatere(10) As Long

    Dim Media As LongDim Suma As Long

    Dim Marca(10) As String

    Dim Nume(10) As String

    Dim I As Byte

    Private Sub cmdafis_Click()

    Cls

    Print "________________________________________________"

    Print "NR NUME SI PRENUME SALARIUL ABATERE"

    Print "________________________________________________"

    For I = 1 To 10

    Print I, Nume(I), " "; Salariu(I), Abatere(I)

    Next I

    Print "________________________________________________"

    Print " TOTAL SALARII:", Suma

    End Sub

    Private Sub cmdintro_Click()

    Suma = 0

    For I = 1 To 10

    Marca(I) = InputBox("Marca salariatului" + Str(I))

    Nume(I) = InputBox("Numele si prenumele salariatului" + Str(I))

    Salariu(I) = InputBox("Salariul tarifar al angajatului" + Str(I))

    Suma = Suma + Salariu(I)

    Next I

    Media = CLng(Suma / 10)

    MsgBox ("Salariul mediu este " + Str(Media))

    For I = 1 To 10

    Abatere(I) = Salariu(I) - Media

    NextEnd Sub

    Private Sub sfr_Click()

    End

    End Sub

    Rezultatul execuiei formularului Calcul salariu i abateri este prezentat nfigura 1.20.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    41/236

    41

    Fig.1.20. Rezultatul execuiei formularului

    Calcul salariu i abateri din aplicaia 1.10

    Aplicaia 1.11

    O societate comercialvinde un numr de 20 produse zilnic, timp de 5 zile. Sedorete aflarea mediei valorii vnzrilor pe fiecare zi. Se cunosc ca date de intrare:CODP codul produsului, DENP denumirea produsului, VALP valoarea

    produsului.

    Algoritm de calcul

    n acest program se folosesc dou structuri repetitive, dintre care una seafl n interiorul celeilalte (structuri repetitive imbricate). Prima structur este detipul DoLoop Until, fiind deci condiionat posterior, ceea ce nseamn c seexecut cel puin o dat. Aceast structur este folosit pentru a ine evidenazilelor. Cea de-a doua structur repetitiv este de tipul ForNext i se refer lacele 20 de produse vndute zilnic.

    Variabila TOTP conine totalul valoric al produselor vndute ntr-o zi:

    TOTP = TOTP + VALP (1.15)

    iar variabila TOTALM este media valorilor vnzrilor pe zi, indiferent de produs.

    TOTALM=TOTP/j, unde j=20 de produse (1.16)

    n acest caz, VALPnu mai constituie datde ieire (nu mai este calculatpe baza cantitii i preului), ci este datde intrare.

    Schema logiceste prezentatn fig.1.21.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    42/236

    42

    Fig.1.21. Schema logicpentru aplicaia 1.21

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    43/236

    43

    Prelucrarea se execut ca urmare a acionrii unui clic pe butonulcmdCalcul(Caption Vnzri)

    Private Sub cmdCalcul_Click()Dim CODP As SingleDim DENP As StringDim VALP As Double 'valoarea produsuluiDim TOTP As Double 'total produsDim TOTALM As Double 'vanzarea medie zilnica pe toate produseleDim i As BytePrint Tab(10); "VANZARILE MEDII ZILNICE"Print String(35, "=")i = 1

    DoTOTP = 0

    For j = 1 To 20CODP = InputBox("Introduceti codul produsului:", "Ziua " _

    & i & ", " & "produsul " & j)DENP = InputBox("Introduceti denumirea produsului:", _"Ziua " & i & ", " & "produsul " & j)VALP = InputBox("Introduceti valoarea:", "Ziua " & i & _", " & "produsul " & j)TOTP = TOTP + VALP

    Next jTOTALM = TOTP / j

    Print Tab(2); "ZIUA " & i; Tab(15); Format(TOTALM, "STANDARD")i = i + 1

    Loop Until i > 5

    Print String(35, "=")End Sub

    Situaia de ieire este prezentatn fig.1.22.

    Fig.1.22. Situaia de ieire pentru aplicaia 1.11

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    44/236

    44

    Aplicaia 1.12

    S se ntocmeascstatul de plata salariului net (sal_net) pentru angajaiiunei societi comerciale (fiecare angajat se identificprin marca), tiind salariul

    brut (sal_brut) i impozitul (impozit) ce se calculeaz conform cu grila deimpozitare n vigoare la data ntocmirii statului de salarii (data_intocm).

    Algoritm de calculPentru stabilirea impozitului fiecrui angajat se va utiliza o gril de

    salarizare n trei trepte, cu limitele L1, L2, L3, astfel:DacSB

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    45/236

    45

    Fig. 1.23. Schema logicpentru rezolvarea aplicaiei 1.12

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    46/236

    46

    Procedurile cmdSalarii_Click()i cmdIesire_Click()sunt urmtoarele:Private Sub cmdSalarii_Click()declararea variabilelor de lucru

    Dim marca(5) As StringDim SB(5) As DoubleDim SN(5) As Double

    Dim P1 As DoubleDim P2 As DoubleDim P3 As DoubleDim L1 As DoubleDim L2 As DoubleDim L3 As Doublecitirea limitelor

    L1 = InputBox("Limita 1:")L2 = InputBox("Limita 2:")L3 = InputBox("Limita 3:")calcularea impozitului intermediar

    P1 = L1 * 0.18P2 = P1 + (L2 - L1) * 0.23P3 = P1 + P2 + (L3 - L2) * 0.34Print "Marca---Salariul brut---Salariul net---"For i = 1 To 5

    citirea datelor despre salariatimarca(i) = InputBox("Marca salariatului:")SB(i) = InputBox("Salariul Brut:")calculul salariului netSelect CaseSB(i)

    Case Is L3SN(i) = SB(i) - P1 - P2 - P3 - (SB(i) - L3) * 0.4

    End Selectafisarea rezultatelorPrint " "; marca(i); " "; SB(i); " "; SN(i)

    Next iEnd Sub

    Private Sub cmdIesire_Click()EndEnd Sub

    Datele de intrare utilizate pentru obinerea rezultatelor din fig.1.24 sunt:L1=2.000.000L2=5.000.000L3=10.000.000n=5,marca(1)=M123, SB(1)= 1.800.000marca(2)=M234, SB(2)= 2.500.000marca(3)=M345, SB(3)= 5.700.000

    marca(4)=M456, SB(4)= 7.800.000marca(5)=M567, SB(5)= 15.000.000

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    47/236

    47

    Fig. 1.24. Situaia de ieire pentru aplicaia 1.12

    Aplicaia 1.13

    S se sorteze cresctor elementele unei mulimi ce reprezint mediancasrilor sptmnale (med) ale unei societi comerciale.

    Algoritm de calcul

    Pentru ordonarea valorilor mulimii, n ordine cresctoare, se procedeazastfel:

    se comparprimele douelemente ale mulimii, i, dacnu sunt n ordine cresctoare,atunci se inverseaz poziiile celor dou. Se compar urmtoarele dou elementenvecinate i se procedeazca mai sus, pnla parcurgerea ntregii mulimi. Algoritmulse reia de la nceput, pnse constatcnu mai sunt necesare schimbri ntre elementelemulimii. Pentru monitorizarea schimbrilor intervenite n mulime se utilizeaz ovariabilboolean (cu valori true/false) schimb. Dac ntre elementele mulimii s-au

    produs schimbri, atunci schimb=false, dacnu existmodificri, atunci schimb=true,deci mulimea este sortat. Algoritmul se reia att timp ct schimbe =false. Pentrurealizarea permutrilor elementelor se utilizeaz o variabil de transfer (t) ce reinevalorile primului element, dupcum urmeaz:

    t=med(i)

    med(i)=med(i+1) (1.19)med(i+1)=tSe realizeazun formular cu doubutoane de comand(fig.1.26): SORTARE

    (Caption) i doubutoane de comand: pentru procedura de determinare a maximului,respectiv minimului (cmdSortare), i pentru ieirea din program (cmdIesire).Obiectele adugate n formular sunt prezentate n tabelul urmtor:

    Obiect Proprieti EvenimenteFormular (Form) Name: frmSortare

    Caption: SORTARE-

    Buton de comand(Command Button) Name: cmdSortareCaption: Sortare

    Click

    Buton de comand(Command Button) Name: cmdIesireCaption: IesireClick

    Dupdeclararea variabilelor de lucru, ce reprezintdatele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare cu ajutorul caseteide introducere a textuluiInputBox().

    Pentru parcurgerea elementelor mulimii se folosete o structurde controlrepetitivde tipul For Next, n caren reprezinatnumrul de elemente. Deoarecealgoritmul se reia att timp ct se produc schimbri ntre elementele mulimii, seutilizeaz o structur repetitiv condiionat anterior de tipul: Do While, n carecondiia esteschimb=false.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul decalcul de mai sus este prezentatn fig.1.25.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    48/236

    48

    Fig. 1.25. Schema logicpentru rezolvarea aplicaiei 1.13

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    49/236

    49

    Procedurile cmdSortare _Click()i cmdIesire _Click() sunt

    urmtoarele:

    Private Sub cmdIesire_Click()

    End

    End Sub

    Private Sub cmdSortare_Click()

    Dim n As Integer

    Dim med(10) As Single

    Dim schimb As Boolean

    Dim t As Single

    Print

    Print "Medii studenti:"

    Print "_________________"n = InputBox("Introduceti numarul de studenti:")

    For i = 1 To n

    med(i) = InputBox("Media studentului:")

    Print med(i)

    Next i

    schimb = False

    Do While schimb = False

    schimb = True

    For i = 1 To (n - 1)

    If med(i) > med(i + 1) Then

    t = med(i)

    med(i) = med(i + 1)

    med(i + 1) = t

    schimb = False

    End If

    Next i

    Loop

    Print

    Print "Afisarea mediilor in ordine crescatoare:"Print "_________________________________________________"

    For i = 1 To n

    Print med(i)

    Next i

    End Sub

    Datele de intrare utilizate, precum i rezultatele obinute sunt prezentate n

    fig.1.26.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    50/236

    50

    Fig. 1.26. Situaia de ieire pentru aplicaia 1.13

    Aplicaia 1.14

    Sse ntocmeascun program pentru calculul dobnzii aferente unui depozitbancar n funcie de termenul de depunere.

    Varianta 1 de rezolvare:

    Datele de intrare sunt sumai termen(termenul de depunere), iar ca rezultatse obine dobnda. Se folosete o structur repetitiv de tip Do Loop i ostructuralternativde tipul Select Case.

    Schema logicaferentacestui exemplu este prezentatn fig.1.27.Se observcstructura repetitiveste frcontor condiionatanterior.

    Numrul tipurilor de depozite bancare este limitat la patru.Procedura ,,Introducere asigurintroducerea datelor de intrare, iar procedura

    ,,Calcul realizeazcalculul sumei actuale n funcie de tipul de depozit.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    51/236

    51

    Fig.1.27. Schema logicaferentExemplu calcul dobndcuvenit

    din aplicaia 1.14 (varianta 1)

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    52/236

    52

    Secvena de instruciuni n Visual Basic care determinrezolvarea cerinelordin enuneste urmtoarea:

    Dim Nr_cont As StringDim Nume As StringDim Prenume As String

    Dim Suma_dep As VariantDim Tip_Depozit As ByteDim R As Variant

    Private Sub execut_Click()R = InputBox("Doriti sa lucrati? (DA/NU)")While UCase(R) = "DA"GoSub IntrodGoSub Calcul

    R = InputBox("Mai Continuati? (DA/NU)")Wend

    MsgBox "pentru utilizarea acestui program", 64, "Colectivul de autori vamultumeste"

    End

    Introd:Nr_cont = InputBox("Tastati numarul contului")Nume = InputBox("Tastati numele deponentului")Prenume = InputBox("Tastati prenumele deponentului")Suma_dep = InputBox("Tastati suma depusa")

    DoTip_Depozit = InputBox("Tastati 1- depozit 1 luna; 2- depozit 3 luni; 3-

    depozit 6 luni sau 4- depozit 12 luni")Loop Until Tip_Depozit >= 1 And Tip_Depozit

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    53/236

    53

    Varianta 2 de rezolvare

    Algoritm de calcul

    Prelucrarea se condiioneaz n sensul c se execut numai dac secompleteazcorect datele de intrare ale problemei:

    If IsNumeric(txtSuma) And txtNrcont " " And txtNume " " Then

    irul de caractere introdus n caseta de text txtSuma trebuie s coninnumai caractere numerice; pentru verificare se folosete funcia IsNumeric, care

    returneazTruedaca argumentul este un numr i Falsen caz contrar. Celelaltecasete de text trebuie doar sfie completate (snu coninirul vid).Instruciunea Select Case execut diverse aciuni n funcie de valoarea

    luat de variabila termen: dac termen ia valoare 1 se aplic un procent dedobndde 21%, daceste 2, se aplic22% etc. Instruciunea Select Casepoate finlocuitprinIfThenElse.

    lblDobanda.Visible = True (A)

    txtDobanda.Visible = True (B)

    txtDobanda = dob (C)

    Proprietatea Visible a controalelor (etichete label, casete de text TextBox, butoane de comand CommandButton, casete combinate ComboBoxetc) permite afiarea sau inhibarea afirii la execuie a controalelor respective. ncazul de fa, n timpul proiectrii proprietatea Visible a fost setat la valoarealogic FALSE, deci eticheta lblDobanda i caseta de text txtDobanda nu suntvizibile pe suprafaa formularului dect dupacionarea butonului cmdCalcul, peevenimentul su clic fiind ataate, printre altele, i liniile de mai sus (A),(B).

    Etichete lblDobanda i caseta de text txtDobanda sunt folosite pentruafiarea rezultatului, adic a sumei dobnzii. Proprietatea.Text a controluluiTextBoxeste implicit: dacnu se completeaznici o proprietate, se considercafost referitproprietatea text, deci linia urmtoare este echivalentcu (C):TxtDobanda.Text = dob

    Schema logica aplicaiei 1.14 (varianta 2) este prezentatn fig.1.28.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    54/236

    54

    Fig.1.28. Schema logicpentru aplicaia 1.14 (varianta 2)

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    55/236

    55

    Primele trei linii de cod de mai jos aparin seciunii General Declarations;

    n continuare, sunt listate procedurile eveniment Private Sub cmdCalcul_Click()i Private Sub cmdExit_Click():

    Dim suma As Double

    Dim termen As Byte

    Dim dob As Double

    Private Sub cmdCalcul_Click()

    If IsNumeric(txtSuma) And txtNrcont " " And txtNume " " Then

    suma = Val(txtSuma)

    termen = Val(cboTermen.Text)

    Select Casetermen

    Case 1

    dob = (suma * 21 / 100) * 1 / 12Case 3

    dob = (suma * 22 / 100) * 3 / 12

    Case 6

    dob = (suma * 23 / 100) * 6 / 12

    Case Else

    dob = suma * 24 / 100

    End Select

    lblDobanda.Visible = True

    txtDobanda.Visible = True

    txtDobanda = dob

    Else

    MsgBox "Nu ati completat corect!", vbOKOnly, "Atentie!"

    End If

    End Sub

    Private Sub cmdExit_Click()

    Unload Me

    End Sub

    Situaia de ieire pentru aplicaia 1.14 (varianta 2 de rezolvare) esteprezentatn fig.1.29.

    Se propune, ca exerciiu, s se modifice algoritmul de calcul, astfel nctnivelul dobnzilor acordate pentru depozitele constituite s fie variabil (s fieintrodus ca datde intrare).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    56/236

    56

    Fig.1.29. Situaia de ieire pentru aplicaia 1.14 (varianta 2)

    Aplicaia 1.15

    Programul urmrete stabilirea TVA (structurrepetitivde tip For-Next). Pebaza datelor de intrare (cantitate i pre) se va calcula, unde este cazul, TVA i seva ntregi valoarea. Se utilizeaz structura repetitivForNext care testeazcondiia C, unde C reprezint situaia Da sau Nu pentru existena TVA-ului

    printr-o structur alternativIf...Then...Else...End If. Rezultatul prelucrrii esteafiiat ntr-un fiier TVA.DAT.

    Schema logicaferentacestui exemplu este prezentatn fig.1.30.

    Se observ c numrul de produse N este interactiv i este verificat npermanenpentru situaia i < N, unde variabila i reprezintun contor.

    n continuare se testeazdacvariabila C are valoarea ,,Da (se calculeazTVA) sau ,,Nu (produsul este scutit de TVA).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    57/236

    57

    Fig.1.30. Schema logicaferentStabilire TVA din aplicaia 1.15

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    58/236

    58

    Declarare variabileDen_prod VariabilPret VariabilCant VariabilC ir de caractereVal VariabilI Numr ntreg

    N Numr ntregTVA VariabilData Ora de introducereDate de intrare

    N NumrDen_prod Denumire produsC Caz pentru Tva Da/NuPret Pret

    Cant CantitateCalculeVal = Cant * Pret Tva = Val * 19 %Val = Val + TvaDate de ieireDen denumire Pret pretul produsuluiCant cantitate Val valoare

    Secvena de instruciuni n Visual Basic care determinrezolvarea cerinelordin enuneste urmtoarea:

    Dim Den_prod As String

    Dim Pret As Variant

    Dim Cant As Variant

    Dim C As String * 2

    Dim Val As Variant

    Dim I As Integer

    Dim N As Integer

    Dim Tva As Variant

    Dim Data As DatePrivate Sub Command1_Click()

    Open "c:\tva.dat" For Append As #1

    Print #1, "*************************************************"Data = Date

    Print #1, " Situatia la data de" + Str(Data)

    Print #1, "*************************************************"

    Print #1, "* Denumire * Pret * Cantitate * Valoare *"

    Print #1, "*--------------*--------*---------------*--------------*"

    N = InputBox("Tastati numarul de produse")For I = 1 To (N + 1)

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    59/236

    59

    If I = N + 1 Then

    End

    Else

    Den_prod = InputBox("Denumirea produsului" + Str(I))

    C = InputBox("Produsului i se aplica Tva (DA/NU)")

    If UCase(C) = "DA" Then

    Pret = InputBox("Pretul produsului" + Den_prod)

    Cant = InputBox("Cantitatea produsului" + Den_prod)

    Val = Cant * Pret

    MsgBox ("Valoarea produsului" + Den_prod + "Fara Tva este:" + Str(Val)),

    vbOKOnly

    Tva = Val * 19 / 100

    Val = Val + Tva

    MsgBox ("Valoarea produsului" + Den_prod + "cu Tva este:" + Str(Val))

    Else

    Pret = InputBox("Pretul produsului" + Den_prod)Cant = InputBox("Cantitatea produsului" + Den_prod)

    Val = Cant * Pret

    MsgBox ("Valoarea produsului" + Den_prod + " este:" + Str(Val))

    End If

    End If

    10 Next

    Afisari:

    Print #1, Den_prod; " "; Pret; " "; Cant; " "; Val

    GoTo 10

    Close #1

    End Sub

    Private Sub Command2_Click()

    End

    End Sub

    Rezultatul execuiei formularului Stabilire TVA este prezentat nfigura 1.31.

    Fig.1.31. Rezultatul execuiei formularului Stabilire TVA din aplicaia 1.15

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    60/236

    60

    Aplicaia 1.16

    Pentru o grupformatdin 20 de studeni sse calculeze media pe fiecarestudent n parte i media pe grup, cunoscnd: CODS Codul studentului,

    NUME Numele i prenumele studentului, NOTA 1 Nota la examenul 1,NOTA2Nota la examenul 2 i NOTA3Nota la examenul 3.

    Algoritm de calcul

    Pentru fiecare dintre cei 20 de studeni ai grupei se introduc 3 note(NOTA1, NOTA2 i NOTA3) pe baza crora se calculeazmedia care este imediatafiat. Media tuturor studenilor se nsumeaz n variabila MEDIEGR carempritla 20 reprezintmedia grupei.

    Secvena:

    Do

    ..

    ..

    ..

    ..

    Loop Until NOTA1 = 1 And NOTA2 =

    1 And NOTA3 = 1

    valideazdatele la introducere, n sensul cnu sunt acceptate dect valori ntre 1 i10 inclusiv pentru variabilele NOTA1, NOTA2 i NOTA3; instruciunile dininteriorul buclei se executcel puin o dat, datoritcondiionrii posterioare.

    Al doilea argument al instruciuniiInputBoxafieaztextul Notele suntde la 1 la 10!n bara de titlu a caseteiInputBox.

    NOTA1 = InputBox("Introduceti nota 1 pt studentul " & NUME & ":", "Notele sunt

    de la 1 la 10!")

    Exemplul este rulat pentru un numr de 4 studeni. Schema logic esteprezentatn fig.1.32.

    Se propune, ca exerciiu, modificarea algoritmului de calcul astfel nctprocentul de TVA sfie introdus de la tastatur.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    61/236

    61

    Fig.1.32. Schema logicpentru aplicaia 1.16

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    62/236

    62

    Procedurile Private Sub cmdCalcul_Click()i Private SubcmdExit_Click() sunt prezentate n continuare:

    Private Sub cmdCalcul_Click()

    Dim CODS As Integer, NUME As String, NOTA1 As Byte, _

    NOTA2 As Byte, NOTA3 As Byte, MEDIES As Single, _

    MEDIEGR As Single

    MEDIEGR = 0

    Print Tab(25); "SITUATIA NOTELOR PENTRU STUDENTII GRUPEI"

    Print String(55, "=")

    Print "COD"; Tab(10); "NUME"; Tab(35); "NOTA1"; Tab(45); "NOTA2";

    Tab(55); "NOTA3"; Tab(65); "MEDIA"

    For i = 1 To 20

    CODS = InputBox("Introduceti codul studentului:")NUME = InputBox("Introduceti numele studentului:")

    Do

    NOTA1 = InputBox("Introduceti nota 1 pt studentul " & NUME & ":", "Notele sunt

    de la 1 la 10!")

    NOTA2 = InputBox("Introduceti nota 2 pt studentul " & NUME & ":", "Notele sunt

    de la 1 la 10!")

    NOTA3 = InputBox("Introduceti nota 3 pt studentul " & NUME & ":", "Notele sunt

    de la 1 la 10!")

    Loop Until NOTA1 = 1 And NOTA2 =

    1 And NOTA3 = 1

    MEDIES = (NOTA1 + NOTA2 + NOTA3) / 3

    MEDIEGR = MEDIEGR + MEDIES

    Print CODS; Tab(10); NUME; Tab(35); NOTA1; Tab(45); NOTA2; Tab(55);

    NOTA3; Tab(65); Format(MEDIES, "fixed")

    Next i

    Print String(55, "=")

    Print "MEDIA GRUPEI"; Tab(65); MEDIEGR / 20

    Print String(55, "=")

    End Sub

    Private Sub cmdExit_Click()

    End

    End Sub

    n fig.1.33 este prezentatsituaia de ieire pentru 4 studeni (n loc de 20).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    63/236

    63

    Fig.1.33. Situaia de ieire pentru aplicaia 1.16

    Aplicaia 1.17

    S se ntocmeascstatul de plata salariului net (sal_net) pentru angajaiiunei societi comerciale (fiecare angajat se identificprin marca), tiind numrulorelor lucrate (nr_ore), salariul tarifar orar (sal_tarif) i impozitul (impozit) ce secalculeazconform cu grila de impozitare n vigoare la data ntocmirii statului desalarii (data_intocm).

    Algoritm de calcul

    Informaiile despre fiecare salariat se vor grupa n mulimi cu nelemente,n caren reprezinatnumrul de salariai:

    marca: marca(i); numrul de ore lucrate: nr_ore(i); salariul brut: SB(i); salariul net: SN(i).

    Se va calcula salariul brut al fiecrui angajat:

    SB(i) = nr_ore(i) * Sal_tarif (1.20)

    Pentru stabilirea impozitului fiecrui angajat se va utiliza o gril de

    salarizare n trei trepte cu limitele L1, L2, L3, astfel:

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    64/236

    64

    DacSB

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    65/236

    65

    Fig. 1.34. Schema logicpentru rezolvarea aplicaiei 1.17

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    66/236

    66

    Procedurile cmdSalarii_Click()i cmdIesire_Click()sunt urmtoarele:

    Private Sub cmdSalarii_Click()declararea variabilelor de lucru

    Dim marca(5) As StringDim nr_ore(5) As IntegerDim Sal_tarif As Double

    Dim SB(5) As DoubleDim SN(5) As DoubleDim P1 As DoubleDim P2 As DoubleDim P3 As DoubleDim L1 As DoubleDim L2 As DoubleDim L3 As Doublecitirea salariului tarifarSal_tarif = InputBox("Salariul tarifar orar:")citirea limitelor de impozitare

    L1 = InputBox("Limita 1:")L2 = InputBox("Limita 2:")L3 = InputBox("Limita 3:")calcularea impozitului intermediar

    P1 = L1 * 0.18P2 = P1 + (L2 - L1) * 0.23P3 = P1 + P2 + (L3 - L2) * 0.34PrintPrint "Salariul tarifar orar:"; Sal_tarifPrintPrint "Marca---Nr Ore---Salariul brut---Salariul net---"For i = 1 To 5

    citirea datelor despre salariatimarca(i) = InputBox("Marca salariatului:")nr_ore (i) = InputBox("Numarul de ore lucrate:")calcularea salariului brut si netSB(i) = nr_ore (i) * Sal_tarifSelect Case SB(i)

    Case Is = (L3 + 1)SN(i) = SB(i) - P1 - P2 - P3 - (SB(i) - L3) * 0.4

    End Selectafisarea rezultatelor

    Print " "; marca(i); " "; nr_ore(i); " "; SB(i); " "; SN(i) Next iEnd Sub

    Private Sub cmdIesire_Click()End

    End Sub

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    67/236

    67

    Datele de intrare utilizate pentru obinerea rezultatelor din fig.1.35 sunt:L1=2.000.000L2=5.000.000L3=10.000.000Sal_tarif=70.000n=5,marca(1)=M123, nr_ore(1)= 15marca(2)=M234, nr_ore (2)= 20marca(3)=M345, nr_ore (3)= 100marca(4)=M456, nr_ore (4)= 150marca(5)=M567, nr_ore (5)= 250

    Fig.1.35. Situaia de ieire pentru aplicaia 1.17

    Aplicaia 1.18

    Pentru o listcu 10 produse la care se aplic tva, sse calculeze i s seafieze, pentru fiecare produs, taxa pe valoarea adugat TVA i valoarea cu tva(ValCuTVA), tiind: codul produsului codpr, denumirea produsului denpr,cantitatea cant i preul unitarpret.

    Algoritm de calcul

    Soluia aleaspentru prezentarea rezultatelor aplicaiei folosete fiierele.Open "c:\tva.dat" For Append As #1 deschide fiierul tva.dat n cazul n careexist; dac nu exist l creeaz. Fiierul este primul deschis (#1). n el vor fiadugate cu ajutorul comenzii Print #1 valorile variabilelor dorite.Print #1, codp; " "; denp; " "; cant; " "; pret; " "; TVA; " "; ValCuTVA

    Este de menionat faptul cn cazul stocrii datelor n fiiere este posibilfolosirea instruciuni Tabpentru organizarea pe coloane.

    Schema logiceste prezentatn fig.1.36.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    68/236

    68

    Fig.1.36. Schema logicpentru aplicaia 1.18

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    69/236

    69

    Interfaa aplicaiei este format dintr-un formular pe care sunt amplasatedou butoane de comand (fig.1.37): cmdCalcul i cmdExit. Codul asociatevenimentelor clic pe aceste butoane este prezentat n continuare:

    Private Sub cmdCalcul_Click()

    Dim codp As Integer, denp As String, cant As Double, pret As Double

    Open "c:\tva.dat" For Append As #1

    Print #1, "Valoarea cu TVA"

    Print #1, String(80, "=")

    Print #1, "Cod Denumire Cantitate Pret TVA Valoare cu TVA "

    For i = 1 To 10

    codp = InputBox("Introduceti codul produsului:")

    denp = InputBox("Introduceti denumirea produsului:")

    cant = InputBox("Introduceti cantitatea:")

    pret = InputBox("Introduceti pretul:")

    TVA = cant * pret * 0.19ValCuTVA = cant * pret * 1.19

    Print #1, codp; " "; denp; " "; cant; " "; pret; " "; TVA; " "; ValCuTVA

    Next i

    Print #1, String(80, "=")

    End Sub

    Private Sub cmdExit_Click()

    Unload MeEnd Sub

    Fig.1.37.Interfaa aplicaiei 1.18

    Rezultatele rulrii programului sunt prezentate n fig.1.38.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    70/236

    70

    Fig.1.38. Situaia de ieire (fiierul tva.dat) pentru aplicaia 1.18

    Aplicaia 1.19

    Sse calculeze profitul sau pierderea din vnzri pentru un produs la carese cunosc costul de producie i preul de vnzare.

    Algoritm de calcul

    Se completeaz casetele de text corespunztoare costului de producierespectiv preului de vnzare. Daca preul este superior costului se determin unprofit, n caz contrar se calculeaz pierderea. Iniial, eticheta i caseta de textutilizate pentru afiarea profitului/pierderii nu sunt vizibile (au proprietile Visiblesetate pe False). Afiarea lor se realizeaz n momentul acionarii tastei F1 sau aalegerii opiunii Calculdin meniul Afisare.

    Realizarea meniului ataat aplicaiei s-a realizat cu ajutorul Editorului demeniuri (MenuEditor). Pentru lansarea Editorului de meniuri se acioneaz clicdreapta pe suprafaa formularului i se alege MenuEditor. Pe ecran va apreafereastra din fig.1.39.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    71/236

    71

    Fig.1.39.Editorul de meniuri

    Name: mnuCalcul(submeniu almeniului Aplicaie,ca i mnuIeire)

    Name: mnuIesire

    Sgei pentru deplasareantre elementele de meniu iretrogradarea ca submeniurisau avansarea ca meniuri

    principale

    Combo pentrustabilirea unei tastescurttur ctreopiunile aflate peultimele ramificaii alemeniurilor

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    72/236

    72

    Fig.1.40. Schema logicgeneralpentru aplicaia 1.19

    START

    Citete txtCost, txtPret

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    73/236

    73

    Codul asociat evenimentelor clic ale elementelor de meniu mnuCalcul,

    mnuIesirei mnuAjutoreste prezentat n continuare:

    Private Sub mnuAjutor_Click()

    MsgBox "Se completeaza costul si pretul in casetele corespunzatoare si se

    determina profitul sau piererea !", vbOKOnly, "Ajutor"End Sub

    Private Sub mnuCalcul_Click()

    If txtCost = " " Or txtPret = " " Then

    MsgBox "Nu ati completat pretul si/sau costul !", vbOKOnly, "Atentie!"

    Exit Sub

    End If

    lblRezultat.Visible = True

    txtRezultat.Visible = True

    If Val(txtCost) > Val(txtPret) ThenlblRezultat.Caption = "Pierdere"

    lblRezultat.ForeColor = vbRed

    txtRezultat.Text = Format(Val(txtCost) - Val(txtPret), "FIXED")

    Else

    txtRezultat.Text = Format(-Val(txtCost) + Val(txtPret), "FIXED")

    End If

    End Sub

    Private Sub mnuIesire_Click()

    Unload MeEnd Sub

    Top 1920Visible FalseWhatsThisHelpID 0Width 1215

    Fig.1.41.Interfaa aplicaiei 1.19 n modul de proiectare(Design)

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    74/236

    74

    Rezultatele rulrii aplicaiei sunt prezentate n fig.1.42.

    Fig. 1.42.Situaia de ieire pentru aplicaia 1.19

    Aplicaia 1.20

    S se ntocmeasc un program pentru stabilirea punctului de echilibru(q_e)la o societate comercial, tiind vnzrile din produsul 1 (v1), vnzrile dinprodusul 2 (v2), costurile fixe (c_f), costurile cu manopera (c_man), costurile cumateriale (c_mat)i numrul perioadelor de gestiune (n). Formula de calcul este:q_e=c_f/(v1+v2-c_f)*(v1+v2) .

    Algoritm de calcul

    Punctul de echilibru (q_e) se va calcula astfel:q_e=c_f/(v1+v2-c_f)*(v1+v2) (1.22)Se realizeaz un formular cu dou butoane de comand (fig.1.44):

    PUNCTUL DE ECHILIBRU (Caption) pentru procedura de calcul i afiare a

    punctului de echilibru (cmdQE) i pentru ieirea din program (cmdIesire).Obiectele adugate n formular sunt prezentate n tabelul urmtor:

    Obiect Proprieti EvenimenteFormular (Form) Name: frmQE

    Caption: PUNCTUL DEECHILIBRU

    -

    Buton de comand(Command Button) Name: cmdQECaption: Punctul de echilibru

    Click

    Buton de comand(Command Button) Name: cmdIesireCaption: Iesire

    Click

    Casetde text (Text Box) Name: txtV1Etichete (Labels) Caption: Vanzari 1Casete de text (Text Box) Name: txtV2Etichete (Labels) Caption: Vanzari 2Casetde text (Text Box) Name: txtCFEtichete (Labels) Caption: Costuri FixeCasete de text (Text Box) Name: txtCManEtichete (Labels) Caption: Costuri ManoperaCaseta de text (Text Box) Name: txtCMatEtichete (Labels) Caption: Costuri MaterialeCasete de text (Text Box) Name: txtQEEtichete (Labels) Caption: Punctul De Echilibru

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    75/236

    75

    Dup declararea variabilelor de lucru ce reprezint datele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare din casete de textdin formular.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul decalcul de mai sus este prezentatn fig.1.43.

    Fig.1.43 Schema logicpentru rezolvarea aplicaiei 1.20

    Procedurile cmdQE_Click()i cmdIesire_Click()sunt urmatoarele:

    Private Sub cmdQE_Click()

    declararea variabilelor de lucru

    Dim q_e As Double

    Dim v1 As Double

    Dim v2 As Double

    Dim c_f As Double

    Dim c_man As Double

    Dim c_mat As Double

    introducerea datelor de intrare

    v1 = txtV1.Text

    v2 = txtV2.Text

    c_f = txtCF.Text

    c_man = txtCMan.Text

    c_mat = txtCmat.Text

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    76/236

    76

    se calculeaza punctul de echilibru

    q_e=c_f/(v1+v2-c_f)*(v1+v2)se afiseaza in casete de text rezultatele

    txtQE.Text = q_eEnd Sub

    Private Sub cmdIesire_Click()End

    End Sub

    Datele de intrare utilizate pentru obinerea rezultatelor din fig. 1.44 sunt:V1=500.000V2=840.000c_f=50.000c_man=400.000

    c_mat=700.000.

    Fig.1.44. Situaia de ieire pentru aplicaia 1.20

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    77/236

    77

    Aplicaia 1.21

    Sse calculeze valoarea total(val_tot) a 8 produse perisabile aflate ntr-un depozit, dupo perioadde depozitare, cunoscnd coeficienii de perisabilitatespecifici (coef_peris), categoriile de produse (definite prin cod_produs) i

    valoarea acestor produse (val) la nceputul perioadei de depozitare.

    Algoritm de calcul

    Cele mai importante prelucrri pe care le efectueaz programul suntprezentate n secvena urmtoare:

    For i = 0 To 7cod_produs(i + 1) = InputBox("Introduceti codul produsului " & i + 1 & ":")coef_peris(i + 1) = InputBox("Introduceti coef de perisabilitate pt produsul " & i +

    1 & ":(%)")val(i + 1) = InputBox("Introduceti valoarea produsului " & i + 1 & ":")total_val = total_val + val(i + 1) * (100 - coef_peris(i + 1)) / 100total_dep = total_dep + val(i + 1) * coef_peris(i + 1) / 100

    Next i

    Pentru stocarea datelor calculate se vor utiliza variabile de fiiere, cumeniunea c vor fi pstrate numai valorile referitoare la ultima execuie a

    programului, deoarece fiierul perisabil.txt este ters i recreat de fiecare datcndse acioneaz clic pe meniul mnuCalcul (Caption: Calcul Valoare). tergerea irecreerea se fac n liniile urmtoare:

    Kill "c:\perisabil.txt"

    Open "c:\perisabil.txt" For Append As #1

    n scopul consultrii mai rapide a rezultatelor execuiei programului s-aadugat la proiect formularul FrmShowcare este generat vizibil dup terminarea

    prelucrrilor procedurii mnuCalcul_Click(), n linia FrmShow.Show. Acest

    Se introduc codul produsului,coeficientul de perisabilitate ivaloare pentru fiecare produs.

    Pe baza lor se calculeazuntotal valoric i un total aldeprecierii.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    78/236

    78

    formular conine un control de tip RichTextBox cu ajutorul cruia se poatevizualiza coninutul unui fiier de tip.txtsau.dat. Deoarece acest tip de control nueste iniial n bara de instrumente (ToolBox, unde sunt prezente doar controaleleelementare cele mai utilizate), este necesaradugarea lui n bar; pentru aceasta,se executclic dreapta pe bara de instrumente, ntr-un loc unde nu se mai aflniciun control i se alege prima opiune Components. O alta variant const nsuccesiunea de comenzi n meniul Project/Components. Pe ecran apare fereastraComponents(fig.1.45).

    Fig.1.45.FereastraComponents

    Aa dup cum se observ i n figur, se bifeaz controlul de tipRichTextBoxi se acioneazbutonulApply, rezultatul constnd n apariia pe barade instrumente a controlului respectiv (fig.1.46).

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    79/236

    79

    Fig.1.46.Bara de instrumente(ToolBox)

    Din acest moment controlul poate fi folosit ca oricare altul, prin dispunereape suprafaa formularului i stabilirea proprietilor sale. Astfel, la proprietateaFileNamese completeazC:\perisabil.txt, n cazul n care se dorete ca fiieruls fie amplasat direct pe partiia C a harddiskului. Caseta de text extins seconfigureazdin fereastraProperty Pages(se executclic dreapta cu mouse-ul pesuprafaa casetei Properties).

    Aplicaia folosete un formular de tip MDI (MDIForm MultipleDocument Interface, adic Interfa Document Multiplu) i un formular normalcare are proprietatea deMDIChildsetatca True. Aceasta nseamncformularulcopil nu poate fi activat dect dac formularul de tip MDI este deschis; deasemenea, nchiderea formularului MDI implic nchiderea tuturor copiilor si,adic a formularelor avnd setat proprietatea MDIChild ca True. n general,formularele de tip MDI nu pot conine ele nsele controale, dar pot conine meniuri

    care controleazdeschiderea i nchiderea formularelor subordonate.Linia On Error Resume Nextdispusla nceputul codului asociat meniuluimnuCalcul pred controlul urmtoarei instruciuni dup cea care a coninuteroarea. Prima execuie a programului furnizeazo eroare la ntlnirea liniei Kill"c:\perisabil.txt", deoarece fiierul repectiv nu exist. On Error Resume Next

    pred controlul instruciunii urmtoare care creeaz fiierul respectiv,nesemnaliznd nici o eroare.

    Schema logic pentru codul asociat mnuCalcul_Click este prezentat nfig.1.47.

    ControlulRichTextBox

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    80/236

    80

    Fig.1.47. Schema logicpentru aplicaia 1.21

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    81/236

    81

    Codul asociat meniurilor aplicaiei este urmtorul:

    Private Sub mnuAfisare_Click()

    frmShow.RichTextBox1.FileName = "c:\perisabil.txt"

    frmShow.Show

    End Sub

    Private Sub mnuCalcul_Click()

    On Error Resume Next

    Dim coef_peris(7) As Byte

    Dim cod_produs(7) As Integer

    Dim val(7) As Double

    Dim total_val As Double

    Dim total_dep As Double

    total_val = 0

    total_dep = 0Kill "c:\perisabil.txt"

    Open "c:\perisabil.txt" For Append As #1

    For i = 0 To 7

    cod_produs(i + 1) = InputBox("Introduceti codul produsului " & i + 1 & ":")

    coef_peris(i + 1) = InputBox("Introduceti coef de perisabilitate pt produsul " & i +

    1 & ":(%)")

    val(i + 1) = InputBox("Introduceti valoarea produsului " & i + 1 & ":")

    total_val = total_val + val(i + 1) * (100 - coef_peris(i + 1)) / 100

    total_dep = total_dep + val(i + 1) * coef_peris(i + 1) / 100

    Next i

    Print #1, " Situatia deprecierii produselor"

    Print #1, String(55, "=")

    Print #1, "Cod produs"; " "; "Valoarea"; " "; "Deprecierea"

    Print #1, String(55, "=")

    For i = 0 To 7

    Print #1, cod_produs(i + 1), " "; val(i + 1); " "; val(i + 1) * coef_peris(i +

    1) / 100

    Next i

    Print #1, String(55, "=")Print #1, "TOTAL", " "; total_val; " "; total_dep

    Close #1

    End Sub

    Private Sub mnuIesire_Click()

    Unload Me

    End Sub

    Rezultatele rulrii aplicaiei sunt prezentate n fig.1.48.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    82/236

    82

    Fig.1.48. Situaia de ieire pentru aplicaia 1.21

    Aplicaia 1.22

    S se calculeze valoarea unei facturi, tiind numrul nde produse, preulfiecrui produs (pret(i))i valoarea cheltuielilor de transport (ch_tp).

    Algoritm de calcul

    Informaiile despre fiecare produs se vor grupa n mulimi cu nelemente,n caren reprezintnumrul de produse:

    denumire produs: denp(i); cantitatea: cant(i); preul: pret(i); valoare: val(i).

    Se va calcula valoarea fiecrui produs:

    val(i) = cant(i) * pret(i) (1.24)Valoarea total a produselor (valtot) i valoarea facturii (valf) se vor

    calcula dupformulele:

    valtot = valtot + val(i) (1.25)valf = valtot ch_tp (1.26

    Se realizeaz un formular cu dou butoane de comand (fig.1.50): FACTURI(Caption) pentru procedura de calcul (cmdFacturi) i pentru ieirea din program(cmdIesire). Obiectele adugate n formular sunt prezentate n tabelul urmtor:

    Obiect Proprieti EvenimenteFormular (Form) Name: frmFacturi

    Caption: FACTURI-

    Buton de comand(Command Button) Name: cmdFacturiCaption: Facturi

    Click

    Buton de comand(Command Button) Name: cmdIesireCaption: Iesire

    Click

    Dupdeclararea variabilelor de lucru ce reprezintdatele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare cu ajutorul caseteide introducere a textuluiInputBox().

    Pentru calculul i afiarea rezultatelor n formular se folosete o structurde control repetitivde tipulForNext, n caren reprezinatnumrul de produse.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul de

    calcul de mai sus este prezentatn fig. 1.49.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    83/236

    83

    Fig. 1.49. Schema logicpentru rezolvarea aplicaiei 1.22

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    84/236

    84

    Procedurile cmdFacturi_Click()i cmdIesire_Click()sunt urmtoarele:

    Private Sub cmdFacturi_Click()

    declararea variabilelor de lucru

    Dim nrserie As String

    Dim Ch_Tp As Double

    Dim denp(3) As StringDim pret(3) As Double

    Dim cant(3) As Double

    Dim val(3) As Double

    Dim valtot As Double

    Dim valf As Double

    citirea datelor de intrare

    nrserie = InputBox("Numarul si seria facturii:")

    Ch_Tp = InputBox("Cheltuieli de transport:")

    For i = 1 To 3

    denp(i) = InputBox("Denumire produs:")pret(i) = InputBox("Pret:")

    cant(i) = InputBox("Cantitate:")

    Next i

    Print "Numarul si seria facturii:"; nrserie

    Print "________________________________________"

    Print "Denumire Pret Cantitate Valoare"

    initializarea valorii totale a produselor

    valtot = 0

    calculFor i = 1 To 3

    val(i) = cant(i) * pret(i)

    valtot = valtot + val(i)

    Print denp(i); " "; pret(i); " "; cant(i); " "; val(i)

    Next i

    valf = valtot - Ch_Tp

    Print "__________________________________________"

    Print "Valoarea facturii:"; valf

    End Sub

    Private Sub cmdIesire_Click()

    End

    End Sub

    Datele de intrare utilizate pentru obinerea rezultatelor din fig. 1.50 sunt:

    nrserie=RX 123

    ch_tp=100.000

    n=3,

    denp(1)=Tastatura, cant(1)= 3, pret(1)=180.000

    denp(2)=Mouse, cant(2)= 5, pret(2)=100.000

    denp(3)=Modem, cant(3)= 2, pret(3)=550.000

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    85/236

    85

    Fig.1.50. Situaia de ieire pentru aplicaia 1.22

    Aplicaia 1.23

    S se determine suma final (F) aflat n contul bancar al unei persoane,tiind depunerea lunar(D), rata dobnzii lunare (I) i numrul de luni (M).

    Algoritm de calcul

    Programul folosete o structur repetitiv de tipul For...Next pentru aaduga n fiecare lunla suma finaldepunerea acelei luni i dobnda aferent:

    For k = 1 To Val(txtNrLuni)

    'F este suma finala

    'Pentru a doua luna se acorda dobanda dubla, pentru a treia - tripla samd

    F = F + D + D * I / 100 * k

    Next k

    Datoritunei structuri alternative (If...Then...Else), prelucrrile se executnumai n cazul n care datele de intrare au fost furnizate (au fost completatecasetele de text corespunztoare).

    If txtDepunere " " And txtDobLunara " " And txtNrLuni " "

    Schema logic este prezentat n fig.1.51, iar schema logic general nfig.1.52.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    86/236

    86

    Fig.1.51. Schema logicadaptatpentruVisual Basicpentru aplicaia 1.23

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    87/236

    87

    Fig.1.52. Schema logicgeneralpentru aplicaia 1.23

    DA

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    88/236

    88

    Prelucrarea se execut ca urmare a acionrii unui clic pe meniulmnuCalcul(Caption Calcul)

    Private Sub mnuCalcul_Click()Dim F As DoubleDim D As DoubleDim I As Double

    F = 0If txtDepunere " " And txtDobLunara " " And txtNrLuni " " ThenD = Val(txtDepunere)I = Val(txtDobLunara)M = Val(txtNrLuni)For k = 1 To M'F este suma finala'Pentru a doua luna se acorda dobanda dubla, pentru a treia - tripla samd

    F = F + D + D * I / 100 * kNext ktxtSumaFinala = Format(F, "fixed")

    ElseMsgBox "Nu ati completat corect depunerea, dobanda lunara si/sau numarul deluni!"

    End IfEnd Sub

    Private Sub mnuIesire_Click()Unload Me

    End Sub

    Rezultatele rulrii aplicaiei sunt prezentate n fig. 1.53.

    Fig. 1.53. Situaia de ieire pentru aplicaia 1.23

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    89/236

    89

    Aplicaia 1.24

    S se calculeze amortizarea lunar a 12 mijloace fixe, tiind valoarea deinventar i norma de amortizare.

    Algoritm de calcul

    Informaiile despre cele 12 mijloace fixe sunt urmtoarele: denumire mijloc fix: denm; valoare inventar: vali; norma de amortizare: norma; amortizare lunar: aml.

    Se va calcula amortizarea lunarn funcie de norma de amortizare (1.28):

    aml = norma / 12 (1.28)

    Se realizeaz un formular cu dou butoane de comand (fig.1.55):AMORTIZARE (Caption) pentru procedura de calcul i afiare a valorilor(cmdAmortizare) i pentru ieirea din program (cmdIesire). Obiectele adugate nformular sunt prezentate n tabelul urmtor:

    Obiect Proprieti Evenimente

    Formular (Form) Name: frmAmortizareCaption: AMORTIZARE

    -

    Buton de comand(Command Button) Name: cmdAmortizareCaption: Amortizare

    Click

    Buton de comand(Command Button) Name: cmdIesireCaption: Iesire

    Click

    Dupdeclararea variabilelor de lucru ce reprezintdatele de intrare, dateleintermediare i rezultatele calculelor, se preiau datele de intrare cu ajutorul caseteide introducere a textuluiInputBox().

    Pentru calculul i afiarea rezultatelor n formular se folosete o structurde control repetitivde tipulForNext.

    Schema logicpentru rezolvarea aplicaiei n conformitate cu algoritmul decalcul de mai sus este prezentatn fig.1.54.

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    90/236

    90

    Fig. 1.54. Schema logicpentru rezolvarea aplicaiei 1.24

  • 5/22/2018 Aplicatii Economice in Visual Basic Si Acces , Doina Fusaru , Zenovic Gherasim , 2007

    91/236

    91

    Procedurile cmdAmortizare _Click()i cmdIesire_Click()sunt urmtoarele:Private Sub cmdAmortizare_Click()Dim denm As StringDim vali As SingleDim norma As SingleDim aml As Single

    PrintPrint "Mijloc fix Valoare Norma Amortizare"Print"_____________________________________________________________"

    For i = 1 To 12denm = InputBox("Mijloc fix:")vali = InputBox("Valoare inventar:")norma = InputBox("Norma de amortizare:")aml = norma / 12

    Print denm, vali, norma, amlNext i

    End Sub

    Private Sub cmdIesire_Click()EndEnd SubDatele de intrare utilizate, precum i rezultatele obinute sunt prezentate nfig.1.55.

    Fig.1.55. Situaia de ieire pentru aplicaia 1.24

    Aplicaia 1.25

    S se calculeze profitul brut