Documente Academic
Documente Profesional
Documente Cultură
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.
Dim a$
Dim b$
If Chk1.Value = 1 Then i = 1
If Chk2.Value = 1 Then i = 2
Select Case i
Case 0
Txt1.Font.Bold = False
Txt1.Font.Italic = False
Lst1.Font.Bold = False
Lst1.Font.Italic = False
Cmb1.Font.Bold = False
Cmb1.Font.Italic = False
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
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 'Teius'
Lst1.AddItem 'Zlatna'
Cmb1.AddItem 'Aiud'
Cmb1.AddItem 'Blaj'
Cmb1.AddItem 'Sebes'
End Sub
a$ = 'Procesor :486'
End Sub
a$ = 'Procesor :Pentium'
End Sub
End Sub
End Sub
End Sub
Observatii:
1. 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.
2. 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).
3. S-a initializat proprietatea Font a casutelor de tip text cu fontul 'MS Sans Serif' in momentul in care se
apasa pe butonulAfiseaza, 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).
4. 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$.
3. Alte aplicatii
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.
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.
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.
Raspuns=InputBox(Mesaj,Titlu,ValImpl)'Citirea mesajului
Pi = 4 * Atn(1)
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.
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:
Sgn Function - Returneaza un intreg indicand semnul numarului, dupa cum urmeaza:
Pentru calculul celorlalte functii trigonometrice trebuie folosite formule de transformare cunoscute din
matematica.
Visual Basic este un limbaj care foloseste tehnici moderne de programare ca Programare Orientata pe Obiecte
si Programare Condusa de Evenimente.
- scrierea codului.
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:
End
End Sub
End
End Sub
End
End Sub
La executarea evenimentului click fiecare buton raspunde prin afisarea unui mesaj (MsgBox).
- stabilirea algoritmului;
S=0
S=S+ , pentru i 0
Citeste n
Pentru i = 1 la n
Citeste Ai
Sf>rÕit Pentru
S=0
Pentru i = 1 la n
S = S + Ai
Sf>rÕit Pentru
Tipareste S
Interfata
Codul:
Dim a, b, x
If Val(ValA.Text) = 0 Then
ValX.Text = ''
Exit Sub
End If
a = Val(ValA.Text)
b = Val(ValB.Text)
x = -b / a
ValX.Text = x
End Sub
End Sub
ValA.Text = ''
End Sub
ValB.Text = ''
End Sub
If Val(ValA.Text) = 0 Then
ValX.Text = ''
Exit Sub
End If
a = Val(ValA.Text)
b = Val(ValB.Text)
x = -b / a
ValX.Text = x
End Sub
G1.Algoritm
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.
Citeste A
Daca A = 0 Atunci
Altfel
Citeste B
Citeste C
Delta = B * B - 4 * A * C
X1 = (-B + Radical(Delta)) / (2 * A)
X2 = (-B - Radical(Delta)) / (2 * A)
Sfarsit Daca
Sfarsit Daca
Sfarsit Daca
G.3. Comentarii
Instructiunile:
Constantele de tip text (sir, string in VB) sunt incadrate intre ghilimele ('');
H. Interfata
Deci instructiunea:
Textul: X1 =
Valoarea variabilei X1 convertita in text
Textul: si X2 =
Si instructiunea:
Textul: X1 = X2 =
I. Obiecte si proprietati
Nr. Tip obiect Nume obiect Proprietate Valoare proprietate
crt.
1. Form Formular Caption Ecuatia de gradul 2
2. Label EticTitlu Caption Rezolvarea ecuatiei de
gradul 2
3. Label EtichetaA Caption Valoarea parametrului A
4. Label EtichetaB Caption Valoarea parametrului B
5. Label EtichetaC Caption Valoarea parametrului C
6. Label EtichetaX Caption Rezultat
7. TextBox ValoareA Text ('')
8. TextBox ValoareB Text ('')
9. TextBox ValoareC Text ('')
10. TextBox ValoareX Text ('')
11. CommandButton ButonCalculeaza Caption Calculeaza
12. CommandButton ButonTerminare Caption Terminare
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
X1 = (-B + Sqr(Delta)) / (2 * A)
X2 = (-B - Sqr(Delta)) / (2 * A)
End If
If Delta = 0 Then
End If
End If
End If
End Sub
End
End Sub
ValoareA.Text = ''
End Sub
ValoareB.Text = ''
End Sub
ValoareC.Text = ''
End Sub
ValoareX.Text = ''
End Sub
K. Comentarii
Procedura:
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.
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
in intervalul . In afara acestui interval, ecuatia nu mai are alte solutii. Programul realizat trebuie sa
A. Codul VB:
Function Functie(X)
Functie = Cos(X) - X
End Function
PI = 4 * Atn(1)
X1 = Val(VX1.Text) * PI / 200
X2 = Val(VX2.Text) * PI / 200
PAS = Val(VPAS.Text) * PI / 200
Y1 = Functie(X1)
Xi = X1
Yi = Functie(Xi)
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
End Sub
End
End Sub
VX1.Text = ''
End Sub
VX2.Text = ''
End Sub
VPAS.Text = ''
End Sub
VEpsilon.Text = ''
End Sub
B. Observatii:
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
Xi = Xi * 200 / PI
B. Interfata
Fig. 12.24. Interfata programului Metoda reprezentarii