Sunteți pe pagina 1din 42

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
1 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Bibliografie Unitatea de nvare 3

2 Copyright Catedra Informatic de Gestiune, 2010

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
3 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

compilatoare separate unul pe 16 bii i altul pentru 32 bii. De asemenea a permis 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

4 Copyright Catedra Informatic de Gestiune, 2010

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 soluie 2: <<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 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 CLR. Pe ultimul nivel se afl CLR 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 este marele unificator, el este responsabil de rularea programului pe orice platform pe care poate rula CLR. Practic CLR 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

5 Copyright Catedra Informatic de Gestiune, 2010

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:

6 Copyright Catedra Informatic de Gestiune, 2010

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

7 Copyright Catedra Informatic de Gestiune, 2010

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); - pot fi ntotdeauna accesate direct; - nu pot fi derivate n alte tipuri (sunt nchise - sealed); - sunt memorate n stiv (stack).
8 Copyright Catedra Informatic de Gestiune, 2010

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 Byte Boolean Char Short Integer (ntreg) Long (ntreg lung) Single (simpl precizie) Double (dubl precizie) Date (dat calendaristic) Mrimea locaiei 1 octet 4 octei 2 octei 2 octei 4 octei 8 octei 4 octei 8 octei 8 octei Valoarea implicit 0 False Chr(0) 0 0 0 0.0 0.0 Domeniu 0-255 (fr semn) True sau False 0, 65.535 -32.768 , 32.767 2.147.483.648, 2.147.483.647 9.223.372.036.854.775.808, -9.223.372.036.854.775.807 -3.402823E38, -1.401298E-45 -1.79769313486231D308,

-4.940654584124D-324 #01/01/000 ian 1,100 i dec 31,9999 1 12:00:00 AM#

Structure Ushort b) tipul referin

funcie

de 0, 65.535

platform 2 octei

- 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 pot fi iniializate 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. Tipurile de date referin n VB Net sunt: Tip Object String Mrimea locaiei Domeniu 4 octei Variaz 10 + 2 octei/caracter 0, 2 miliarde de caractere Unicode
9 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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, totui 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 (adresa) aceeai zon de memorie, deci acelai obiect. n codul prezentat mai jos:
o1 = o2

(nsemn c o1 va lua, va fi transferat coninutul lui o2; adic i o1 i o2 refer 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).
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

10 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

'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 eate: " & o1.Text & " Iar propietatea Text a lui o2 eate: " & 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 eate: " & o1.Text & " Iar propietatea Text a lui o2 eate: " & 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 eate: " & o1.Text & " Iar propietatea Text a lui o2 eate: " & 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 referint) End Sub End Class

Figura 3.2(1) Iniial:

11 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Ulterior: O1= O2

ntrebri
12 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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; n sensul c tot ce urmeaz dup apostrof este comentariu, iar linia care ncepe cu Rem este comentariu.
13 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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 (# #);

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

14 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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; precizarea calificativului de acces.
15 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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 ^ Operatorii unari: +,*,/ \ Descriere Ridicare la putere

nmulire/mprire mprire ntreag (returneaz partea ntreag a mpririi a dou numere)

16 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Mod +, operatori de atribuire: Operator = += -= *= /= \= ^= Sintaxa operand1= operand2

Restul mpririi Adunare/Scdere

Descriere Atribuie operandului din stnga (operand1) valoarea operandului din dreapta (operand2) operand1= operand1 + operand2 operand1= operand1 - operand2 operand1= operand1 * operand2 operand1= operand1 / operand2 operand1= operand1 \ operand2 operand1= operand1 ^ operand2

operand1+= operand2 operand1-= operand2 operand1*= operand2 operand1/= operand2 operand1\= operand2 operand1^= operand2

operatori de comparare: Operator = <> < <= > >= Is isNot Like Descriere Egal Diferit Mai mic Mai mic sau egal Mai mare Mai mare sau egal Compar dou valori de tip referin i returneaz True dac ambele refer acelai obiect Opusul lui Is 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

17 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

adune dac este posibil n caz contrar & Face conversia la modul string a opranzilor i i concateneaz

operatori logici: Operator Not And, AndAlso Sintaxa Not operandLogic a) operandLogic1 operandLogic2 sau b) AndAlso operandLogic2 Or, OrElse a) sau operandLogic2 Xor (sau exclusiv) ali operatori: Operator AddressOf GetType TypeOf Sintaxa AddressOf numeProcedur GetType (tipDate) TypeOf operand is tipDate Descriere Returneaz adresa din memorie a unei proceduri Returneaz obiectul aferent unui tip precizat Returneaz True dac operand este de tipul tipDate i Fals n caz contrar operandLogic1 operandLogic2 Xor Returneaz True cnd operanzii au valori diferite operandLogic1 Or a) Returneaz True dac un operand este True i False n caz contrar b) Ca la a) dar ignor operandul2 dac primul Descriere Returneaz negaia logic a operandului And a)Returneaz True dac ambii operanzi sunt True i False n caz contrar b)Ca la a) dar ignor operandul2 dac primul operandLogic1 este False

operandLogic2

b) operandLogic1 OrElse este True

Instruciunile

18 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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 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

19 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Class

Fiier/ Clas

Definete utilizator

clas Class Student

Const Dim

Oricare Oricare

End Class Declar una sau mai Const Pi As Single = 3,14 multe constante Declar una sau mai Dim a, b As Integer multe variabile (echivalent cu tipul

Enum

Fiier/ Clas

Private) Declar o enumerare, Enum MsgBoxRezult o list de constante ntregi, nume fiecare identificat printr-un Ok=1 Cancel=2 Abort=3 Retry=4 Ignore=5 Yes=6 No=7

Function

Clas

End Enum Definete o funcie Function ArieCerc (r As Single) As utilizator sau metod Single Const Pi As Single = 3,141 Return Pi*r^2

Property Set Get

Clas

Declar specifice

End Function proceduri Class Persoana pentru Private m_Nume As String Public Property sNume() _ unei As String Get Return m_Nume End Get Set(ByVal numeNou As String) m_Nume = numeNou

scrierea/citirea proprietilor (atributelor) clase

20 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

End Set End Property Interface Fiier/ Clas End Class Definete o interfa Interface FormeGeometrice (clas abstract pur, ce conine numai End Interface semnturile Namespace Fiier operaiilor) Definete un spaiu de Namespace Operaii nume aplicaiei Sub Clas propriu

End Namespace Definete o procedur Sub AfiseazaArieDreptunghi (p1 As utilizator metod sau o 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

21 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

nceput

citete ... atribuie ... atribuie ... ....

* calculeaz ...

scrie ... ...

Sfrit 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

22 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

dac condiie atunci

secvena 1

altfel

secvena 2

Grafic -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

sfrit (comand) Pseudocod

notaLaProgramare=InputBox(Tastati nota la programare) If notaLaProgramare > 4 Then nrPromovati= nrPromovati+1 Else nrNePromovati= nrNePromovati+1 End If MsgBox(Promopvati: & nrPromovati & Nepromopvati: & _ nrNePromovati) c) structura repetitiv cu test iniial
23 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Ct timp condiie execut

secvena

Grafic -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

sfrit comand Pseudocod

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


24 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Schema logica

Pseudocod Daca conditie atunci

NU Conditie

DA

Altfel Set_Instructiuni Sfrsit daca

Set_Instructiuni

If expresieLogica = TRUE Then else secvena Nu End If - dreapta


Schema logica Pseudocod Daca conditie atunci NU Conditie DA Set_Instructiuni Sfrsit daca

Set_Instructiuni

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]]
25 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

... [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 Schema logica Pseudocod Alege expresie dintre

valoare_1: Set_Instructiuni_1 c) structura alternativ generalizat expresie Set_Instructiuni_2 valoare_2: - 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 Set_Instructiuni_n valoare_n: instruciunea If ... Then ... Else, dar ea face codul mai lizibil atunci cnd exist mai multe Altfel opiuni. 1 re_ a Set_Instructiuni_n+1 lo va Sfrsit alege valoare_n
l tfe al

Set_Instructiuni_1

...

Set_Instructiuni_n

Set_Instructiuni_n+1

26 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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. 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
27 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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)

Schema Case Else logic MsgBox(Tip cont eronat)


End Select

Pseudocod Repeta Set_Instruciuni Att timp ct conditie

d) structura repetitiv cu test final

Set_Instruciuni

DA Condiie NU

28 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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

Schema logica
-cu test final Do

Pseudocod Pentru contor = val_initiala pna la val_finala cu pas Set_Instructiuni Repeta

contor = val_initiala [Set_Instruciuni_1]


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

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

contor <= val_finala

DA

Set_Instructiuni NU
29 Copyright Catedra Informatic de Gestiune, 2010

contor=contor+pas

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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. 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.
30 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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 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]


31 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

[bloc de instruciuni 2] Next [element]

Alte instruciuni executabile Cele mai utilizate instruciuni executabile altele dect cele de control sunt: Instruci une Call 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) Exemple Call AfiseazaArieDreptunghi(4.1,2.3)

End Imports

End Import System.Math

Option Explicit

Option Explicit On Option Explicit Off

Option Strict

Option Strict On Option Strict Off

Rem Return

Rem Urmeaza initializarea Return Return PI*r^2 Stop

Stop

32 Copyright Catedra Informatic de Gestiune, 2010

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. 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: Apelul lor este permis doar n interiorul subprogramelor (proceduri sau funcii). Deoarece funciile ntorc prin numele su o valoare

Funcie Asc(c) AscW(c) CBool(e) CByte(e)

Descriere Returneaz

Exemple codul ASCII sau

UNICODE al caracterului c; rezultatul este de tip ntreg Convertete o expresie (compatibil) n tipul specificat: Boolean, Byte, Character,etc.

33 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

CChar(e) CDate(e) Cdble(e) CDec(e) CInt(e) CLng(e) CSng(e) CStr(e) Chr (i) ChrW(i) CType(e,t) Format(e,f) Str(n) Returneaz caracterul ASCII sau

UNICODE aferent ntregului i Convertete expresia (e) compatibil n Dim i As integer tipul specificat (t) i= CType(34,Integer) Convertete espresia (e) n ir de MsgBox(Format(3.7,#0.00)) caractere dup formatul (f) specificat Convertete numrul n (cu separatorul . pentru virgul) ntr-un ir de caractere Cnd nu lucrm n sistemul anglo-

Val(s)

saxon se prefer funcia CStr(e) Convertete irul s n numr 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: Funcie Instr(s1,s2) Descriere Exemple Returneaz prima poziie n care apare irul de caractere s2 n cadrul irului s1 (0 dac s2 nu se regsete n s1)
34 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

LCase(s) Len(s) Mid(s,p,l)

Transform literele irului s n litere mici Returneaz numrul de caractere din irul s Extrage din irul s, un subir ncepnd din poziia p de lungime l (numrtoarea) ncepe de la zero Transform literele irului s n litere mari Elimin spaiile de la nceputul sau sfritul irului s

UCase(s) Trim(s)

c) Funcii pentru operaii cu date calendaristice Funcie Day(d) DateAdd(i,nr,d) Descriere Extrage Exemple ziua din data

caendaristic 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.) Returneaz diferena (intervalul) de tipul intervalului i specificat (DateInterval.Day, DateInterval.Month, etc.) dintre datele calendaristice d2 i d1 Extrage luna dintr-o dat calendaristic d Returneaz data i ora siatemului Extrage anul dintr-o dat calendaristic d

DateDiff(i,d1,d2)

Month(d) Now() Year(d)

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


35 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

Funcie IsArray(e) IsDate(e) IsNothing(e) IsNumeric(e) IsReference(e) TypeName(e)

Descriere Exemple Returneaz True dac argumentul este vector i False n caz contrar Returneaz True dac argumentul este dat calendaristic i False n caz contrar Returneaz True dac argumentul este un obiect concret i False n caz contrar Returneaz True dac argumentul este numeric i False n caz contrar Returneaz True dac argumentul este de tip referin i False n caz contrar 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

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:
36 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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] 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
37 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

- 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 Dim produs1 As Integer Dim xminusy As Integer Dim ximpartity As Single suma1=x+y+z produs1=x*y*z
38 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

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 Integer) As Integer CalculArieDreptunghi= lungime * latime End Function sau Private Function CalculArieDreptunghi(ByVal lungime As Integer, ByVal 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 latime As latime As

39 Copyright Catedra Informatic de Gestiune, 2010

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 1

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.

40 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

41 Copyright Catedra Informatic de Gestiune, 2010

Unitatea de nvare 3 ELEMENTELE LIMBAJULUI VB.NET ________________________________________________________________________________________________________________ _

42 Copyright Catedra Informatic de Gestiune, 2010