Sunteți pe pagina 1din 83

1/84 10/13/21

BAZELE PROGRAMĂRII PE OBIECTE


VISUAL BASIC .NET

Conf univ dr Botezatu Cezar

UNIVERSITATEA ROMÂNO AMERICANĂ


Anul I LICENȚĂ IM
2/84 10/13/21

CURS 2:

CONTROALE VISUAL BASIC

2
3/84 10/13/21

Controale Visual Basic


• În Visual Basic obiectele se mai numesc şi
controale şi acestea pot fi: forme, etichete, casete
de dialog, casete de validare, butoane de
comandă, butoane de opţiune, bare de derulare,
etc.
• Un control are o anumită formă, dimensiune,
culoare şi un text sau o etichetă. Astfel un control
dispune de proprietăţi, metode şi evenimente.
Obiectele îi permit utilizatorului să dea comenzi
programului. Visual Basic permite să se scrie cod
pentru proprietăţile, metodele şi evenimentele
unui control.
• C:\Program Files\Microsoft Visual Studio10.0\
Common7 \IDE\devenv.exe 3
4/84 10/13/21

BUTON DE COMANDĂ
(COMMAND BUTTON)
Un buton de comandă este un control (obiect)
care are o anumită formă, afişează o etichetă sau
o imagine şi permite utilizatorului să comande
execuţia unor acţiuni prin activarea lui.
Cel mai frecvent eveniment întâlnit la acest
control şi pentru care vom scrie cel mai mult cod
este evenimentul Click. De câte ori utilizatorul va
face clic mouse pe acest buton evenimentul se va
produce şi va determina executarea codului scris.
Metode: DoDragDrop; SetBounds; BringToFront;
Focus; Show; Hide; Refresh.
4
5/84 10/13/21

BUTON DE COMANDĂ - proprietăţi


 
Proprietate Descriere

1 BackColor Culoare de fundal produce modificarea culorii zonei


situată în spatele textului . În locul culorii se poate adăuga o
imagine de fundal modificând proprietatea
BackgroundImage.

2 Text Textul care apare pe butonul de comandă. Dacă precedaţi


orice caracter din text cu semnul &, atunci acesta se
comportă ca o tastă de acces. Aşadar, tasta de acces pentru
un buton de comandă cu proprietatea Text setată E&xit este
Alt+X. Valoarea default a proprietăţii Text este numele
butonului de comandă.

3 Backgroun Modifică dimensiunile imaginii de fundal sau o


dImage multiplică pentru a acoperi suprafata butonului. Valorile
Layout posibile sunt: None, Tile, Center, Stretch, Zoom.
5
6/84 10/13/21

BUTON DE COMANDĂ - proprietăţi(2)


5 FontSize Mărimea, în puncte, a fontului folosit pentru
textul afişat pe butonul de comandă.

6 Font Underline Adevărat (default), în cazul în care textul este


afişat în caractere subliniate.

7 Height Înălţimea, în pixeli, a unui buton de comandă.

8 Left Numărul de pixeli de la marginea stângă a


ferestrei formei până la marginea stângă a
butonului de comandă.

9 Cursor Forma pe care o ia cursorul atunci când


(Cursorul de Mouse) utilizatorul mişcă mouse-ul peste butonul de
comandă.. Valorile posibile sunt de la 0 la 12 şi
reprezintă o gamă de forme diferite pe care le
poate lua cursorul.
6
7/84 10/13/21

BUTON DE COMANDĂ - proprietăţi(3)


10 Name Numele controlului. În mod implicit, Visual Basic
generează numele Button1, Button2 şi aşa mai departe, pe
măsură ce mai adăugaţi butoane pe formă.

11 FlatStyle Stilul de afişare al butonului(Flat; Popup; Standard;


System).

12 Dock Definește care margini ale controlului se conecteaza cu


marginea controlului parinte.

13 Visible Adevarat sau fals, arată dacă utilizatorul poate vedea sau nu
(şi deci poate folosi sau nu) respectivul buton de comandă.

14 Image Permite adaugarea unei imagini pe buton, in locul textului


sau langa text, in functie de valorile proprietății
TextImageRelation.
7
8/84 10/13/21

BUTON DE COMANDĂ - evenimente


1 Click Apare când utilizatorul efectuează click pe butonul de comandă.

2 DragDrop Apare când operaţiunea “drag” a butonului de comandă se


încheie.

3 DragOver Apare în timpul unei operaţiuni “drag” a butonului de comandă.

4 GotFocus Apare atunci când respectivul buton de comandă este evidenţiat.

5 KeyDown Apare când utilizatorul apasă o tastă, iar proprietatea


Previzualizare Tastă are valoarea Fals pentru orice control de pe
formă; altfel, forma primeşte evenimentul KeyDown

6 KeyPress Apare când utilizatorul apasă o tastă de acces la butonul de


comandă.

7 KeyUp Apare când utilizatorul eliberează o tastă.


8 LostFocus Apare când butonul de comandă nu mai este evidenţiat.

8
9/84 10/13/21


Control Etichetă (LABEL)
Controlul Etichetă este un control grafic folosit
pentru afişarea de text pe care utilizatorul nu îl
poate modifica. Textul ce va fi afişat se
stabileşte prin intermediul proprietăţii Text sau
prin cod sursa..
• Proprietăţi: Alignement; AutoSize;
BackColor; BackStyle; BorderStyle;
AllowDrop; DragMode; Enabled; Fontul
Bold; Fontul Italic; Font Name; FontSize;
Font Strikethrough; Font Underline;
ForeColor; Height;Index; Left; Cursor;
Name; TabIndex; Tag; Top; Visible; Width;
WordWrap. 9
10/84 10/13/21

Control Etichetă (LABEL)


• Definiţie: DDE reprezintă Dynamic Data
Exchange (Transfer Dinamic de Date);
• Evenimente: TextChanged; Click; DoubleClick;
DragDrop; DragOver; MouseUp;
MouseDown; MouseMove;
• Metode: Enabled; Hide; MouseButtons;
MousePosition; ProductName; Product
Version; ResetText; Update; SetBounds;
Show; Refresh; TextAlign; UseWaitCursor;
10
11/84 10/13/21

Controlul Casetă de text (TextBox)


• Spre deosebire de controlul etichetă, controlul
Casetă de text este folosit pentru a afişa textul
specificat în faza de proiectare (la proprietatea
Text), introdus de utilizator la execuţie sau asociat
controlului prin program.
• Acest control poate fi folosit pentru ca aplicaţia să
preia diferite informaţii de la utilizatori. Textul care
se va afişa sau care va fi preluat se gestionează cu
ajutorul proprietăţii Text.
11
12/84 10/13/21

Controlul Casetă de text (TextBox)


• Proprietăţi: AcceptsReturn AcceptsTab AllowDrop
AutoCompleteCustomSource AutoCompleteMode AutoCompleteSource
BackColor BackgroundImage BackgroundImageLayout BorderStyle Cursor
Dock Enabled Font FontHeight ForeColor Height Location MaxLength
Multiline Name Parent PasswordChar ReadOnly Size Text TextAlign
UseSystemPasswordChar Visible Width WordWrap
• Evenimente: AutoSizeChanged, BackColorChanged,
BackgroundImageChanged, Click, CursorChanged, Disposed, DoubleClick,
DragDrop, DragEnter, DragLeave, DragOver, EnabledChanged, GotFocus,
KeyDown, KeyPress, KeyUp, LostFocus, MouseClick, MouseDown,
MouseEnter, MouseHover, MouseLeave, MouseMove, MouseUp,
MouseWheel, Move, ParentChanged, VisibleChanged, TextChanged
• Metode: AppendText BringToFront Clear Contains Copy Dispose
Equals(Object) Cut Focus Hide Refresh ResetCursor SelectAll Set Bounds S
how UpdateZOrder.
12
13/84 10/13/21

Controlul Casetă de text (TextBox)


   Exerciţiul 1:
Să se realizeze o aplicaţie care să realizeze
concatenarea a două şiruri introduse de la tastatură.
•Vom proiecta o formă pe care vom specifica funcţiile
aplicaţiei şi vom pune la dispoziţia utilizatorului două
casete de tip Text (Text Box) pentru a specifica cele
două şiruri şi o a treia casetă pentru a afişa rezultatul.
•Vom mai pune la dispoziţia utilizatorului un buton de
comandă pentru a determina procedura de calcul, un
buton pentru ieşirea din aplicaţie şi unul pentru a
şterge conţinutul casetelor în vederea reluării
calculului (un fel de Reset).
13
14/84 10/13/21
Curs 2 Exemplu 1

14
15/84 10/13/21
Curs 2 Exemplu 1

15
16/84 10/13/21
Curs 2 Exemplu 1

16
17/84 10/13/21

Controale Visual Basic


Exemplu 1
Proprietăţi modificate:
• Form1.Text= “Concatenare”
• Form1.Button1.Text= “Concatenare”
• Form1.Button2.Text= “Reset”
• Form1.Button3.Text= “Exit”
• Form1.Label1.Text= “CONCATENARE”
• Form1.Label2.Text= “+”
• Form1.Label3.Text= “=”
• Form1.textBox1.text=“”
• Form1.textBox2.text=“”
• Form1.textBox3.text=“”
17
18/84 10/13/21

Controale Visual Basic


Exemplu 2
Adăgaţi pe forma de mai sus un buton nou, la
apăsarea căruia să se calculeze suma a două
numere introduse de la tastatură prin intermediul
celor două casete de text.
Rezolvare:
•Vom modifica mai întâi textul afişat în partea de
sus pentru a preciza corect funcţiile aplicaţiei.
•Din analiza problemei, reiese că se poate cere
fie concatenarea (alipirea) valorilor introduse în
cele două casete de text, fie suma acestora, dacă
au fost introduse valori numerice.
18
19/84 10/13/21

Controale Visual Basic


Exemplu 2

19
20/84 10/13/21

Controale Visual Basic


Exemplu 2
Proprietăţi modificate:
• Form1.Text= “Concatenare/Sumă”
• Form1.Button1.Text= “Concatenare”
• Form1.Button2.Text= “Reset”
• Form1.Button3.Text= “Exit”
• Form1.Button4.Text= “Sumă”
• Form1.Label1.Text= “SUMA/CONCATENARE”
• Form1.Label2.Text= “+”
• Form1.Label3.Text= “=”
• Form1.textBox1.text=“”
• Form1.textBox2.text=“”
• Form1.textBox3.text=“”

20
21/84 10/13/21

Controale Visual Basic


Exemplu 2
Private Sub Button1_Click()
TextBox3.Text = TextBox1.Text + TextBox2.Text
End Sub
Private Sub Button2_Click() sau Private Sub Button2_Click()
TextBox1.Text = " " TextBox1.Text = Empty
TextBox2.Text = " " TextBox2.Text = Empty
TextBox3.Text = " " TextBox3.Text = Empty
End Sub End Sub
Private Sub Button3_Click()
End
End Sub
Private Sub Button3_Click()
TextBox3.text=Str(Val(textBox1.text)+Val(textBox2.text))
End Sub
21
22/84 10/13/21

Controale Visual Basic


Exemplu 2

22
23/84 10/13/21
Curs 2 Exemplu 2

23
24/84 10/13/21
Curs 2 Exemplu 2

24
25/84 10/13/21
Curs 2 Exemplu 2

25
26/84 10/13/21

Setul de caractere
• Pentru a scrie instrucţiunile pe care calculatorul să le
interpreteze şi să le execute în cadrul programului folosim
cuvintele. Acestea sunt entităţi formate din caractere.

În cazul limbajului Visual Basic se pot folosi caracterele:


– Literele mari şi mici ale alfabetului limbii române:
A-Z, a-z;
– Cifrele sistemului de numerotaţie zecimal:0-9;
– Caractere speciale: + - / ^ () [] {}. , ; :_ ! # % & $ etc.;
– Caracterele speciale perechi, care definesc
operatori de comparare: <=, >=, = ,<>;
– Separatorii: spaţiu, tab şi caracterul Enter.
26
27/84 10/13/21

Reguli pentru identificatori


• să înceapă cu o literă;
• să nu conţină anumite caractere cum ar fi: . %!
$&#@;
• numele variabilelor nu pot fi mai lungi de 255
caractere, iar cele ale controalelor, modulelor,
formelor şi claselor nu pot fi mai lungi de 40
caractere;
• nu trebuie să existe mai mulţi identificatori identici;

27
28/84 10/13/21

Identificatori
• Un identificator este numele dat de programator unui
element dintr-un program, care poate fi o variabilă, o
constantă, un tip definit de utilizator, o enumerare, o
procedură, o funcţie, un obiect, o metodă, o proprietate, un
control, o formă, un modul sau chiar proiectul însuşi. Un
proiect Visual Basic poate să conţină maxim 32000
identificatori.
Observaţie:
• Visual Basic nu face diferenţa între literele mari şi mici
folosite în cuvintele cheie sau în formarea identificatorilor.

28
29/84 10/13/21

Reguli pentru identificatori


• nu pot fi identificatori cuvintele cheie (rezervate)
ale limbajului. Cuvintele cheie sunt identificatori cu
semnificaţie fixată, care nu pot fi folosiţi în alt
context decât cel precizat de semantica limbajului.
Exemple: Dim, Private, Public, Array , For , Next,
If, Then, Else, End etc.
• există o serie de identificatori standard, definiţi de
Visual Basic. O redeclarare a lor de către
programator va duce la nerecunoaşterea
sensurilor iniţiale.
29
30/84 10/13/21

Comentarii , separatori, împărţirea liniei

    Comentariile sunt şiruri de caractere care au în


faţă caracterul apostrof (`) şi servesc pentru a
face textul programului mai lizibil, pentru a
documenta programul.
Exemple:
´ Aici începe programul
• Dim iVirsta as Integer ´ Vârsta sportivilor
• Dim iGreutatea as Interger ´Greutatea sportivilor
în kilograme
30
31/84 10/13/21

Comentarii , separatori, împărţirea liniei

• Comentariile mai pot fi utilizate pentru a determina


compilatorul să nu mai execute anumite instrucţiuni,
mai ales în faza de testare a programului.
• În general în Visual Basic se poate scrie o singură
instrucţiune pe o linie. Totuşi, dacă se doreşte, se pot
scrie mai multe instrucţiuni pe o singură linie
despărţindu-le cu ajutorul separatorului de
instrucţiuni şi declaraţii care este caracterul : (două
puncte).

31
32/84 10/13/21

Comentarii , separatori, împărţirea liniei

Exemplu:
Dim a as Integer : a=10

• Pe de altă parte, pentru a spori lizibilitatea


programelor, dacă o declaraţie sau o instrucţiune
este prea mare, atunci ea se poate scrie pe mai
multe linii. Aceasta se realizează folosind
caracterul continuator de linie ( _)( un spaţiu
urmat de o linie jos).
32
33/84 10/13/21

Convenţii privind formatul comenzilor


(instrucţiunilor) Visual Basic
• Cuvintele scrise îngroşat (Bold) sunt cuvinte cheie,
care trebuie folosite ca atare, iar cele scrise cu
caractere normale reprezintă cerinţe. Ele se vor
înlocui cu ceea ce se cere efectiv .
• Cuvintele scrise între paranteze drepte [] semnifică
ceva opţional, care poate fi scris sau poate lipsi.
• Caracterul / între două cuvinte semnifică faptul că
se poate folosi oricare dintre acele cuvinte în sintaxa
comenzii.
33
34/84 10/13/21

TIPURI DE DATE
• Tipul unei date defineşte mulţimea de valori
pe care le poate lua o variabilă şi mulţimea de
operaţii care pot fi efectuate cu elementele
mulţimii respective. În funcţie de tipul de dată
declarat pentru o anumită variabilă
compilatorul alocă o zonă mai mare sau mai
mică de memorie pentru reprezentarea ei.

34
35/84 10/13/21

Operaţii pentru un tip de dată


- Pentru valorile unui tip întreg se pot face
următoarele operaţii: adunarea(+); scăderea (-);
înmulţirea(*); împărţirea întreagă (\); împărţirea
reală(/); restul împărţirii întregi (mod); ridicarea la
putere (^).
Sunt permise de asemenea operaţiile relaţionale:
mai mic sau egal (<=); mai mic (<); egal (=); mai
mare(>); mai mare sau egal (>=);
Rezultatul unor astfel de operaţii este de tip
boolean, având valorile logice True sau False.
35
36/84 10/13/21

Operaţii pentru un tip de dată


• Pentru valorile unui tip real se pot face următoarele
operaţii: adunarea (+); scăderea(-); înmulţirea(*);
împărţirea(/); ridicarea la putere (^). Sunt permise
şi operaţiile relaţionale prezentate la tipurile
întregi.
• Pentru şirurile de caractere sunt permise operaţia
de concatenarea (& sau +) şi operaţiile de
comparaţie (<,<=,=,>=,>). Prin concatenare două
sau mai multe şiruri de caractere pot fi alipite
formând un singur şir de caractere. Cu ajutorul
operaţiilor de comparaţie se stabileşte poziţia
alfabetică a şirurilor de caractere;
36
37/84 10/13/21

Operaţii pentru un tip de dată


• Pentru valorile de tip logic, boolean (True şi
False) sunt permise următoarele operaţii
logice: negarea logică (Not); şi logic (And); sau
logic (Or); sau exclusiv logic (Xor); echivalenţa
logică (Eqv); implicaţia logică (Imp);
• Pentru tipul de dată de tip obiect este permisă
o singură operaţie – cea de comparaţie (Is).

37
38/84 10/13/21

Constante
• O constantă reprezintă o valoare fixă care nu se
schimbă în timpul execuţiei programului sau de la o
execuţie la alta, identificată printr-un nume
(identificator). O constantă poate conţine numere,
şiruri de caractere, date calendaristice, etc. Ea
poate avea deci un anumit tip.
În Visual Basic există două tipuri de constante:
• Intrinseci sau definite de sistem; Visual Basic
pune la dispoziţie o serie întreagă de constante
pentru culori, taste, figuri etc.
• Simbolice sau definite de utilizator (se declară
prin instrucţiunea Const).
38
39/84 10/13/21

Definirea unei constante


Formatul general al declaraţiei de constante este:
[Public|Private] Const NumeConstanta[As type] = expresie
unde:
•cuvintele Public sau Private definesc tipul constantei: Public,
dacă poate fi referită în toate procedurile şi respectiv Private
dacă este definită doar pentru procedura curentă.
•Const : cuvânt cheie
•NumeConstantă – numele atribuit ca identificator constantei
respective
•As type – defineşte tipul constantei
•Expresie – defineşte valoarea sau expresia din evaluarea
căreia rezultă valoarea constantei

39
40/84 10/13/21

Observaţie:
• Dacă se specifică direct valoarea constantei, atunci trebuie
să reţinem următoarele:
• o constantă de tip numeric sau logic se precizează prin
valoarea ei scrisă ca atare;
• o constantă de tip şir de caractere trebuie scrisă între
delimitatorii “ “ (ghilimele);
• o constantă de tip dată calendaristică se precizează între
delimitatorii # #.
Exemple:
Const PI = 3.14159265358979
Const Nr_zile_lucratoare = 22
Const Zi_de_nastere = #02.04.1981#
Const Nume_aplicatie = ˝Salarii˝

40
41/84 10/13/21

Variabile Visual Basic


• O variabilă reprezintă o locaţie de memorie
internă care serveşte pentru stocarea temporară a
datelor şi care se identifică printr-un nume. O
variabilă poate conţine orice tip de dată care poate fi
modificat în timpul execuţiei programului.
• Tipul variabilelor din Visual Basic sunt: Variant,
Byte, Boolean, String, Integer, Long, Single, Double,
Currency, Date şi Object.
• Tipul implicit pentru orice variabilă este tipul
Variant (nedefinit).
41
42/84 10/13/21

Variabile Visual Basic


O variabilă se caracterizează prin cele două
elemente:
• numele variabilei, care este un identificator cu
ajutorul căruia putem să referim variabila pe
parcursul programului;
• tipul variabilei, care precizează tipul de date
care pot fi stocate de variabila respectivă. În funcţie
de tipul variabilei compilatorul alocă o zonă de
memorie mai mică sau mai mare pentru aceasta.

42
43/84 10/13/21

Declararea variabilelor
Declararea variabilelor se poate face în Visual Basic în două
moduri :
•implicit
•explicit.
În modul implicit o variabilă este considerată declarată la
prima ei folosire. Nu este necesară o declarare prealabilă cu
ajutorul cuvintelor cheie Dim, Private, Public. În mod implicit
Visual Basic declară toate variabilele de tip Variant.
•Declararea explicită a variabilelor presupune ca înainte să
fie folosită, o variabilă să fie declarată cu ajutorul uneia dintre
comenzile Dim, Private, Public.

43
44/84 10/13/21

Observaţie:
• Se poate scrie la începutul modulului opţiunea
Option Explicit sau
• Se poate cere mediului de programare să facă
acest lucru automat selectând din meniul Tools –
Options - Editor opţiunea Require Variable
Declaration. În acest caz Visual Basic ne va
atenţiona dacă folosim o variabilă pe care nu am
declarat-o anterior. Este o opţiune deosebit de utilă
şi se recomandă pentru a evita greşeli.
44
45/84 10/13/21

Variabile Visual Basic


• Definirea unei variabile Visual Basic se poate face în două
moduri:
• Utilizând operatorul de atribuire:
NumeVariabilă=Variabilă;
• Declarând variabilele cu comanda Dim, Private sau Public.
Public, Private, Dim sunt cuvinte rezervate limbajului Visual
Basic prin care se precizează dacă variabilă respectivă este de
tip public adică accesibilă în toate procedurile sau privat|
Dim, accesibilă doar în procedura curentă (locală);

45
46/84 10/13/21

Declararea unei variabile


Se face astfel:

Public|Private|Dim] NumeVariabilă As TipVariabilă

- NumeVariabilă este identificatorul variabilei;


- As este un cuvânt cheie care precizează faptul că
dorim să declarăm tipul variabilei.
- TipVariabilă este numele unui tip de date dintre
cele pe care le acceptă Visual Basic.
46
47/84 10/13/21

Declararea unei variabile Exemple:


• Dim i as Integer ´ defineşte variabila locală i de tip
Integer
• Dim ZiSalar as Date ´ defineşte variabila locală
ZiSalar de tip Date
• Private Nume as String ´ defineşte variabila locală
Nume de tip String
• Public ListaPreturi as ListBox ´ defineşte variabila
ListaPreturi ce va conţine o ´referinţă către un
obiect de tip ListBox.
47
48/84 10/13/21

Variabile caracteristici
Variabilele au două caracteristici deosebit de importante şi
anume:
•domeniul de valabilitate
•durata de existenţă.
Astfel variabilele utilizate în cadrul unei proceduri se numesc
variabile locale. Acestea se declară în interiorul procedurii cu
ajutorul comenzii Dim. Variabilele locale există atâta timp cât se
execută procedura în care au fost declarate şi pot fi utilizate
numai în cadrul acelei proceduri, neavând nici o semnificaţie în
altă parte a programului. Aceste variabile au deci un domeniu de
valabilitate restrâns doar la nivelul procedurii şi au o durată de
viaţă temporară.

48
49/84 10/13/21

Variabile caracteristici
• Un alt tip de variabile îl reprezintă cele cu
domeniu de vizibilitate la nivelul unui modul.
Aceste variabile pot fi folosite oriunde în
interiorul modulului în care au fost declarate.
Ele există atâta timp cât este folosit modulul
respectiv.
• Se recomandă ca declararea lor să se facă cu
ajutorul comenzii Private în loc de Dim.
49
50/84 10/13/21

Variabile caracteristici
• Un alt tip de variabile îl reprezintă variabilele publice sau
globale, vizibile la nivelul întregului program. Acestea pot fi
folosite oriunde în program, au un domeniu de valabilitate
global şi există atâta timp cât se execută programul.
Variabilele globale se declară utilizând comanda Public în
zona General Declaration.
• Pe lângă acestea, un alt tip de variabile sunt cele statice.
Acestea pot avea un domeniu de valabilitate locală sau la
nivelul unei proceduri, dar o durată de existenţă
permanentă. Declararea lor se face cu ajutorul comenzii
Static.

50
51/84 10/13/21

Variabile caracteristici
• De exemplu se poate defini o variabilă statică la nivelul unei
proceduri. Ea va fi vizibilă doar la nivelul acelei proceduri, dar
îşi va păstra valoarea şi după ce procedura îşi va termina
execuţia. Dacă procedura va fi din nou apelată, variabila
statică nu va fi iniţializată automat de Visual Basic, aşa cum se
întâmplă cu variabilele care nu sunt statice, ci va avea
valoarea pe care a avut-o la ultima ei folosire.
• Diferenţa dintre variabilele declarate cu Dim şi cele declarate
cu STATIC constă deci în durata de viaţă a variabilelor. Astfel,
cele declarate cu static nu se modifică şi nu îşi pierd valoarea
stabilită pe parcursul execuţiei programului la o nouă reluare
a acestuia.

51
52/84 10/13/21

Variabile Visual Basic - Tipul Variant


Tipul Variant este un tip special de date care poate
conţine date numerice, şiruri de caractere şi date
calendaristice, precum şi valorile speciale Null şi
Empty.
• Emty indică faptul că o variabilă nu a fost inţializată
şi este egală cu 0 când se referă la valori numerice
sau are lungime nulă când se referă la şiruri de
caractere.
• Null indică faptul că o variabilă nu conţine nici o
dată validă în mod deliberat.
52
53/84 10/13/21
FUNCŢII ÎNCORPORATE ÎN VISUAL BASIC
• Funcțiile sunt relații ce asociază unei valori o altă valoare (în
condiții specifice definiției funcției).
• Funcțiile pot fi folosite în expresii cu operatori de același tip
cu valoarea rezultată din funcție
• O funcție poate constitui singură o expresie.
• Expresiile definesc relații prin care se asociază unei valori o
altă valoare
• În expresii avem operatori și operanzi sau valori (care trebuie
să fie de același tip). Exemple:
– Cu operatorii +,-,*,^ … se pot contrui expresii între valori numerice
(inclusiv funcții cu valori numerice). Valoarea rezultată va fi numerică.
– Cu operatorii + și – se pot construi expresii ce au ca valori șiruri de
caractere. În acest caz + înseamnă operația de concatenare. Valoarea
rezultată va fi un șir de caractere.
• Nerespectarea regulilor de construire a expresiilor poate
induce erori grave și greu de găsit pentru corectare.
54/84 10/13/21
FUNCŢII ÎNCORPORATE ÎN VISUAL BASIC

Visual Basic oferă o gamă extinsă de funcții,


dintre care:
• Funcţii matematice şi statistice
• Funcţii pentru şiruri de caractere
• Funcţii financiare
• Funcţii pentru conversie între tipuri de date
• Funcţii de verificare a tipului de data
• Funcţii pentru lucrul cu date calendaristice
• Funcţii pentru lucrul cu fişiere
55/84 10/13/21
Funcţii matematice şi statistice
• ABS( ) – determină o valoare absolută a expresiei numerice
• EXP( ) – determină valoarea lui e, baza logaritmului natural
• INT( ) – determină partea întreagă a numărului dat sau
rezultat din evaluarea expresiei
• LOG( ) – Determină logaritmul natural din valoarea
argumentului.
• RND( ) - rotunjeşte rezultatul la un număr real, cu un număr
de zecimale dat
• SQR( ) – determină rădăcina pătrată a numărului dat sau
rezultat.
• ATN( ) – determină valoarea în radiani a arctg (N )
• SIN( ) – Determină valoarea lui sin (N)
• COS( ) şi TAN( ) – determină după caz valoarea cosinusului şi a
tangentei.
56/84 10/13/21
Funcţii pentru şiruri de caractere
• LCASE(şir) – transformă literele dintr-un şir în litere mici .
• UCASE(şir) – realizează inversul instrucţiunii de mai sus.
• LTRIM(şir) - elimină spaţiile de la începutul şirului.
• RTRIM(şir) - elimină spaţiile de la sfârşitul şirului.
• TRIM(şir) – elimină spaţiile de la începutul şi de la sfârşitul
şirului.
• CHR(val) – returnează caracterul corespunzător codului din
paranteză.
• ASC(şir) – returnează codul caracterului prezent în paranteză.
• LEN(şir) – returnează numărul de caractere al şirului specificat
(lungimea şirului).
• VAL(şir) – returnează valoarea numerică a şirului de caractere
precizat sau rezultat din evaluarea expresiei date.
57/84 10/13/21
Funcţii pentru şiruri de caractere
• StrREVERSE(şir) inversează ordinea caracterelor într-un şir;
• LEFT(şir,Nrc) extrage din şirul de caractere specificat primele
Nrc caractere din partea stângă a şirului;
• RIGHT(şir,Nrc) extrage din şirul de caractere specificat primele
Nrc caractere din partea dreaptă a şirului;
• MID(şir,Start [,Nrc]) extrage din şirul de caractere specificat
primele Nrc caractere din partea stângă a şirului începând cu
poziţia precizată prin Start;
• INSTR ([intStart, ] Şir, strCaută[, intCompară]) verifică dacă un
caracter sau un şir (strCaută) se găseşte în interiorul altui şir
(Şir). În caz afirmativ funcţia returnează poziţia primului
caracter căutat în şirul Şir. Funcţia este deci un instrument de
căutare a unui subşir şi întoarce prima poziţie din şir
corespunzătoare primului caracter din şirul dorit
58/84 10/13/21
Funcţii financiare
• DDB calculează şi returnează amortismentul unui bun pe parcursul unei perioade
specificate, urmând metoda amortismentului degresiv cu rată dublă sau după un
coeficient care trebuie specificat;
• FV calculează şi returnează valoarea viitoare a unei investiţii;
• IPMT calculează şi returnează suma dobânzilor unei investiţii pentru o perioadă
dată;
• IRR calculează şi returnează rata de rentabilitate internă pentru fluxurile
financiare pozitive şi negative finanţate la rate diferite;
• MIRR calculează şi returnează rata de rentabilitate internă a unei investiţii fără a
ţine seama de costurile de finanţare şi de plusvalorile de reinvestire;
• NPER calculează şi returnează numărul de plăţi pentru o investiţie dată;
• NPV calculează şi returnează valoarea actuală netă a unei investiţii pe baza
fluxurilor financiare variabile;
• PMT calculează suma totală a fiecărei rambursări periodice a unei investiţii şi
ratele dobânzii constante;
• PPMT calculează partea vărsământului principal al unui împrumut pentru o
perioadă dată;
• PV calculează valoarea actuală a unei investiţii;
• RATE calculează rata dobânzii pe perioada unei investiţii date;
• SLN calculează amortismentul unui bun pentru o perioadă dată pe baza metodei
americane SUM-of-Years Digits.
59/84 10/13/21
Funcţii pentru conversie
Funcţii pentru conversia întregilor
• Int() - Parte întreagă din argument
• CInt() - Rotunjeşte valori fracţionare de .5 sau mai mult către următorul
întreg.

Funcţii pentru conversia tipului de dată


• CDbl(arg) - Converteşte argumentul la un echivalent în dublă precizie
• CLng(arg) - Converteşte argumentul la un echivalent de tip Long Integer
• CSng(arg) - Converteşte argumentul la un echivalent numeric în simplă
precizie
• CStr(arg) - Converteşte argumentul la un echivalent de tip String
• CVar(arg) - Converteşte argumentul la un echivalent de tip Variant
• CCur(arg ) - Converteşte argumentul la un echivalent de tip Currency
60/84 10/13/21
Funcţii de verificare a tipului de dată
• IsNumeric() - Determină dacă argumentul are o
valoare care poate fi convertită într-un număr valid.
• IsDate() - Determină dacă argumentul poate fi
convertit într-o dată validă.
• IsEmpty() - Determină dacă argumentul a fost
iniţializat cu orice valoare de la definirea sa originală.
• IsNull() - Determină dacă argumentul are o valoare
Nulă. (cum ar fi o linie goală)
• VarType() – Determină tipul argumentului. În tabelul
următor se prezintă valorile returnate de funcţia
VarType
61/84 10/13/21
Valorile returnate de funcţia VarType()

.
62/84 10/13/21
Funcţii pentru lucrul cu date calendaristice
• IsDate (expresie) - verifică dacă o expresie şir de
caractere sau de tip dată reprezintă o dată calendaristică
validă.
• Time() – serveşte pentru a obţine ora din sistem,
• Date – serveşte pentru a obţine data sistemului
• Now – serveşte pentru a le obţine pe amândouă (data şi
ora).
• CStr (Time) – transformă ora în şir de caractere;
• CStr (Date) – transformă data calendaristică în şir de
caractere;
• CStr (Now) – transformă data şi ora în şir de caractere:
63/84 10/13/21

Funcţii pentru lucrul cu fişiere


• Seek(NumărFişier) returnează ca valoare
poziţia curentă de citire/scriere în cadrul unui
fişier deschis cu instrucţiunea Open.
• LOF(NumărFişier) returnează mărimea
fişierului exprimată în octeţi.
• EOF(NumărFişier) returneză valoarea logică
True dacă s-a ajuns la sfârşitul unui fişier
deschis în mod aleatoriu sau secvenţial şi False
în caz contrar.
64/84 10/13/21

COMENZI VISUAL BASIC


COMENZI PENTRU STRUCTURILE DE CONTROL ALE
PROGRAMELOR
Exista cele trei tipuri de structuri fundamentale:
• structura secvenţială sau liniară;
• structura alternativă sau de decizie;
• structura repetitivă.
Limbajul de programare Visual Basic implementează
ultimele două structuri de control ale programului,
prin comenzi corespunzătoare deci :
• Comenzi pentru structuri alternative (de decizie);
• Comenzi pentru structuri repetitive (tip buclă).
65/84 10/13/21

Structura secvenţială sau liniară


Acestea se concretizează practic prin două tipuri
de comenzi:
a). instrucţiunea de atribuire
variabilă = expresie sau
Set variabilă = obiect sau
Nume_de_funcţie = expresie
b). instrucţiunea de apel procedură
Call nume_de_procedură(listă_parametri_actuali)
66/84 10/13/21

Structuri alternative
Structura alternativă poate fi întâlnită sub diverse forme:
• structură alternativă cu două ramuri (simplă);
• structură alternativă cu ramură vidă (pseudoalternativă);
• structură alternativă cu mai multe ramuri
(compusă/imbricată);
• structură alternativă generalizată.
În Visual Basic structurile alternative sau de decizie sunt
implementate prin comenzi asemănătoare altor limbaje
de programare de nivel înalt, cum sunt: Pascal, C, Cobol, şi
anume:
• If ....Then
• If ....Then ....Else
• Select Case
67/84 10/13/21

If ....Then ....Else
• Sintaxa generală a comenzii este:
If condiţie1 Then
instrucţiuni1
Else
instrucţiuni2
.......................
EndIf
Exemplu: If a>0 Then
B=a+6
Else: B=a-6
C=a+1
End If
68/84 10/13/21

Structuri repetitive
Visual Basic suportă astfel două tipuri de structuri
repetitive:
• structuri repetitive cu contor descrise de
instrucţiunile For …Next şi For…Each…Next care
execută acelaşi lucru de un număr stabilit de ori ;
• structuri repetitive cu condiţie descrise de diferitele
variante ale instrucţiunii Do…Loop ce îndeplinesc
aceeaşi sarcină atâta timp cât o condiţie există sau
până când nu mai există o condiţie. În cazul unui
număr nedefinit de repetiţii, condiţia de oprire poate
fi testată la începutul sau la sfârşitul ciclului, prin
alegerea structurii adecvate.
69/84 10/13/21

Comenzile repetitive sau de tip buclă


Permit executarea în mod repetat a unei
instrucţiuni sau a unei secvenţe de instrucţiuni
atâta timp cât o condiţie este adevărată sau
până când o condiţie este adevărată. Acestea
sunt:
While.....Wend;
Do .....Loop;
For.....Next;
For Each....Next.
70/84 10/13/21

While...Wend
Comanda While...Wend are sintaxa:
While condiţie
Instrucţiuni
Wend
Această comandă execută repetat una sau
mai multe instrucţiuni atâta timp cât o
condiţia specificată este adevărată.
71/84 10/13/21

Do...Loop
• Comanda execută o secvenţă de instrucţiuni de un număr
necunoscut de ori, atâta timp cât condiţia este adevărată.
• Sintaxa comenzii este:
Do While condiţie
instrucţiuni
Loop
• Do...Loop testează întâi condiţia: dacă aceasta are valoarea
true (este adevărată) se execută secvenţa de instrucţiuni
specificată până la Loop, altfel nu se execută nimic şi se trece
la prima instrucţiune de după Loop.
• Avem de a face deci cu o structură repetitivă condiţionată
anterior.
72/84 10/13/21

Do...Loop
Comanda Do...Loop mai are şi o altă variantă, care execută
secvenţa de instrucţiuni cât timp condiţia este falsă (până
când aceasta devine adevărată):
Do Until condiţie
instrucţiuni
Loop
• O altă variantă a acestei comenzi este cea în care mai întâi se
execută secvenţa de instrucţiuni şi apoi testează condiţia, deci
este o structură repetitivă condiţionată posterior.
• Sintaxa instrucţiunii în acest caz va fi:
Do
instrucţiuni
Loop While condiţie
• Instrucţiunile se repetă atâta timp cât condiţia este adevărată.
73/84 10/13/21

For...Next
Este o structura repetitiva cu numărător.
Sintaxa generală a acestei comenzi este:
For contor=început To sfârşit [Step pas]
instrucţiuni
Next [contor]
unde:
• contor - este variabila contor (care numără repetările), de
tip numeric.Nu poate fi de tip Boolean sau element de
tablou.
• început - este valoarea iniţială a contorului.
• sfârşit - este valoarea finală a contorului.
• pas - este cantitatea care se adună la contor la fiecare
reluare. În cazul în care nu se specifica este implicit 1.
• instrucţiuni - sunt instrucţiunile care se repetă.
74/84 10/13/21
COMENZI PENTRU LUCRUL CU FIŞIERE
• Fişierele conţin colecţii de date omogene ca natură şi criterii
de prelucrare, memorate pe discul magnetic. Fişierele
stochează pentru folosire ulterioară date numerice, texte,
imagini, etc. Fişierele reprezintă principala formă de
organizare a datelor pe disc.
Accesul la datele unui fişier poate fi:
• Binary - caz în care programatorul trebuie să localizeze în
fişier numărul de caractere ce urmează a fi citite sau scrise –
un mod de acces mai puţin utilizat.
• Secvenţial - situaţie în care pentru a ajunge la o anumită
înregistrare din fişier, trebuie parcurse una după alta toate
înregistrările fişierului (până când se ajunge la cea dorită);
• Aleator – când e permis un acces direct la înregistrarea
căutată, fără a fi necesară citirea înregistrărilor precedente
75/84 10/13/21
Deschiderea fişierului
Este o operaţie care trebuie executată înainte de orice prelucrare
a acestuia.
OPEN ( nume fişier ) FOR ( mod de deschidere ) [Access acces]
[blocare] AS # numărFişier [Len=LungÎnreg]
unde:
• nume fişier – este o expresie de tip şir de caractere (String)
care specifică numele fişierului. Acesta poate include întreaga
cale: unitate de disc, director etc;
• mod de deschidere – specifică modul de deschidere a
fişierului prin unul din următoarele cuvinte cheie: Append
(adăugare), Binary (binar), Input (citire), Output (scriere) sau
Random (aleator); Dacă lipseşte, instrucţiunea Open deschide
fişierul în modul de acces Random.
• acces – specifică operaţiile permise asupra fişierului prin unul
dintre următoarele cuvinte cheie: Read (citire), Write (scriere)
sau Read-Write (citire-scriere);
76/84 10/13/21

OPEN
• blocare – specifică operaţiile permise la deschiderea
fişierului de către un alt proces prin unul dintre
următoarele cuvinte cheie: Shared (partajat), Lock-
Read (citire interzisă), Lock-Write (scriere interzisă),
lock-Read-Write.
• numărFişier – un număr valid de fişier, cuprins între
1şi 511 inclusiv. Utilizând funcţia FreeFile se poate
obţine următorul număr disponibil.
• LungÎnreg- un număr mai mic sau egal cu 32767
(octeţi). Pentru fişierele deschise în acces aleator
această valoare este mărimea înregistrării. Pentru
fişierele text reprezintă numărul de caractere
transferate în buffer.
77/84 10/13/21
Moduri de deschidere
• Append – permite adăugarea de noi înregistrări în fişierul cu numele
specificat sau crearea acestuia, dacă el nu există. Practic cursorul se
plasează după ultimul caracter dacă este un fişier cu acces secvenţial
sau după ultima înregistrare dacă e vorba de un fişier proiectat pentru
acces aleator.
• Binary – permite scrierea sau citirea în valori numerice. De exemplu,
dacă se deschide în modul de acces Binary un fişier .bmp (imagine
grafică), atunci ca efect se generează o reprezentare numerică a
imaginii din fişierul respectiv.
• Input – permite doar citirea fişierului, care se va face secvenţial, de la
început spre sfârşit, câte un caracter sau câte o înregistrare.
• Output – permite practic crearea fişierului, prin scrierea secvenţială în
cadrul acestuia, pe rând, a câte unui caracter sau câte o înregistrare.
Dacă fişierul exista şi a fost deschis Output, el va fi practic recreat,
adică noul fişier se va suprascrie peste cel vechi. De aceea se
recomandă multă atenţie la utilizarea acestui mod de deschidere.
Pentru a scrie noi înregistrări într-un fişier existent vom deschide
fişierul în modul Append.
• Random – permite fie crearea, fie citirea unui fişier în acces aleator.
78/84 10/13/21
Observatie
Pentru accesul secvenţial se poate specifica:
• APPEND – pentru a adăuga înregistrări noi la sfârşit;
• INPUT – pentru a citi înregistrările din fişier;
• OUTPUT – pentru crearea unui nou fişier.
Pentru accesul binary se specifică accesul BINARY.
Pentru accesul random se specifică RANDOM.
Dacă fişierul este deja deschis şi existent, la închidere şi salvare
prin OUTPUT, acesta rescrie fişierele existente.
• Pentru a lucra cu mai multe fişiere simultan, se va utilize
funcţia FREE FILe, care returnează următorul număr de fişiere,
care poate fi utilizat în instrucţiunea OPEN.
79/84 10/13/21

Scrierea unei înregistrări


• Scrierea unei înregistrări într-un fişier aleator se face cu
instrucţiunea PUT care are următoarea sintaxă:
PUT #NumeFişier, [NumărÎnreg], NumeVariabilă
unde:
NumărÎnreg este numărul înregistrării pe care dorim să o
scriem.
NumeVariabilă este numele variabilei ce defineşte
înregistrarea (declarată de tipul utilizator).
• Scrierea datelor în fişierele binare se aseamănă cu cea în
fişierele aleatoare, folosind instrucţiunea Put.
80/84 10/13/21
Poziţionarea pentru citire
Poziţionarea pentru citire pe o înregistrare dintr-un
fişier aleator se face cu instrucţiunea GET, care are
următoarea sintaxă:
GET [#]numărfişier [, număr]
unde numărfişier este numărul de identificare al
fişierului dat în instrucţiunea OPEN, iar număr este
numărul de înregistrare ce se doreşte accesată.
Observaţie:
La fişierele aleatoare accesul la înregistrări se poate
face doar prin intermediul numărului de înregistrare
81/84 10/13/21
Închiderea fişierelor
Închiderea fişierelor se realizează cu comanda CLOSE,
a cărei sintaxă este:
CLOSE [listă fişiere] sau altfel spus
CLOSE [ # numărFişier1] [, # numărFişier2] [, #
numărFişier3…]
• Dacă lista fişierelor ce trebuie închise lipseşte,
atunci toate fişierele deschise cu Open care sunt
active în mod curent vor fi închise.
• Prin închiderea unui fişier cu Close asocierea dintre
fişier şi numărul său dispare.
82/84 10/13/21
Scrierea datelor într-un fişier secvenţial
Print #NumărFişier, listă_expresii
sau
Write #NumărFişier, listă_expresii
unde:
listă_expresii este o listă de variabile a căror valoare
urmează să fie trecută în fişier.
OBS: Instrucţiunea WRITE # este similară cu
instrucţiunea PRINT #, singura diferenţă între cele
două instrucţiuni fiind că WRITE # inserează virgule
între termeni, şirurile de caractere sunt delimitate de
ghilimele, iar numerele pozitive nu sunt precedate de
spaţii.
83/84 10/13/21

END

83

S-ar putea să vă placă și