Sunteți pe pagina 1din 39

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.

NET
_________________________________________________________________________________________________________________

UNITATEA DE NVARE 3
ELEMENTELE LIMBAJULUI VB.NET
___________________________________________________________________________

Cuprins
Obiectivele unitii de nvare 3
3.1. Introducere n VB.NET
Evoluia limbajului BASIC
Caracteristicile limbajului VB.NET
Platforma .NET Framework
Structura unei aplicaii n VB NET
ntrebri
3.2. Tipuri de date
Definirea conceptului de tip de dat
Categorii de tipuri de date
Copierea i compararea datelor
ntrebri
3.3. Structurile lexicale ale limbajului VB.NET
Categorii de uniti lexicale
Comentariile
Cuvintele cheie
Identificatorii
Literalii
Separatorii
Variabilele
Constantele
Operatori
Instruciunile
ntrebri
3.4. Instruciuni n VB.NET
Instruciunile declarative
Instruciunile de control
Alte instruciuni executabile
ntrebri
3.5. Subprograme in VB.NET
Funciile de sistem (intrinseci)
Subprogramele definite de utilizator
ntrebri

Bibliografie Unitatea de nvare 3

1
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

OBIECTIVELE UNITII DE NVARE 3

nsuirea cunotinelor necesare pentru a nelege noiunile de soluie, proiect i


aplicaie.

Cunoaterea caracteristicilor platformei .NET Framework, a provocrilor


induse de globalizarea programrii n Internet i soluiile de unificare adoptate.

Definirea conceptului de tip de dat, nelegerea tipurilor de date, a modului de


comparare i copiere.

nsuirea unitilor lexicale n VB.NET i a deprinderilor de utilizare corect a


lor.

nsuirea principalelor instruciuni declarative i de control implementate n


VB.NET.

Cunoaterea principalelor categorii de funcii de sistem (intrinseci) implementate


n VB.NET.

Definirea i apelul subprogramelor definite de utilizator.

3.1. Introducere n VB.NET

Evoluia limbajului BASIC

Evoluia limbajului BASIC (Beginners Allpurpose Symbolic Instruction Code) poate fi


sintetizat astfel:
a fost creat n 1963 la Darmouth College, SUA, ca limbaj de programare facil pentru
studenii cu profil uman;
a cunoscut o larg rspndire pe microcalculatoarele anilor 70 i home computers n
anii 80;
n 1975 firma Microsoft ofer un interpreter BASIC pentru calculatorul Altair 8800
(primul produs al firmei nou nfiinate);
Microsoft a dezvoltat ulterior noi versiuni: pentru MS-DOS (GWBasic i QBasic);
pentru interfee grafice ncepnd din 1991(VB versiunea 1), 1998 VB 6; limbaje
derivate (VBA Visual Basic for Application ncorporat n MS-Office; VBScript
pentru WEB). Limbajul Visual Basic nu a rmas pe loc, n timp ce provocrile
tehnologice s-au modificat i au crescut. VB 3 a adugat capabilitatea DAO (Data
Access Object) pentru a accesa bazele de date i alte surse de date. VB 4 a oferit dou
compilatoare separate unul pe 16 bii i altul pentru 32 bii. De asemenea a permis
2
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

dezvoltatorilor s construiasc programe pe baza modelului COM (Component Object


Model), oferind posibilitatea de a crea biblioteci cu legturi dinamice (DLL) i a
debutat programarea bazat pe clase. n VB 5 limbajului i s-a adugat capacitatea de a
construi i distribui controale ActiveX. VB 6 a fost rescris n ntregime i a oferit noi
controale de WEB i posibilitatea motenirii interfeelor pentru clase;
VB Net este succesorul lui VB6; versiunile lui VB Net sunt: 2002 (versiunea 7.0),
2003 (versiunea 7.1), 2005 (versiunea 8.0), 2008 (versiunea 9.0), 2010 (versiunea
10.0). Tranziia de la limbajele de programare tradiionale la VB.NET este considerat
de ctre muli1, inclusiv de Bill Gates, a fi mai dramatic dect tranziia de la DOS la
Windows.

Caracteristicile limbajului VB.NET

VB.NET:
este un limbaj complet pentru programarea orientat pe obiecte, avnd
implementate toate paradigmele programrii orientate obiect;
este un limbaj puternic tipizat la activarea directivei Option explicit on (care
foreaz definirea explicit a variabilelor nainte de utilizare). Dac se activeaz i
Option strict on (nu vor fi permise conversiile implicite cu pierdere de mrime sau
precizie) ;
trateaz structurat excepiile prin structura: Try Catch Finally;
ofer suport pentru prelucrrile multi-fir (multi-threading);
ofer suport pentru dezvoltarea WEB.

Platforma .NET Framework

Trecerea de la programarea clasic la programarea orientat pe obiecte a permis realizarea


saltului calitativ dup ce limbajul C++ a ctigat teren. Dar cum VB.NET i C++ au rutine de
execuie separate, fiecare cu componente distincte. Pentru a rezolva problema comunicrii
ntre limbaje Microsoft a dezvoltat mai nti mecanismele COM. Modelul COM este un
standard (o convenie) care stabilete regulile cum trebuie construit o component COM,
pentru a putea comunica cu orice component COM, indiferent de limbajul n care a fost
construit. Astfel COM a nceput s acioneze ca un standard binar de interoperabilitate ntre
obiecte. S-a dovedit c utilizarea standardului COM prin intermediul Internetului pe o main
aflat la distan nu s-a putut realiza fr probleme, deoarece modelul COM distribuit
1

John Connell, Microsoft Visual Basic .NET, Editura Teora 2003, pg. 4

3
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

(DCOM) s-a lovit de eterogenitatea sistemelor de operare i a platformelor de lucru n


Internet. Au fost mai multe ncercri de soluionare a problemelor ivite (proiectul COBRA,
etc.), fr a se gsi o soluie viabil n marea eterogenitate de platforme, sisteme i
dispozitive.
Platforma .NET Framework a venit cu urmtoarea soluie2: n loc de a nva noi tehnici
pentru a optimiza programele n funcie de echipamentul hardware i sistemul specific de
operare vom utiliza compilatoare separate n funcie de arhitectur pentru fiecare platform
nou (sau deja existent) i apoi vom denumi fiecare versiune pe care dezvoltatorii o pot
utiliza .NET. La baza acestei noi abordri se afl Rutina de execuie a limbajului comun
(Common Language Runtime - CLR). CLR ofer multe beneficii programatorilor n orice
limbaj .NET (VB.NET, C++ , C# sau altul din cele 17 limbaje suportate de CLR). CLR
faciliteaz pentru programatorii n VB.NET proiectarea i construirea de aplicaii ale cror
obiecte pot interaciona cu obiectele scrise n alte limbaje, deoarece platforma .NET este
construit pe mai multe nivele astfel:
Compilatorul VB ca i compilatoarele celorlalte 16 limbaje recunoscute de
platform se gsesc n partea superioar a platformei;
Sub compilatoare se gsesc specificaiile comune de limbaj (Common Language
Specifications - CLS): un set de reguli minimal pentru a asigura interoperabilitatea
componentelor obinute cu limbajele recunoscute de platform.
Practic, programele scrise n limbajele de programare care vor respecta cerinele minimale
impuse de Common Language Specifications - CLS, vor putea rula pe platforma .NET, vor
putea valorifica toate clasele i derivatele acestora din biblioteca comun i vor putea fi
executate pe orice calculator pe care lucreaz Common Language Runtime - CLR.
Pe ultimul nivel se afl CLR (Common Language Runtime) care preia codul
generat de VB.NET i orice limbaj compatibil (care respect specificaiile CLS) i
l convertete n limbajul nativ al arhitecturii platformei curente.
Practic CLR (Common Language Runtime) este marele unificator, el fiind responsabil de
rularea programului pe orice platform pe care poate rula CLR. CLR (Common Language
Runtime) ofer suport pentru tot ce se afl deasupra sa: biblioteca claselor de baz; date i
XML; servicii de WEB sau interfee cu utilizatorul; CLS i compilatoare i asigur i
conversia codului pentru arhitectura specific pe care se execut aplicaia, aa cum se
prezint n diagrama de mai jos.

John Connell, Microsoft Visual Basic .NET, Editura Teora 2003, pg. 7

4
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Structura unei aplicaii n VB NET


a) Soluii, proiecte i module
Un proiect este un grup de fiiere cu cod surs sau module care, atunci cnd este compilat i
rulat, formeaz o singur aplicaie, cum ar fi un program executabil, o bibliotec, un serviciu
WEB sau o aplicaie WEB de tipul ASP.NET.
O soluie este un container pentru un proiect sau mai multe proiecte inter-relaionate i se
folosete pentru gestionarea proiectelor. Orice proiect este plasat n cadrul unei soluii. Cnd
o soluie conine mai multe proiecte, acestea au de regul, legtur ntre ele.
b) Tipuri de proiecte
Tipurile de proiecte care pot fi realizate n VB.NET sunt prezentate n caseta de modele
(templates) la crearea unui nou proiect (New Project) i difer de destinaia acestora, fiind
diferite pentru:

Aplicaii Windows:

Servicii WEB:
5
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Astfel, de exemplu:
.Windows Application (aplicaie Windows) este folosit pentru a crea o aplicaie
executabil n format Windows, de obicei cu extensia .exe i reprezint standardul de aplicaii
care lucreaz sub sistemul de operare Microsoft Windows;
.Class Lirary (biblioteca de clase) este folosit pentru a crea un fiier bibliotec cu extensia
.dll;
.Console Application (aplicaie n mod consol) folosit pentru a crea o aplicaie
executabil care poate rula n mod consol (din linia de comand);
.Windows Control Library (librrie de controale Windows) folosit pentru a crea controale
Windows definite de utilizator;
.ASP.NET Web Application (aplicaie Web ASP.NET) folosit pentru a crea o aplicaie
Web de tip ASP.NET;
. ASP.NET Web Service (serviciu Web ASP.NET) folosit pentru a crea un serviciu Web.
c) Folosirea instrumentului Solution Explorer
Solution Explorer (instrumentul de navigare prin soluii) este un instrument Visual Studio,
care permite gestionarea i navigarea printre proiectele i resursele unei soluii. Activarea lui
Solution Explorer se face selectnd din meniul ferestrei design View, Solution Explorer.
Pentru a vizualiza toate fiierele soluiei se poate activa opiunea Show All Files (afieaz
toate fiierele).
Solution Explorer permite: adugarea unui proiect nou unei soluii existente (opiunea Add
(adugare) din meniul contextual); adugarea unui proiect preexistent la o soluie (opiunile:
Add (adugare) din meniul contextual, Existing Project (proiecte preexistente)); configurarea
proprietilor paginii unei soluii (n caseta Property Pages (pagini cu proprieti)), inclusiv

6
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

stabilirea proiectului de start; configurarea paginilor unui proiect, inclusiv stabilirea


subrutinei de Startup al unui proiect; etc.
ntrebri
1. Prezentai cteva argumente n favoarea ideii c Limbajul Visual Basic nu a rmas pe loc, n
timp ce provocrile tehnologice s-au modificat i au crescut.

2. Care sunt principalele caracteristici ale limbajului VB.NET?


3. Care au fost principalele provocri induse de globalizarea programrii pentru Internet?
4. Care sunt soluiile adoptate de .NET Framework pentru a permite realizarea serviciilor
Web?
5. Enumerai cteva tipuri de proiecte care por fi realizate cu VB.NET.
6. Care este rolul instrumentului Solution Explorer?
3.2. Tipuri de date

Definirea conceptului de tip de dat

Un tip de date este un plan (un model) pentru alocarea unei zone de memorie. Acest plan
determin domeniul de valori pe care memoria le poate stoca, modul de stocare i operaiile
pe care le putem realiza n memorie.

Categorii de tipuri de date

VB.NET utilizeaz dou categorii de tipuri de date: tipul valoare i tipul referin.
nelegerea diferenelor dintre tipurile de date valoare i referin este important din mai
multe motive:

Sunt tratate diferit de ctre sistemul de gestiune a memoriei;

Testeaz egalitatea n mod diferit;

Sunt iniializate diferit de rutina de execuie a limbajului comun (CLR);

Sunt tratate diferit n declaraiile de atribuire.

a) tipul valoare (primitiv sau elementar)

conine ntotdeauna o valoare;


se iniializeaz cu valoarea predefinit (dac nu sunt iniializate explicit);
poate fi ntotdeauna accesat direct;
nu poate fi derivat n alte tipuri (este nchis - sealed);
este memorat n stiv (stack).
7
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Tipurile primitive din VB.NET sunt identificate prin intermediul cuvintelor cheie care sunt n
realitate alias-uri pentru tipuri de structuri predefinite din spaiul de nume System (exemplu tipul Byte este alias-ul pentru System.Byte).
Tipurile de date de tip valoare acceptate de VB Net sunt:
Tip

Mrimea
locaiei

Valoarea
implicit

Domeniu

Byte

1 octet

0-255 (fr semn)

Boolean

4 octei

False

True sau False

Char

2 octei

Chr(0)

0, 65.535

Short

2 octei

-32.768 , 32.767

Integer (ntreg)

4 octei

2.147.483.648, 2.147.483.647

Long (ntreg lung)

8 octei

9.223.372.036.854.775.808,
-9.223.372.036.854.775.807

Single (simpl precizie)

4 octei

0.0

-3.402823E38, -1.401298E-45

Double (dubl precizie)

8 octei

0.0

-1.79769313486231D308,
4.940654584124D-324

Date (dat calendaristic)

8 octei

#01/01/000 ian 1,100 i dec 31,9999


1 12:00:00
AM#

Structure

n funcie
platform

Ushort

2 octei

de
0, 65.535

b) tipul referin

conine o referire ctre o alt adres de memorie la care se afl datele propriu-zise;
un tip referin conine o adres valid ctre un obiect sau o adres vid (Nothing); cu
o referin vid este ilegal s se fac altceva dect s i se atribuie o valoare adecvat;

nu poate fi iniializat automat cu valori implicite;


referinele sunt pstrate de obicei n stiv;
datele propriu-zise sunt pstrate n memoria dinamic (heap grmad, mulime ).
Acest aranjament permite colectorului de gunoaie s urmreasc un obiect care a fost marcat
pentru a fi ters i s elibereze memoria alocat obiectului atunci cnd acesta nu mai este
necesar.

8
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Tipurile de date referin n VB Net sunt:

Tip

Mrimea locaiei

Domeniu

Object

4 octei

Variaz

String

10 + 2 octei/caracter 0, 2 miliarde de caractere


Unicode

Copierea i compararea datelor

Cum n cazul datelor de tip valoare zona de memorie conine chiar valoarea, atunci cele dou
zone de memorie vor conine aceeai valoare. n codul prezentat mai jos valorile vor fi egale,
chiar dac ocup zone de memorie diferite:
Dim v1 As Integer = 20
Dim v2 As Integer = 20

Copierea (atribuirea) datelor de tip valoare nseamn c valoarea (coninutul) unei zone de
memorie va fi copiat (atribuit) altei zone de memorie:
v1 = v2

(nsemn c v1 va lua valoarea lui v2);


Dac ulterior modificm valoarea lui v1:
V1 = 20

( v2 rmne nemodificat).

n faza iniial, dei obiectele o1 i o2 sunt de acelai tip, variabilele de tip referin vor
memora adrese diferite de memorie. Chiar dac la adresele respective vor fi obiecte identice,
n urma comparaiei se va obine rezultatul False.
Copierea (atribuirea) datelor de tip referin nseamn c valoarea (coninutul) unei zone de
memorie va fi copiat (atribuit) altei zone de memorie. Cum n cazul datelor de tip referin
zona de memorie conine adresa unde se afl un obiect, atunci cele dou zone de memorie vor
puncta (vor adresa) aceeai zon de memorie, deci acelai obiect. n codul prezentat mai jos:
o1 = o2

nsemn c o1 va lua (i va fi transferat) coninutul lui o2; adic att o1 ct i o2 se refer la


aceeai zon de memorie (n general acelai obiect); dac ulterior se modific obiectul prin
o1, va fi modificat i o2. Mai mult, obiectul referit prin o1 i pierde referina (nu mai poate fi
accesat), devine indisponibil i va intra n sfera de influen a Colectorului de gunoaie vezi
figura 3.2(1).

9
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Public Class Form1


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim v1 As Integer = 20
Dim v2 As Integer = 20
Dim o1 As New Label
Dim o2 As New Label
MessageBox.Show(v1.Equals(v2).ToString, "v1=20, v2=20 - Dei ocup
zone de memorie diferite") 'True
'Dei ocup zone de memorie diferite v1 i v2 au valori egale
v2 = 25
MessageBox.Show(v1.Equals(v2).ToString, "v1=20, v2=25") 'False
'Acum v1 este diferit de v2
v1 = v2
'Coninutul lui v2 i se atribuie i lui v1
MessageBox.Show(v1.Equals(v2).ToString, "v1 = v2") 'True
'Dei ocup zone de memorie diferite v1 i v2 au valori egale
v1 = 20
MessageBox.Show(v1.Equals(v2).ToString, "Modificarea valorii lui v1
las pe v2 nemodoficat") 'False
'Modificarea valorii lui v1 las pe v2 nemodoficat
MessageBox.Show(o1.Equals(o2).ToString, "Dei conin referine la
obiecte identice") 'False
'Dei conin referine la obiecte identice, variabilele referin
au valori diferite
o1.Text = "Eticheta1"
o2.Text = "Eticheta2"
MessageBox.Show("Propietatea Text a lui o1 este: " & o1.Text & "
Iar propietatea Text a lui o2 este: " & o2.Text, "o1 si o2 refera obiecte
diferite")
'o1 si o2 refera obiecte diferite
o1 = o2
'Coninutul variabilei o2 se atribuie variabilei o1 (conin/refer
- aceai zon de memorie, adic acelai obiect)
MessageBox.Show(o1.Equals(o2).ToString, " o1 = o2") 'True
MessageBox.Show("Propietatea Text a lui o1 este: " & o1.Text & "
Iar propietatea Text a lui o2 este: " & o2.Text, " Amandoua variabilele
refera obiectul 2")
'Variabilele o1 si o2 au aceeasi valoare (refera aceasi adresa de
memorie - acelasi obiect)
o1.Text = "Valoare modificata"
MessageBox.Show("Propietatea Text a lui o1 este: " & o1.Text & "
Iar propietatea Text a lui o2 este: " & o2.Text, " Modificarea unei
proprietati prin variabila de referinta o1 modifica aceeasi proprietate din
o2")
'Modificarea unei proprietati prin variabila de referinta o1
modifica aceeasi proprietate din o2
'De fapt zona de memorie (obiectul referit initial de o1)s-a
pierdut (nu mai este referit)
End Sub
End Class

10
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Figura 3.2(1)
Iniial:

Ulterior: O1= O2

11
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

ntrebri
1. Definii conceptul de tip de dat.
2. Ce stabilete tipul de dat pentru zona de memorie?
3. Prin ce se caracterizeaz datele de tip valoare?
4. Prin ce se caracterizeaz datele de tip referin?
5. Cnd dou variabile de tip referin sunt egale?
3.3. Structurile lexicale ale limbajului VB.NET

Categorii de uniti lexicale

Un program VB.NET din punct de vedere lexical se compune dintr-un set de elemente de
programare (uniti lexicale), grupate n urmtoarele categorii:

comentarii;
cuvinte cheie (cuvinte rezervate);
identificatori (denumiri date de utilizator sau generate automat de sistem);
literali (valori);
separatori;
variabile;
constante;
operatori;
expresii;
instruciuni;
funcii i proceduri intrinseci (existente n sistem);
proceduri i funcii definite de utilizator.

Comentariile

Comentariile sunt note explicative n program care sunt ignorate de compilator. Ele se
definesc cu ajutorul:
apostrofului ();
sau
a comenzii Rem.
12
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

n sensul c tot ce urmeaz dup apostrof este comentariu, iar linia care ncepe cu Rem este
comentariu.
Exemple:
Dim v1 As Integer = 20 'Definire variabila tip valoare cu initializare
Rem dei ocup zone de memorie diferite v1 i v2 au valori egale

Cuvintele cheie

Cuvintele cheie sau cuvintele rezervate sunt cuvinte cu rol bine determinat n cadrul
metalimbajului.
Exemple de cuvinte rezervate: As, ByVal, Class, Dim, Integer, Private, Public.

Identificatorii

Sunt nume atribuite de utilizator diferitelor elemente de limbaj (variabile, constante, clase,
proprieti, metode, etc.) sau sunt generate automat de sistem.
Identificatorii:
trebuie s fie diferii de cuvintele cheie;
trebuie s nceap cu o liter sau ( _ underscore);
pot conine litere, cifre sau _;
dac ncep cu _ trebuie s mai conin cel puin o cifr sau liter;
nu pot depi 1023 caractere.
Dei limbajul nu face deosebire ntre literele mari i mici cea mai utilizat convenie n VB
NET este:
fiecare cuvnt din denumirea unei clase sau metode ncepe cu liter mare
(ContCurent, CitesteNume);
denumirea unei variabile sau proprieti ncepe cu liter mic, iar urmtoarele
cuvinte ncep cu majuscule (dataCurenta, numeAngajat);
identificatorii pentru constante se scriu cu litere mari, desprite prin _
(COTA_TVA).

Literalii

Literalii descriu (definesc/conin) valori de un anumit tip. Astfel:


valorile alfanumerice (string) sunt ncadrate ntre ghilimele ( );
data calendaristic este ncadrat ntre diez (# #);

13
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Exemple:
Dim
Dim
Dim
Dim

iNumar As Integer = 123 'Numar intreg


strNume As String = "Ion" 'Sir
dtDataUnu As Date = #12/10/2011# 'Data calendaristica
dtDataCurenta As Date = Now() 'Data curenta

Separatorii

Separatorii sunt caractere speciale utilizate pentru delimitarea unitilor lexicale. Acetia
sunt:
parantezele rotunde () - utilizate la: definirea procedurilor, funciilor, tablourilor
sau la modificarea precedenei operatorilor;
punctul (.) - separ denumirea unui obiect de denumirea unui membru (calific o
proprietate sau o metod);

virgula (,) - separ elementele unei mulimi (argumentele unei funcii);


liniua de subliniere (_) precedat i urmat de spaiu permite continuarea unei
instruciuni pe linia urmtoare;
dou puncte (:) separ dou sau mai multe instruciuni scrise pe acelai rnd.
Observaii: Trebuie precizat c un spaiu sau mai multe joac rol de separator. De asemenea
operatorii aritmetici i de comparare sunt i separatori.

Variabilele

Variabila reprezint o zon din memoria intern n care este stocat o valoare de un anumit
tip, care poate fi modificat n timp.
O variabil este definit:
printr-un calificativ de acces;
printr-un nume (identificator);
printr-un tip de dat;
printr-o valoare.
Lucrul cu variabilele presupune:
Declararea variabilei

[calificator de acces] numeVariabil [As tipData] [=valoare iniial]


Definirea variabilei presupune:
alocarea unei zone n memoria intern;
stabilirea unui identificator (denumire);
specificarea tipului de dat pe care o conine;
14
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

precizarea calificativului de acces.


Declararea unei variabile stabilete:
durata de via (perioada de timp n care variabila poate fi utilizat);
domeniul de vizibilitate (zona din program din care variabila este vizibil
(accesibil, cunoscut). Domeniul de vizibilitate este dependent de locul n care
variabila a fost definit i de nivelul de protecie stabilit);
nivelul (drepturile) de acces (definete nivelul de protecie (de acces). Precizeaz
permisiunea de acces a variabilei din afara zonei n care a fost definit).
Drepturile de acces sunt : public, private, protected (accesibil n clasa n care a fost
definit i n clasele derivate din aceasta), friend (\frend\) (accesibil numai n proiectul unde
a fost definit), protectedFriend (combinaia celor dou).
Iniializarea variabilei
Iniializarea unei variabile nseamn setarea sa cu o valoare iniial. Iniializarea poate fi:
realizat automat de compilator cu valoarea implicit (n cazul variabilei de tip
valoare, dac programatorul nu o iniializeaz n mod explicit);
trebuie realizat explicit de programator (n cazul variabilei de tip referin).

Constantele

Constantele descriu zone din memoria intern n care sunt stocate valori de un anumit tip care
nu pot fi modificate.
O constant este definit astfel:

[calificator de acces] Const numeConstant [As tipData] =valoare

Operatori

Operatorul este un element ce execut o operaie asupra uneia sau mai multor valori (numite
operanzi). Operatorii limbajului VB.NET sunt grupai n urmtoarele categorii:
operatori aritmetici:
Operator

Descriere

Ridicare la putere

Operatorii
unari: +,*,/

nmulire/mprire

mprire ntreag (returneaz partea ntreag a


mpririi a dou numere)

15
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Operator

Descriere

Mod

Restul mpririi

+,-

Adunare/Scdere

operatori de atribuire:
Operator

Sintaxa

Descriere

operand1= operand2

Atribuie operandului din stnga


(operand1) valoarea operandului din
dreapta (operand2)

+=

operand1+= operand2

operand1= operand1 + operand2

-=

operand1-= operand2

operand1= operand1 - operand2

*=

operand1*= operand2

operand1= operand1 * operand2

/=

operand1/= operand2

operand1= operand1 / operand2

\=

operand1\= operand2

operand1= operand1 \ operand2

^=

operand1^= operand2

operand1= operand1 ^ operand2

operatori de comparare:
Operator

Descriere

Egal

<>

Diferit

<

Mai mic

<=

Mai mic sau egal

>

Mai mare

>=

Mai mare sau egal

Is

Compar dou valori de tip referin i returneaz True dac


ambele refer acelai obiect

isNot

Opusul lui Is

Like

Compar dou iruri de caractere. Admite i jokerii: ? orice


caracter singular; * zero sau mai multe caractere; # o cifr

operatori de concatenare:
Operator

Descriere

Concateneaz doi operanzi doar dac ambii sunt de tip ir; ncearc s
adune dac este posibil n caz contrar

&

Face conversia la modul string a opranzilor i i concateneaz

16
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

operatori logici:
Operator

Sintaxa

Not

Not operandLogic
a) operandLogic1 And
operandLogic2

And,
AndAlso

Xor
(sau
exclusiv)

Returneaz negaia logic a operandului

sau

a) Returneaz True dac ambii operanzi sunt


True i False n caz contrar

b) operandLogic1
AndAlso operandLogic2

b) Ca la a) dar ignor operandul2 dac primul


este False

a) operandLogic1 Or
operandLogic2
Or, OrElse

Descriere

sau

a) Returneaz True dac un operand este True


i False n caz contrar

b) operandLogic1 OrElse
operandLogic2

b) Ca la a) dar ignor operandul2 dac primul


este True

operandLogic1 Xor
operandLogic2

Returneaz True cnd operanzii au valori


diferite

ali operatori:
Operator

Sintaxa

Descriere

AddressOf

AddressOf
numeProcedur

Returneaz adresa din memorie a unei proceduri

GetType

GetType (tipDate)

Returneaz obiectul aferent unui tip precizat

TypeOf

TypeOf operand is tipDate

Returneaz True dac operand este de tipul


tipDate i Fals n caz contrar

Instruciunile

Instruciunile sunt uniti lexicale ale limbajului care descriu ce trebuie s fac programul
(prelucrrile pe care le face). Sunt propoziii construite cu ajutorul cuvintelor cheie i/sau al
expresiilor.
Acestea pot fi:
Instruciuni declarative
Instruciunile declarative sunt cele prin care sunt definite variabilele,
constantele, procedurile, clasele, etc.
Instruciuni executabile
17
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Instruciunile executabile sunt instruciunile care declaneaz anumite aciuni. Acestea


pot fi:
Instruciuni de control;
Alte instruciuni de execuie.

Expresiile

Expresia este o construcie format din cel puin un operand i un operator. Operanzii unei
expresii pot fi variabile, constante, literali, proprieti sau metode ale unui obiect, funcii
intrinseci VB.NET sau definite de utilizator, alte expresii.
ntrebri

1. Care sunt principalele uniti lexicale?


2. Cum pot fi inserate comentariile ntr-un program VB.NET?
3. Ce restricii trebuie s respectm atunci cnd construim un identificator?
4. Ce rol au separatorii?
5. Ce presupune lucrul cu variabilele?
6. Care sunt principalii operatori logici i n ce ordine se execut?
7. Dai exemple de ali operatori.
8. Ce sunt instruciunile i cum se clasific?
3.4. Instruciuni n VB.NET

Instruciunile declarative

Sunt instruciunile prin care se definesc variabile, constante, proceduri, clase, etc.
Cele mai importante instruciuni declarative n VB.NET sunt:
Instruciune

Nivel

Descriere

Exemple
Class Student

Class

Fiier/
Clas

Definete o clas
utilizator

End Class

Const

Dim

Oricare

Declar una sau mai


multe constante

Const Pi As Single = 3,14

Oricare

Declar una sau mai


multe variabile
(echivalent cu tipul
Private)

Dim a, b As Integer

18
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Instruciune

Nivel

Descriere

Exemple
Enum MsgBoxRezult
Ok=1
Cancel=2

Enum

Fiier/
Clas

Declar o enumerare,
o list de constante
ntregi, fiecare
identificat printr-un
nume

Abort=3
Retry=4
Ignore=5
Yes=6
No=7
End Enum
Function ArieCerc (r As Single) As
Single

Function

Clas

Definete o funcie
utilizator sau metod

Const Pi As Single = 3,141


Return Pi*r^2
End Function
Class Persoana
Private m_Nume As String
Public Property sNume() _
As String
Get

Property
Set

Clas

Get

Declar proceduri
specifice pentru
scrierea/citirea
proprietilor
(atributelor) unei clase

Return m_Nume
End Get
Set(ByVal numeNou As String)
m_Nume = numeNou
End Set
End Property

End Class

Interface

Namespace

Fiier/
Clas

Fiier

Definete o interfa
(clas abstract pur,
ce conine numai
semnturile
operaiilor)
Definete un spaiu de
nume propriu
aplicaiei

19
Confereniar universitar dr. Veronica POPESCU

Interface FormeGeometrice

End Interface
Namespace Operaii

End Namespace

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Instruciune

Sub

Nivel

Clas

Descriere
Definete o procedur
utilizator sau o
metod

Exemple
Sub AfiseazaArieDreptunghi (p1 As
Single, p2 As Single)
MsgBox(p1*p2)
End Sub

Instruciunile de control

Instruciunile de control (structurile de control) stabilesc ordinea de execuie a prelucrrilor,


de cte ori sau pn cnd se execut anumite prelucrri.
Acestea pot fi grupate n:
structuri de control fundamentale (liniar, alternativ i repetitiv cu test iniial)
a) liniar

20
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Exemplu n VB.Net
Dim nota1 As Integer
Dim nota2 As Integer
nota1 = InputBox("Tastati nota1")
nota2 = InputBox("Tastati nota2")
MsgBox("nota1= " & nota1 & Chr(13) & Chr(10) & " nota2= " & nota2)
MsgBox("media notelor= " & (nota1 + nota2) / 2)

b) alternativ
dac condiie atunci

secvena 1

altfel

secvena 2

sfrit (comand)
Grafic

Pseudocod

implementarea n VB.NET
If expresieLogica = TRUE Then
secvena 1
else
secvena 2
End If
exemplu
Dim notaLaProgramare As Integer
Dim nrPromovati As Integer
Dim nrNePromovati As Integer
notaLaProgramare = InputBox("Tastati nota la programare")
If notaLaProgramare > 4 Then
nrPromovati = nrPromovati + 1
Else
nrNePromovati = nrNePromovati + 1
End If
MsgBox(Promovati: & nrPromovati & Nepromovati: & nrNePromovati)

21
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

c) structura repetitiv cu test iniial

Ct timp condiie execut

secvena

sfrit comand
Grafic

Pseudocod

implementarea n VB.NET
While conditieLogica
Secvena care se repet
End While
exemplu
Dim raspuns As String = "da"
Dim numarIntreg As Integer
Dim sumaNumerelor As Integer
sumaNumerelor = 0
While raspuns = "da"
numarIntreg = InputBox("Tastati un numar intreg: ")
sumaNumerelor += numarIntreg
raspuns = LCase(InputBox("Mai sunt date? (da/nu)"))
End While
MsgBox("Suma calculata= " & sumaNumerelor)

alte structuri de control


a) pseudo alternativ
-

stnga

22
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Schem a lo gica

P seudocod
Daca conditie atu nci

NU

DA

A ltfel

Conditie

Set_Instructiuni
Sfrsit daca
Set_Instructiuni

If expresieLogica = TRUE Then


else
secvena Nu
End If
-

dreapta

S ch em a lo g ic a

P se u d o c o d
D a c a c o n d itie

NU

DA

a tu n c i

S e t_ In s tru c tiu n i

C o n d itie

S f rs it d a c a

S e t_ In s tru c tiu n i

23
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

If expresieLogica = TRUE Then


secvena Da
End If
b) If imbricat (if n if)
If conditie_1 Then
[Set_Instruciuni_1]
[ElseIf condiie_2 Then
[Set_Instruciuni_2]]
...
[Else
[Set_Instruciuni_n]]
End If

Exemplu: S se scrie o procedur care realizeaz o apreciere n funcie de valoarea


notei obinute.
Sub Apreciere(iNota As Integer)
If iNota = 9 Or iNota = 10 Then
MsgBox("foarte bine")
ElseIf iNota = 7 Or iNota = 8 Then
MsgBox("bine")
ElseIf iNota = 5 Or iNota = 6 Then
MsgBox("satisfacator")
Else
MsgBox("mai invata")
End If
End Sub
c) structura alternativ generalizat
-

permite execuia selectiv a unui singur bloc de instruciuni ales dintre mai multe
blocuri n funcie de o condiie (opiune) stabilit. O instruciune Select Case are
aceleai posibiliti cu instruciunea If ... Then ... Else, dar ea face codul mai lizibil
atunci cnd exist mai multe opiuni.

24
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Pseudocod

Schema logica

Alege expresie dintre

expresie

Set_Instructiuni_1

...

Set_Instructiuni_n

Set_Instructiuni_1

valoare_2:
...
valoare_n:

Set_Instructiuni_2
Set_Instructiuni_n

Altfel

l
tfe
al

valoare_n

_1
are
o
l
va

valoare_1:

Set_Instructiuni_n+1
Sfrsit alege

Set_Instructiuni_n+1

Select Case expresie de testat


[Case lista de expresii 1
[bloc de instruciuni 1]]
[Case lista de expresii 2
[bloc de instruciuni 2]]
.
.
.
[Case Else
[bloc de instruciuni n]]
End Select
Not:
Execuia unei instruciuni Select Case ncepe ntotdeauna prin evaluarea expresiei de test,
care poate fi o expresie numeric sau o expresie ir de caractere. Visual Basic compar apoi
rezultatul acestei expresii cu valorile din fiecare bloc Case al structurii. Dac apare o
echivalen, blocul de instruciuni asociat acelui Case va fi executat.
25
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Fiecare list de expresii este o list avnd una sau mai multe valori. Dac ntr-o singur list
se afl mai multe valori, ele trebuie separate prin virgule. Fiecare bloc de instruciuni conine
zero sau mai multe instruciuni. Dac mai multe clauze Case sunt echivalente cu expresia de
testat, doar blocul de instruciuni asociat primei clauze Case echivalente, va fi executat.
Visual Basic execut instruciunile din clauza Case Else (care este opional) doar dac nici
una din valorile din lista de expresii nu este egal cu expresia de testat.
Observaie:
n lista de expresii se pot defini: enumerri separate prin virgul; domenii nchise cu ajutorul
cuvntului rezervat To (exemplu de la 20 la 41 impune 20 To 41 (sau Between 20 And
41); intervale (domenii) deschise definite prin cuvntul rezervat Is i a operatorilor de
comparaie > (mai mare) sau < (mai mic) i ali operatori de comparaie (=, <>, >=,<=); etc.
Exemplu:
Dim tipCont As String = Ucase(InputBox(Tasatati tip cont))
Select Case tipCont
Case A
MsgBox(Cont de activ)
Case P
MsgBox(Cont de pasiv)
Case B
MsgBox(Cont de bifunctional)
Case Else
MsgBox(Tip cont eronat)
End Select

26
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

d) structura repetitiv cu test final

e) structuri repetitive cu test iniial (anterior) sau final (posterior)


-cu test iniial
Do [{While | Until} condiie]
[Set_Instruciuni_1]
[Exit Do]
[Set_Instruciuni_2]
Loop

-cu test final


Do
[Set_Instruciuni_1]
[Exit Do]
[Set_Instruciuni_2]
Loop [{While | Until} condiie]

27
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

f) cu numr cunoscut de pai (cu contor) sau structura For Next

Schema logica

Pseudocod
Pentru contor = val_initiala

contor = val_initiala

pna la val_finala cu pas


Set_Instructiuni
Repeta

contor <=
val_finala

DA

Set_Instructiuni

NU
contor=contor+pas

Sintax:

For contor=val_iniial TO val_final [Step pas]


[Set_Instruciuni_1]
[Exit For]
[Set_Instruciuni_2]
Next [contor]
Practic, execuia ciclului For Next presupune:
1. Se iniializeaz nceput, sfrit i opional pas. Fixeaz contorul egal cu nceput.

28
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

2. Testeaz dac valoarea din contor este mai mare dect sfrit (pentru valoarea
pasului pozitiv) sau dac valoarea din contor este mai mic dect sfrit (pentru
valoarea pasului negativ). Dac da, se iese din bucl.
3. Execut instruciunile.
4. Modific contorul cu 1 sau cu valoarea pasului, dac exist.
5. Se reia pasul 2.
Comanda Exit For poate fi plasat oriunde n cazul instruciunii ForNext i ori de
cte ori se consider necesar, constituind o alternativ de ieire din ciclu (de terminare a
ciclului) fr a parcurge toate prelucrrile i fr a atepta ndeplinirea condiiei de sfrit
ciclu. Comanda apare de regul dup evaluarea (testarea) unei condiii i n funcie de
rezultat se poate decide (printr-o comand IfThen) continuarea execuiei cu prima
instruciune dup Next, dac avem o bucl simpl sau ntoarcerea la bucla de nivel imediat
superior, dac bucla este imbricat.
Exemplu:
S se realizeze funcia care returneaz media elementelor unui vector.
Function medie(vector() As Double) As Double
Dim i As Integer
Dim dTotal As Double
Dim iNrElem As Integer
iNrElem = 0
dTotal = 0
For i = LBound(vector) To UBound(vector)
dTotal = dTotal + vector(i)
iNrElem = iNrElem + 1
Next i
medie = dTotal / iNrElem
End Function
d) Instruciunea For Each ... Next
O bucl For Each ... Next seamn cu bucla For ... Next, ns ea repet o serie de instruciuni
pentru fiecare element dintr-o colecie de obiecte sau din cadrul unei matrice, n loc s repete

29
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

instruciunile de un numr dat de ori. Acest lucru este util mai ales cnd nu se tie exact cte
elemente are o colecie.
Sintaxa unei bucle For Each ... Next este:

For Each element In grup


[bloc de instruciuni 1]
[Exit For]
[bloc de instruciuni 2]
Next [element]
Alte instruciuni executabile
Cele mai utilizate instruciuni executabile altele dect cele de control sunt:
Instruciune
Call
End
Imports
Option
Explicit

Option Strict
Rem
Return

Stop

Descriere
Apeleaz o procedur uneori i
funcie la care nu ne
intereseaz rezultatul returnat
Termin execuia programului
Import elementele unui spaiu
de nume n fiierul surs
Activeaz On sau dezactiveaz
Off obligativitatea declarrii
explicite a variabilelor, naintea
utilizrii lor
Activeaz On sau dezactiveaz
Off conversiile implicite
efectuate cu restrngerea
domeniului
Definete un comentariu
Determin ieirea dintr-o
procedur sau funcie cu
ntoarcerea rezultatului n cazul
funciilor
Suspend temporar execuia
programului (Reluarea se face
cu F5 - Run)

30
Confereniar universitar dr. Veronica POPESCU

Exemple
Call AfiseazaArieDreptunghi(4.1,2.3)
End
Import System.Math
Option Explicit On
Option Explicit Off

Option Strict On
Option Strict Off
Rem Urmeaza initializarea
Return
Return PI*r^2

Stop

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

ntrebri
1. Ce sunt instruciunile declarative?
2. Ce sunt instruciunile de control?
3. Care sunt structurile fundamentale de control specifice programrii structurate i cum sunt
implementate n VB.NET?
4. Ce alte structuri de control au mai fost implementate n VB.Net n afara celor
fundamentale?

3.5. Subprograme n VB.NET


Subprogramele n VB.NET sunt definite de proceduri i funcii. Procedurile i funciile por fi
intrinseci (definite de MS i incluse n bibliotecile de baz ale sistemului) sau definite de utilizator.

Funciile de sistem (intrinseci)

Funciile de sistem sunt uniti lexicale definite de creatorul limbajului care execut anumite
prelucrri. n VB numele unei funcii trebuie urmate de paranteze rotunde (), ntre care se
introduc parametrii actuali dac este cazul.

Apelul lor este permis doar n interiorul

subprogramelor (proceduri sau funcii). Deoarece funciile ntorc prin numele su o valoare
pot fi utilizate i ca operanzi ntr-o expresie.
n VB.NET pentru funciile de sistem au fost definite metode care respect toate cerinele
programrii .NET. Existena funciilor este legat doar de compatibilitatea cu versiunile
anterioare ale lui VB.
Principalele categorii de funcii intrinseci (de sistem) n VB sunt:
a) Funcii pentru conversii de tipuri
- permit conversia valorilor dintr-un tip de date n altul
- principalele funcii din aceast categorie sunt:
Funcie
Asc(c)

Descriere
Returneaz codul ASCII sau
UNICODE al caracterului c; rezultatul

AscW(c)

este de tip ntreg

31
Confereniar universitar dr. Veronica POPESCU

Exemple

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Funcie

Descriere

Exemple

CBool(e)
CByte(e)
CChar(e)
CDate(e)
Cdble(e)

Convertete o expresie (compatibil) n


tipul specificat: Boolean, Byte,

CDec(e)

Character,etc.

CInt(e)
CLng(e)
CSng(e)
CStr(e)
Chr (i)

Returneaz caracterul ASCII sau

ChrW(i)

UNICODE aferent ntregului i

CType(e,t)

Format(e,f)

Convertete expresia (e) compatibil n

Dim i As integer

tipul specificat (t)

i= CType(34,Integer)

Convertete espresia (e) n ir de


caractere dup formatul (f) specificat

MsgBox(Format(3.7,#0.00))

Convertete numrul n (cu separatorul .


pentru virgul) ntr-un ir de caractere
Str(n)
Cnd nu lucrm n sistemul anglosaxon se prefer funcia CStr(e)
Convertete irul s n numr
Val(s)

Cnd nu lucrm n sistemul anglosaxon se prefer funcia CNumeric(e)

b) Funcii pentru operaii cu iruri de caractere


-

mai sunt pstrate n VB.NET din motive de compatibilitate cu versiunile anterioare


ale limbajului VB

n VB.NET este de recomandat s se utilizeze metodele clasei String (IndexOf,


Replace, Substring, ToLower, ToUpper, Trim, etc.)

principalele funcii pentru operaii cu iruri de caractere sunt:

32
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Funcie

Descriere

Instr(s1,s2)

Returneaz prima poziie n care

Exemple

apare irul de caractere s2 n cadrul


irului s1 (0 dac s2 nu se regsete
n s1)
LCase(s)

Transform literele irului s n litere


mici

Len(s)

Returneaz numrul de caractere


din irul s

Mid(s,p,l)

Extrage din irul s, un subir


ncepnd din poziia p de lungime l
(numrtoarea) ncepe de la zero

UCase(s)

Transform literele irului s n litere


mari

Trim(s)

Elimin spaiile de la nceputul sau


sfritul irului s

c) Funcii pentru operaii cu date calendaristice


Funcie

Descriere

Day(d)

Extrage ziua din data caendaristic


d

DateAdd(i,nr,d)

Returneaz o dat calendaristic


nou obinut prin adunarea la o
dat calendaristic iniial d a unui
interval nr de un anumit tip i
(DateInterval.Day,
DateInterval.Month, etc.)

DateDiff(i,d1,d2)

Returneaz diferena (intervalul)


de tipul intervalului i specificat
(DateInterval.Day,
DateInterval.Month, etc.) dintre
datele calendaristice d2 i d1

33
Confereniar universitar dr. Veronica POPESCU

Exemple

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Funcie

Descriere

Month(d)

Extrage luna dintr-o dat

Exemple

calendaristic d
Now()

Returneaz data i ora siatemului

Year(d)

Extrage anul dintr-o dat


calendaristic d

d) Funcii de informare
- testeaz apartenena unei variabile la un anumit tip de dat
Funcie

Descriere

IsArray(e)

Returneaz True dac argumentul este

Exemple

vector i False n caz contrar


Returneaz True dac argumentul este dat

IsDate(e)

calendaristic i False n caz contrar


Returneaz True dac argumentul este un

IsNothing(e)

obiect concret i False n caz contrar


Returneaz True dac argumentul este

IsNumeric(e)

numeric i False n caz contrar


IsReference(e)

Returneaz True dac argumentul este de


tip referin i False n caz contrar

TypeName(e)

Returneaz numele tipului argumentului e

e) Funcii pentru interaciunea cu utilizatorul final


-

cele mai utilizate sunt InputBox (p1, [p2],[p3]) i MsgBox(p4, [p5],[p6])


Unde: p1, p4-mesajul afiat; p2,p6 titlul ferestrei, p3-valoarea predefinit,
p5-butoanele generate

f) Funcii matematice
g) Funcii financiare

34
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Subprogramele definite de utilizator

Subprogramele definite de utilizator reprezint proceduri sau funcii definite de utilizator,


formate din blocuri de instruciuni destinate realizrii mpreun a unor operaii pentru
atingerea unui obiectiv.
Procedurile (numite i subrutine) sunt subprograme care nu returneaz valori.
Funciile sunt subprograme ca returneaz o valoare prin numele funciei. Numele procedurii
sau funciei i lista de parametrii definesc semntura procedurii sau funciei.
Avantajele utilizrii subprogramelor sunt:
simplific programul (prelucrrile ca se repet se scriu o singur dat i apoi sunt
apelate nu mai sunt inserate n program);
programele sunt mai uor de verificat i de ntreinut (se verific mai nti
subprogramul i dup ce se constat c este corect poate fi utilizat cu ncredere;
cnd se fac modificri acestea se fac doar n subprogramele afectate restul
programului nu este afectat);
se ncurajeaz reutilizarea (subprogramele pot fi utilizate n mai multe programe
sau proiecte).
Procedurile i funciile utilizatorului, n cadrul claselor se numesc metode.
Definirea i apelul unei proceduri (subrutine)
Definirea unei proceduri
Public/Private/Protected/Friend/ Sub numeSubrutina ([List parametrii _
formali])
Instruciuni
[Return]
End Sub
-

la apel se execut prelucrrile cuprinse ntre Sub i End Sub sau ntre Sub i prima
instruciune Return/Exit ntlnit dup care prelucrarea va continua cu instruciunea
urmtoare celei care a apelat-o

prelucrrile se fac asupra (cu valorile) parametrilor actuali (reali) transmii la apel
Apelul unei proceduri

[Call] numeSubrutina([List parametrii actuali])


Definirea i apelul unei funcii
Definirea unei funcii
Public/Private/Protected/Friend/ Function numeFunctie([List parametrii _
formali]) [As tipRezultat]
35
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Instruciuni
[Return expresie]
End Function
-

la apel se execut prelucrrile cuprinse ntre Function i End Function sau ntre
Function i prima instruciune Return/Exit ntlnit, dup care prelucrarea va continua
cu instruciunea urmtoare celei care a apelat-o sau imediat dup locul apelului n
cazul utilizrii n cadrul unei expresii

prelucrrile se fac asupra (cu valorile) parametrilor actuali (reali) transmii la apel

deoarece numele Funciei ntoarce un rezultat atunci: fie numele funciei va apare cel
puin o dat n partea stng a unei expresii de atribuire, fie se va utiliza Return
expresie (expresia este cea care calculeaz i ntoarce rezultatul)
Apelul unei funcii
[Call] numeFunctie([List parametrii actuali])

cnd se ignor (nu se valorific) rezultatul returnat de funcie


[rezultat =] numeFunctie([List parametrii actuali])

cnd se valorific rezultatul returnat de funcie prin variabila rezultat sau n cadrul
unei expresii

Transmiterea parametrilor subprogramelor


Parametrii pot fi transmii subprogramelor:
prin valoare ByVal (implicit):
Sunt transmise copii ale valorilor supuse prelucrrii i dac acestea se modific prin
subprogram, valorile iniiale rmn nemodificate.
prin referin ByRef:
Sunt transmise adresele din memorie a valorii parametrilor i dac aceste valori vor fi
modificate prin subprogram vor fi modificate i valorile iniiale.

Specificaia ByVal sau ByRef se face la definirea subprogramelor n lista de parametrii


formali pentru fiecare parametru n parte.
Exemple:
a) definire i apel procedur
-

definire
Private Calcule(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer)
Dim suma1 As Integer

36
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

Dim produs1 As Integer


Dim xminusy As Integer
Dim ximpartity As Single
suma1=x+y+z
produs1=x*y*z
xminusy=x-y
ximpartity=x/y
msgbox(ximpartity= & ximpartity)
End Sub
-apel
[Call] Calcule(8,4,2)
b) definire i apel funcie
-

definire
Private Function CalculArieDreptunghi(ByVal lungime As Integer, ByVal
latime As Integer) As Integer
CalculArieDreptunghi= lungime * latime
End Function

sau
Private Function CalculArieDreptunghi(ByVal lungime As Integer, ByVal
latime As Integer) As Integer
Return lungime * latime
End Function
-

apel funcie
Dim a As Integer=10
Dim b As Integer=5
Dim inaltime As Integer = 6
Dim arie As integer
Dim volum As Integer
MsgBox(Aria dreptunghiului este: & CalculArieDreptunghi(a, b))
arie= CalculArieDreptunghi(a, b)
volum = arie * inaltime

37
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

ntrebri
1. Ce categorii principale de funcii intrinseci sunt implementate n VB.NET.
2. Ce sunt subprogramele i cum se transmit parametrii?
3. Cum se definete i cum se apeleaz o funcie definit de utilizator?

Bibliografie Unitatea de nvare 3


1. A. COZGAREA Programarea calculatoarelor, introducere n VB.NET,
Editura ASE Bucureti, 2008;
2. Gh. POPESCU Programarea calculatoarelor n limbajul Visual Basic, Editura
Gestiunea Bucureti, 2007.

38
Confereniar universitar dr. Veronica POPESCU

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET


_________________________________________________________________________________________________________________

OBIECTIVELE UNITII DE NVARE 3.............................................................................. 2


3.1. Introducere n VB.NET ........................................................................................................ 2
3.2. Tipuri de date ....................................................................................................................... 7
3.3. Structurile lexicale ale limbajului VB.NET........................................................................ 12
3.4. Instruciuni n VB.NET ...................................................................................................... 18
3.5. Subprograme n VB.NET ................................................................................................... 31
Bibliografie Unitatea de nvare 3 ........................................................................................... 38

39
Confereniar universitar dr. Veronica POPESCU