Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
» Exemple de aplicatii simple in VISUAL BASIC


Exemple de aplicatii simple in VISUAL BASIC


Exemple de aplicatii simple in VISUAL BASIC

1. Prima aplicatie Visual Basic

Sa presupunem ca vrem sa realizam aplicatia apl.vbp care sa contina un singur formular, numit apl.frm (figura 12.13.).


Fig. 12.13. Fereastra Project (Proiectul1) a primei aplicatii apl.vbp



Formularul acestei aplicatii trebuie sa contina: in bara de titlu numele Prima aplicatie in Visual Basic, doua casete de text una continand un text pe doua linii si alta continand tipul procesorului ti sistemul de operare (cand nu-i selectat nimic sa fie consemnat cazul), butoane radio pentru setarea procesorului si sistemului de operare, casete check pentru afisarea textului bold si italic, o lista cu orasele judetului Alba si o lista derulanta cu municipiile aceluiasi judet, confirmarea se face printr-un buton de afisare (Fig.12.14.).


Fig.12.14. Formatul initial al Formularului apl.frm

Fig.12.15. Formularul dupa selectarea optiunii bold, a

procesorului si a sistemului de operare

Alegerea optiunii Bold, a procesorului si a sistemului de operare si confirmarea optiunilor alese prin efectuarea unui click pe butonul Afiseaza va afisa figura 12.15.

In acest ultim caz, daca vom efectua un click pe butonul cu sageata al listei derulante de municipii vom ajunge la afisarea ferestrei din figura 12.16. Efectul cumulativ al caracterelor bold si italic este prezentat in figura 12.17.


Fig.12.16. Formularul cu lista derulanta


Fig. 12.17. Efectul cumulativ al optiunilor Bold si Italic

Sursa aplicatiei este:

Dim a$

Dim b$

Private Sub cmd1_Click()

Txt1.FontName = 'MS Sans Serif'

Txt1.Text = ' Aici sunt doua linii' _

& vbCrLf & 'intr-o caseta de dialog'

If Chk1.Value = 1 Then i = 1

If Chk2.Value = 1 Then i = 2

If Chk1.Value = 1 And Chk2.Value = 1 Then i = 3

Select Case i

Case 0

Txt1.FontName = 'MS Sans Serif'

Txt1.Font.Bold = False

Txt1.Font.Italic = False

Lst1.FontName = 'MS Sans Serif'

Lst1.Font.Bold = False

Lst1.Font.Italic = False

Cmb1.FontName = 'MS Sans Serif'

Cmb1.Font.Bold = False

Cmb1.Font.Italic = False

Txt2.FontName = 'MS Sans Serif'

Txt2.Font.Bold = False

Txt2.Font.Italic = False

Case 1

Txt1.FontItalic = False

Txt1.FontBold = True

Txt2.FontItalic = False

Txt2.FontBold = True

Cmb1.FontItalic = False

Cmb1.FontBold = True

Lst1.FontItalic = False

Lst1.FontBold = True

Case 2

Txt1.FontBold = False

Txt1.FontItalic = True

Txt2.FontBold = False

Txt2.FontItalic = True

Lst1.FontBold = False

Lst1.FontItalic = True

Cmb1.FontBold = False

Cmb1.FontItalic = True

Case 3

Txt1.Font.Bold = True

Txt1.Font.Italic = True

Txt2.Font.Bold = True

Txt2.Font.Italic = True

Lst1.Font.Bold = True

Lst1.Font.Italic = True

Cmb1.Font.Bold = True

Cmb1.Font.Italic = True

End Select

End Sub

Private Sub cmdClose_Click()

End

End Sub

Private Sub Form_Load()

a$ = 'Procesor:neselectat'

b$ = 'Sistem de operare:neselectat'

Txt1.Text = ''

Txt2.Text = ''

Lst1.AddItem 'Abrud'

Lst1.AddItem 'Cimpeni'

Lst1.AddItem 'Cugir'

Lst1.AddItem 'Ocna Mures'

Lst1.AddItem 'Teius'

Lst1.AddItem 'Zlatna'

Cmb1.AddItem 'Alba Iulia'

Cmb1.AddItem 'Aiud'

Cmb1.AddItem 'Blaj'

Cmb1.AddItem 'Sebes'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Private Sub Opt1_Click()

a$ = 'Procesor :486'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Private Sub Opt2_Click()

a$ = 'Procesor :Pentium'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Private Sub Opt3_Click()

a$ = 'Procesor :Pentium PRO'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Private Sub Opt4_Click()

b$ = 'Sistem de operare:Windows 95'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Private Sub Opt5_Click()

b$ = 'Sistem de operare:Windows 98'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Private Sub Opt6_Click()

b$ = 'Sistem de operare:Windows NT'

Txt2.Text = a$ & vbCrLf & b$

End Sub

Observatii:

Pentru verificarea casutei bifate, se foloseste proprietatea Value a casutei (checked boxes). Codul pentru acesta a fost scris in evenimentul 'click' al butonului Afisare, iar in acest caz din momentul in care se apasa pe acest buton se va face atat verificarea, cat si modificarile fonturilor. Acest lucru se poate face chiar si in cazul realizarii evenimentului click al fiecarei casute in parte, lucru care va modifica fonturile imediat ce va fi selectata casuta, dar nu se poate face verificarea cazului in care ambele casute au fost bifate, deci nu exista posibilitatea de a modifica fonturile in Bold si Italic simultan.

Pentru schimbarea fonturilor textelor ce vor aparea in casutele text din aceasta forma s-a folosit structura Select Case (se putea folosi chiar si structura If..Then..Else) in acelasi eveniment 'click' al butonului Afiseaza, deoarece aveam obtinute si valorile proprietatii Value al butoanelor Checked, unde in functie de casuta selectata, setarile pentru fonturile textului vor fi modificate (cu ajutorul proprietatii Font, proprietate modificata in cod).

S-a initializat proprietatea Font a casutelor de tip text cu fontul 'MS Sans Serif' in momentul in care se apasa pe butonul Afiseaza, iar ulterior s-a schimbat proprietatea in functie de optiunea butoanelor bifate. Daca nu se face initializarea inainte, atunci dupa ce se fac anumite selectii ale butoanelor se vor afisa, iar ulterior dorim sa deselectam ambele butoane, acest lucru nu se va mai afisa textul ca fiind de tip normal deoarece nu va avea la ce valoare sa se intoarca (valoarea proprietatii Font va fi valoarea ultimei selectii a butoanelor).

Pentru afisarea in casuta Txt2 a tipului de procesor si a sistemului de operare selectat, una dintre posibilitati ar fi declararea a doua variabilele de tip string (sir de caractere) a$ si b$, in zona declaratiilor de variabile in cod, ele urmand sa ia valori in functie de selectia facuta in zona frame (cadru) prin intermediul butoanelor radio (selectarea tipului de procesor- variabila a$, respectiv selectarea sistemului de operare- variabila b$), iar la apasarea butonului Afiseaza sa apara in casuta de text Txt2 atat tipul procesorului cat si sistemul de operare. Un inconvenient ar fi fost ca inainte cat si dupa ce s-a facut selectarea, casuta de text nu va contine nimic pana ce nu va fi apasat butonul Afiseaza. Acest inconvenient a fost inlaturat deoarece afisarea in casuta de text se facea atunci cand exista evenimentul 'Mouse move' (miscarea mouse-lui), eveniment care declansa afisarea in casuta text Txt2 a sirurilor a$ si b$ (afisare pe doua randuri). Dar nici aceasta modificare nu este optima, deoarece daca se selecteaza una din optiuni (adica se selecteaza un buton radio), iar mouse-ul nu se misca, textul nu va fi afisat (pana cand se misca mouse-ul). Asa ca, versiunea finala va modifica textul din casuta Txt2 in momentul cand exista evenimentul 'click' pe unul dintre butoanele radio, eveniment care va modifica si valoarea variabilelor a$ si b$.

2. Aplicatia Visual Tutorial 2000

In capitolul 8, subcapitolul 8.1. care trata lucrul in spatii grafice, unde am introdus principalele notiuni de lucru cu sistemul de operare Windows, am promis ca vom da sursele aplicatiei Visual Tutorial 2000 impreuna cu structura Project si denumirea formularelor utilizate. O facem acum pe post de al doilea exemplu.

Sursa aplicatiei VISUAL TUTORIAL 2000 este:

Option Explicit

Const VBPath = 'file://c:Visual Tutorial 2000'

Private Sub mnuMeniuri_Click()

End Sub

Private Sub mnuAsistentaDespre_Click()

frmDespre.Show

End Sub

Private Sub mnuAsistentaDocument_Click()

frmDoc.Show

End Sub

Private Sub mnuAsistentaHTML_Click()

Shell('C:Program FilesInternet ExplorerIexplore.exe')

End Sub


Private Sub mnuBareOrizontale_Click()

frmBareOrizontale.Show

End Sub

Private Sub mnuBareVerticale_Click()

frmBareVerticale.Show

End Sub


Private Sub mnuButoaneOptiune_Click()

frmButoaneOptiuni.Show

End Sub


Private Sub mnuButoaneOrizontale_Click()

frmButoaneOrizontale.Show

End Sub

Private Sub mnuButoaneValidare_Click()

frmButoaneValidare.Show

End Sub


Private Sub mnuButoaneVerticale_Click()

frmButoaneVerticale.Show

End Sub


Private Sub mnuCaseteDialogConditie_Click()

frmDialog.Show

End Sub


Private Sub mnuCaseteDialogDespre_Click()

frmAbout.Show

End Sub


Private Sub mnuCaseteDialogLogin_Click()

frmLogin.Show

End Sub


Private Sub mnuCaseteDialogOptiuni_Click()

frmOptions.Show

End Sub


Private Sub mnuCasteListeCombinate_Click()

frmListaCombinata.Show

End Sub


Private Sub mnuCasteListeElemente_Click()

frmListaElemente.Show

End Sub


Private Sub mnuCasteListeFisiere_Click()

frmListaFisiereDirectoare.Show

End Sub


Private Sub mnuDragDrop_Click()

End Sub

Private Sub mnuGraficaFonturi_Click()

frmListaFisiereText.Show

End Sub

Private Sub mnuGraficaVizualizare_Click()

frmImagini.Show

End Sub

Private Sub mnuIesire_Click()

frmIesire.Show

End Sub


Private Sub mnuMeniu_Click()

frmMeniu.Show

End Sub

Private Sub mnuSlider_Click()

frmSlider.Show

End Sub


3. Alte aplicatii

A. Inca putina teorie

Folosirea casetelor de dialog predefinite InputBox

Folosirea functiei InputBox genereaza afisarea unei casete de dialog care solicita utilizatorului introducerea unui sir sau Variant. Sintaxa functiei este:

InputBox[$](prompt[,[titlu][,[implicit][,xpos,ypos]]]),

unde:

prompt este o expresie sir de caractere care afiseaza un mesaj in caseta.

titlu este o expresie sir de caractere afisata in bara de titlu a casetei de dialog; daca este omisa, caseta de dialog nu va avea titlu.

implicit este o expresie sir de caractere afisata in caseta text ca raspuns implicit daca utilizatorul nu furnizeaza alt raspuns.

xpos si ypos sunt expresii numerice si specifica, in twips, (1 twip = 1 / 1440 inch = 1 / 567 centimetri) distanta orizontala a marginii stangi a casetei de dialog fata de marginea stanga a ecranului, respectiv distanta verticala fata de marginea superioara a ecranului.

Folosirea casetelor de dialog predefinite MsgBox

Instructiunea MsgBox este folosita pentru a afisa scurte mesaje referitoare la anumite erori care au intervenit la rularea aplicatiei, avertismente sau alerte.

Sintaxa functiei MsgBox este:

MsgBox (mesaj[, [tip][, titlu]]),

unde:

mesaj este o expresie sir de caractere care va fi afisata in caseta de dialog.

titlu este o expresie sir de caractere care va fi afisata in bara de titlu a casetei de dialog.

tip este o expresie numerica optionala reprezentand suma valorilor care specifica numarul si tipul butoanelor care vor fi afisate, stilul pictogramei afisate, butonul implicit si modalitatea casetei.

B. Calculul functiei SIN(X)

Un program foarte simplu pentru calculul functiei SIN(X) este urmatorul: Se creeaza o forma. Aceasta se creeaza automat in momentul in care se in Visual Basic se cere deschiderea unui nou proiect (in meniu se alege optiunea File -> New Project). Apoi in fereastra New Project se alege Standard.EXE si se face click pe butonul OK.

Fig. 12.18. Fereastra de deschiderea a unui proiect nou in Visual Basic.

Pe ecran se va deschide un proiect nou care va contine o forma. Se va efectua un click dreapta in forma pentru deschiderea unui meniu contextual. Din meniul contextual se alege optiunea View Code, pentru vizualizarea ferestrei de introducere a codului. In partea de sus a ferestrei sunt afisate doua liste: lista de obiecte din proiect si pentru fiecare obiect, lista din dreapta contine toate evenimentele care se pot atasa obiectului respectiv. Din prima lista se alege obiectul Form, iar din a doua evenimentul click. In fereastra vor fi afisate prima si ultima linie din procedura atasata evenimentului click pe forma numita Form.

Fig. 12.19. Scrierea codului pentru evenimentul click pe obiectul Form.

Intre cele doua linii din fereastra se scrie codul:

Dim Raspuns, ValImpl, Mesaj, Titlu 'Declarare variabile

Mesaj='Argumentulfunctiei trigonometrice' 'Setare prompt

Titlu = 'Functii trigonometrice' 'Setare titlu

ValImpl = 0 'Valoare implicita

Raspuns=InputBox(Mesaj,Titlu,ValImpl)'Citirea mesajului

Pi = 4 * Atn(1)

Raspuns = Raspuns * Pi / 200

Rezultat = Sin(Raspuns) 'Calcul

MsgBox (Rezultat), , 'SIN (X)'

End

Trebuie precizat ca Visual Basic foloseste ca unitate de masura pentru unghiuri tot radianul ca si produsul Excel. Pentru programul nostru se considera ca valoarea unghiului este data in grade centesimale (un semicerc are Pi radiani sau 200 grade centesimale).

Programul se lanseaza in executie alegand din meniu optiunea: Run -> Start.

C. Functii matematice si derivate

Val Function - Returneaza valoarea numerica a unui sir de caractere.

Abs Function - Returneaza valoarea absoluta a unui numar.

Atn Function - Returneaza arctangenta unui numar (in radiani).

Cos Function - Returneaza functia cos (unghiul este dat in radiani).

Exp Function - Returneaza e (baza logaritmului natural) la puterea argumentului. Constanta e este aproximativ 2,718282. Functia Exp este complementul actiunii functiei Log, fiind numita si antilogaritm.

Log Function - Returneaza logaritmul natural dintr-un numar. Logaritm in baza n poate fi calculat pentru orice numar x prin divizarea logaritmului natural al lui x prin logaritmul natural din n:

Ecuatia 12.1. Formula de transformare a bazei logaritmilor.

Rnd Function - returneaza un numar aleator intre 0 si 1.

Sgn Function - Returneaza un intreg indicand semnul numarului, dupa cum urmeaza:

Ecuatia Functia Signum.

Sin Function - Returneaza functia sin (unghiul este dat in radiani).

Sqr Function - Returneaza functia radical.

Tan Function - Returneaza functia tangenta (unghiul este dat in radiani).

Pentru calculul celorlalte functii trigonometrice trebuie folosite formule de transformare cunoscute din matematica.

D. Program cu trei butoane

Visual Basic este un limbaj care foloseste tehnici moderne de programare ca Programare Orientata pe Obiecte si Programare Condusa de Evenimente.

Un program simplu in Visual Basic presupune parcurgerea a trei pasi:

- realizarea interfetei (crearea obiectelor);

- stabilirea proprietatilor obiectelor;

- scrierea codului.

Pentru a exemplifica acesti pasi realizam urmatorul program.

Program este o forma cu trei etichete, doua linii si trei butoane. Fiecare buton la executarea evenimentului click asupra lui afiseaza cate un mesaj. Interfata programului va arata astfel:

Fig. 12.20. Interfata programului cu trei butoane.

Nr. crt.

Tip obiect

Nume obiect

Proprietate

Valoare proprietate

Form

Formular

Caption

Trei butoane

Label

Label1

Caption

Prima aplicatie

Label

Label1

Caption

Universitatea '1 Decembrie 1918'

Label

Label1

Caption

Alba Iulia

Line

Line1

Line

Line2

CommandButton

Buton1

Caption

Primul Buton

CommandButton

Buton1

Caption

Al doilea Buton

CommandButton

Buton1

Caption

Al treilea Buton

Tabelul 12.1. Obiectele si proprietatile programului cu trei butoane.

Codul programului cu trei butoane:

Private Sub Buton1_Click()

MsgBox ('A fost apasat Primul Buton'), , 'Raspuns'

End

End Sub

Private Sub Buton2_Click()

MsgBox ('A fost apasat Al doilea Buton'), , 'Raspuns'

End

End Sub

Private Sub Buton3_Click()

MsgBox ('A fost apasat Al treilea Buton'), , 'Raspuns'

End

End Sub

La executarea evenimentului click fiecare buton raspunde prin afisarea unui mesaj (MsgBox).

E. Calculul sumei a n numere

Se dau n numere . Sa se calculeze suma: S = .

Pentru rezolvarea problemei parcurgem urmatorii pa i:

- stabilirea algoritmului;

- intocmirea schemei logice;

- scrierea programului Tntr-un limbaj oarecare (de exemplu Tn pseudocod).

E.1. Stabilirea algoritmului

S = 0

S = S + , pentru i

Program structurat in pseudocod

Cite te n

Pentru i = 1 la n

Cite te Ai

Sf>r it Pentru

S = 0

Pentru i = 1 la n

S = S + Ai

Sf>r it Pentru

Tip re te S

F. Ecuatia de gradul 1 - Program VB

Interfata

Fig. 12.21. Interfata programului Ecuatia de gradul 1.

Obiecte si proprietati

Nr. crt.

Tip obiect

Nume obiect

Proprietate

Valoare proprietate

Form

Formular

Caption

Ecuatia de gradul I

Label

EticTitlu

Caption

Rezolvarea ecuatiei de gradul I: A * X + B = 0

Label

EticA

Caption

Valoarea lui A

Label

EticB

Caption

Valoarea lui B

Label

EticSolutie

Caption

Solutia ecuatiei

TextBox

ValA

Text

TextBox

ValB

Text

TextBox

ValX

Text

CommandButton

ButonRezolvare

Caption

Rezolvare ecuatie

CommandButton

ButonRezolvare

Caption

ButonTerminare

Tabelul Obiectele si proprietatile programului Ecuatiei de gradul 1.

Codul

'Rezolvarea ecuatiei de gradul I

' Toate variabilele sunt de tipul Variant

Dim a, b, x

Private Sub ButonRezolvare_Click()

If Val(ValA.Text) = 0 Then

ValX.Text = ''

MsgBox 'Ecuatie imposibila'

Exit Sub

End If

a = Val(ValA.Text)

b = Val(ValB.Text)

x = -b / a

ValX.Text = x

End Sub

Private Sub ButonTerminare_Click()

End

End Sub

Private Sub ValA_GotFocus()

ValA.Text = ''

End Sub

Private Sub ValB_GotFocus()

ValB.Text = ''

End Sub

Private Sub ValX_GotFocus()

If Val(ValA.Text) = 0 Then

ValX.Text = ''

MsgBox 'Ecuatie imposibila'

Exit Sub

End If

a = Val(ValA.Text)

b = Val(ValB.Text)

x = -b / a

ValX.Text = x

End Sub

G. Rezolvarea ecuatiei de gradul II

G1.Algoritm

Ecuatia este de forma: .

Se da valoarea parametrului A.

Ecuatia nu este de gradul II.

Se da valoarea parametrilor B si C.

Ecuatia are radacini complex conjugate. Nu vom dezvolta mai mult aceasta ramura.

G2. Codul in Pseudocod

Citeste A

Daca A = 0 Atunci

Afiseaza 'Ecuatia nu este de gradul 2'

Altfel

Citeste B

Citeste C

Delta = B * B - 4 * A * C

Daca Delta > 0 Atunci

X1 = (-B + Radical(Delta)) / (2 * A)

X2 = (-B - Radical(Delta)) / (2 * A)

Afiseaza ' X1 = ' + Str$(X1) + ' si X2 = ' + Str$(X2)

Sfarsit Daca

Daca Delta = 0 Atunci

Afiseaza ' X1 = X2 = ' + Str$(-B / (2 * A))

Sfarsit Daca

Daca Delta < 0 Atunci

Afiseaza 'Ecuatia are radacini complex conjugate.'

Sfarsit Daca

Sfarsit Daca

G.3. Comentarii

Instructiunile:

Afiseaza ' X1 = ' + Str$(X1) + ' si X2 = ' + Str$(X2)

Afiseaza ' X1 = X2 = ' + Str$(-B / (2 * A))

folosesc urmatoarele conventii (valabile in Visual Basic):

Constantele de tip text (sir, string in VB) sunt incadrate intre ghilimele ('');

Simbolul + este operatorul de concatenare pentru siruri;

Str$(X) converteste valoarea lui X in sir de caractere.

H. Interfata

Fig. 12.22. Interfata programului ecuatiei de gradul 2.

Deci instructiunea:

Afiseaza ' X1 = ' + Str$(X1) + ' si X2 = ' + Str$(X2)

va afisa 4 valori de tip text:

Textul: X1 =

Valoarea variabilei X1 convertita in text

Textul: si X2 =

Valoarea variabilei X2 convertita in text

intregul text fiind afisat pe un singur rand.

Si instructiunea:

Afiseaza ' X1 = X2 = ' + Str$(-B / (2 * A))

va afisa doua valori de tip text:

Textul: X1 = X2 =

Valoarea rezultata din calculul +B / (2 * A), convertita in text

intregul text fiind afisat pe un singur rand.

I. Obiecte si proprietati

Nr. crt.

Tip obiect

Nume obiect

Proprietate

Valoare proprietate

Form

Formular

Caption

Ecuatia de gradul 2

Label

EticTitlu

Caption

Rezolvarea ecuatiei de gradul 2

Label

EtichetaA

Caption

Valoarea parametrului A

Label

EtichetaB

Caption

Valoarea parametrului B

Label

EtichetaC

Caption

Valoarea parametrului C

Label

EtichetaX

Caption

Rezultat

TextBox

ValoareA

Text

TextBox

ValoareB

Text

TextBox

ValoareC

Text

TextBox

ValoareX

Text

CommandButton

ButonCalculeaza

Caption

Calculeaza

CommandButton

ButonTerminare

Caption

Terminare

Tabelul 12.3. Proprietatile obiectelor programului ecuatiei de gradul 2.

J. Codul in Visual Basic

Private Sub ButonCalculeaza_Click()

A = Val(ValoareA.Text)

If A = 0 Then

ValoareX.Text = 'Ecuatia nu este de gradul 2'

Else

B = Val(ValoareB.Text)

C = Val(ValoareC.Text)

Delta = B * B - 4 * A * C

If Delta > 0 Then

X1 = (-B + Sqr(Delta)) / (2 * A)

X2 = (-B - Sqr(Delta)) / (2 * A)

ValoareX.Text='X1=' + Str$(X1) + ' si X2 = ' + Str$(X2)

End If

If Delta = 0 Then

ValoareX.Text = ' X1 = X2 = ' + Str$(-B / (2 * A))

End If

If Delta < 0 Then

ValoareX.Text='Ecuatia are radacini complex conjugate.'

End If

End If

End Sub

Private Sub ButonTerminare_Click()

End

End Sub

Private Sub ValoareA_Click()

ValoareA.Text = ''

End Sub

Private Sub ValoareB_Click()

ValoareB.Text = ''

End Sub

Private Sub ValoareC_Click()

ValoareC.Text = ''

End Sub

Private Sub ValoareX_Click()

ValoareX.Text = ''

End Sub

K. Comentarii

Procedura:

Private Sub ValoareA_Click()

ValoareA.Text = ''

End Sub

care se lanseaza la evenimentul Click pe obiectul ValoareA (un obiect de tip TextBox), va atribui valorii (valoare este proprietatea Text a lui TextBox, se scrie TextBox.Text) lui ValoareA, valoarea '', adica o constanta text de lungime 0.

Procedura este identica pentru ValoareA, ValoareB, ValoareC si ValoareX, pentru initializarea textului afisat inainte de introducerea datelor. Deci pentru introducere se recomanda sa se efectueze click pe fiecare TextBox (ValoareA, ValoareB si ValoareC) si dupa fiecare click sa se introduca valoarea parametrului corespunzator.

4. Aplicatia: Rezolvarea ecuatiilor prin metoda reprezentarii

Metoda presupune ca printr-un procedeu oarecare (geometric, fizic etc.) am stabilit ca in intervalul exista o radacina . Problema care se pune este sa realizam un program pe calculator care sa gaseasca o radacina , care sa aproximeze suficient de bine pe . Altfel spus, stabilindu-se un , suficient de mic, sa se gaseasca un , astfel incat .

Sa presupunem . Pentru a gasi un interval in care se gaseste o radacina pornim de la urmatoarea ecuatie:

, care este echivalenta cu ecuatia .

Trasam graficul celor doua functii:


Fig. 12.23. Determinarea intervalului solutiei ecuatiei: COS(X) - X = 0

Se observa pe grafic, faptul ca ecuatia , are o singura radacina , in intervalul . In afara acestui interval, ecuatia nu mai are alte solutii. Programul realizat trebuie sa gaseasca o solutie aproximativa , astfel incat .

A. Codul VB:

Dim X1, X2, Xi As Single

Dim Y1, Y2, Yi As Single

Dim PAS, EPSILON, PI As Single

Function Functie(X)

Functie = Cos(X) - X

End Function

Private Sub ButonCalcul_Click()

PI = 4 * Atn(1)

X1 = Val(VX1.Text) * PI / 200

X2 = Val(VX2.Text) * PI / 200

PAS = Val(VPAS.Text) * PI / 200

EPSILON = Val(VEpsilon.Text) * PI / 200

Y1 = Functie(X1)

Xi = X1

Yi = Functie(Xi)

Do While PAS > EPSILON

Do While Y1 * Yi > 0

Xi = Xi + PAS

Yi = Functie(Xi)

Loop

Xi = Xi - PAS

PAS = PAS / 10

Yi = Functie(Xi)

Loop

Xi = Xi * 200 / PI

PAS = PAS * 200 / PI

VRezultat.Text = ' Xi = ' + Str$(Xi) + ' si PAS = ' + Str$(PAS)

End Sub

Private Sub ButonTerminare_Click()

End

End Sub

Private Sub VX1_Click()

VX1.Text = ''

End Sub

Private Sub VX2_Click()

VX2.Text = ''

End Sub

Private Sub VPAS_Click()

VPAS.Text = ''

End Sub

Private Sub VEpsilon_Click()

VEpsilon.Text = ''

End Sub

B. Observatii:

- In sectiunea General sunt declarate variabilele si functia Cos(X) - X.

Dim X1, X2, Xi As Single

Dim Y1, Y2, Yi As Single

Dim PAS, EPSILON, PI As Single

Function Functie(X)

Functie = Cos(X) - X

End Function

- Valorile X1, X2, PAS si EPSILON sunt citite din proprietatile Text ale obiectelor TextBox, convertite in radiani:

X1 = Val(VX1.Text) * PI / 200

X2 = Val(VX2.Text) * PI / 200

PAS = Val(VPAS.Text) * PI / 200

EPSILON = Val(VEpsilon.Text) * PI / 200

- Rezultatul Xi si PAS sunt afisate in grade centesimale:

Xi = Xi * 200 / PI

PAS = PAS * 200 / PI

B. Interfata

Fig. 12.24. Interfata programului Metoda reprezentarii.

Nr. crt.

Tip obiect

Nume obiect

Proprietate

Valoare proprietate

Form

Formular

Caption

Rezolvarea ecuatiilor

Label

EtichetaTitlu

Caption

Metoda reprezentarii

Label

EtichetaX1

Caption

Valoarea lui X1

Label

EtichetaX2

Caption

Valoarea lui X2

Label

EtichetaPAS

Caption

Valoarea pasului

Label

EtichetaEpsilon

Caption

Precizia Epsilon

Label

EtichetaRezultat

Caption

Rezultat

TextBox

VX1

Text

TextBox

VX2

Text

TextBox

VPAS

Text

TextBox

VEpsilon

Text

TextBox

VRezultat

Text

CommandButton

ButonCalcul

Caption

Calculeaza

CommandButton

ButonTerminare

Caption

Terminare





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate