Sunteți pe pagina 1din 27

C4 Instruciuni i subprograme in VB.

NET
1) Ce sunt instruciunile declarative
-instruciunile prin care sunt definite variabile, constante, proceduri, clase,
etc.
!) Care sunt cele mai importante instruciuni declarative "n VB.NET
Instruciune Nivel Descriere Exemple
Class Fiier/
Clas
Definete o clas
utili!ator
Class "tudent
#
End Class
Const $ricare Declar una sau
mai multe
constante
Const %i &s "in'le ( ),*+
Dim $ricare Declar una sau
mai multe
variabile
Dim a, b &s Inte'er
Enum Fiier/
Clas
Declar o
enumerare, o list
de constante
,ntre'i, fiecare
identificat printr-
un nume
Enum -s'.ox/e!ult
$0(*
Cancel(1
&bort()
/etr2(+
I'nore(3
4es(5
No(6
End Enum
Function Clas Definete o Function &rieCerc 7r &s "in'le8 9
funcie utili!ator
sau metod
&s "in'le
Const %i &s "in'le ( ),*+*
/eturn %i:r;1
End Function
%ropert2
"et
<et
Clas Declar proceduri
specifice pentru
scrierea/citirea
proprietilor
7atributelor8 unei
clase
Class %ersoana
%rivate sNume &s "trin'
%ublic %ropert2 sNume78 9
&s "trin'
<et
/eturn sNume
End <et
"et7.2=al numeNou &s "trin'8
sNume ( numeNou
End "et
End %ropert2
#
End Class
Interface Fiier/
Clas
Definete o
interfa 7clas
abstract pur, ce
conine numai
semnturile
operaiilor8
Interface Forme<eometrice
#
End Interface
Namespace Fiier Definete un
spaiu de nume
Namespace $peraii
propriu aplicaiei #
End Namespace
"ub Clas Definete o
procedur
utili!ator sau o
metod
"ub &fisea!a&rieDreptun'>i 9
7p* &s "in'le, p1 &s "in'le8
-s'.ox7p*:p18
End "ub
#) Ce sunt instruciunile e$ecutabile% unde pot &i &olosite i cum pot &i
clasi&icate
-instruciunile care declanea! anumite aciuni ale pro'ramului
-pot fi folosite de re'ul la nivelul subpro'ramelor 7funcii sau proceduri8, cu
excepia instruciunilor $ption i Import care sunt folosite de re'ul la nivel
de fiier surs
-se clasific ,n instruciuni de control 7structuri de control8 i alte instruciuni
executabile
4) Care sunt cele mai utili'ate instruciuni e$ecutabile altele dec(t cele
de control
Instruc9
iune
Descriere Exemple
Call &pelea! o procedur
uneori i funcie la care
nu ne interesea!
re!ultatul returnat
Call &fisea!a&rieDreptun'>i7+.*,1.)8
End ?ermin execuia
pro'ramului
End
Imports Import elementele unui
spaiu de nume ,n fiierul
Import "2stem.-at>
surs
$ption
Explicit
&ctivea! $n sau
de!activea! $ff
obli'ativitatea declarrii
explicite a variabilelor,
,naintea utili!rii lor
$ption Explicit $n
$ption Explicit $ff
$ption
"trict
&ctivea! $n sau
de!activea! $ff
conversiile implicite
efectuate cu restr@n'erea
domeniului
$ption "trict $n
$ption "trict $ff
/em Definete un comentariu /em Urmeaza initializarea
/eturn Determin ieirea dintr-o
procedur sau funcie cu
,ntoarcerea re!ultatului ,n
ca!ul funciilor
/eturn
/eturn %i:r;1
"top "uspend temporar
execuia execuia
pro'ramului 7/eluarea se
face cu F3 - /un8
"top

)) Ce sunt &unciile de sistem *intrinseci) "n VB.NET
-funciile =..NE? sunt uniti lexicale definite de creatorul limbaAului care
execut anumite prelucrriB care pot fi apelate pentru a executa anumite
prelucrri predefinite
-,n =. numele unei funcii trebuie urmate de parante!e rotunde 78, ,ntre
care se introduc parametrii actuali dac este ca!ul i sunt permise doar ,n
interiorul subpro'ramelor 7proceduri sau funcii8
-deoarece funciile ,ntorc prin numele su o valoare, aa cum am mai
preci!at, funciile pot fi utili!ate i ca operan!i ,ntr-o expresie
+) Care sunt principalele categorii de &uncii intrinseci *de sistem) "n
VB.NET
a) Funcii pentru conversii de tipuri
-permit conversia valorilor dintr-un tip de date ,n altul
-principalele funcii din aceast cate'orie suntC
Funcie Descriere Exemple
&sc7c8
&scD7c8
/eturnea! codul &"CII
sau ENIC$DE al
caracterului cB re!ultatul
este de tip ,ntre'
C.ool7e8
C.2te7e8
CC>ar7e8
CDate7e8
Cdble7e8
CDec7e8
CInt7e8
CFn'7e8
C"n'7e8
C"tr7e8
Convertete o expresie
7compatibil8 ,n tipul
specificatC .oolean, .2te,
C>aracter,etc.
C>r 7i8
C>rD7i8
/eturnea! caracterul
&"CII sau ENIC$DE
aferent ,ntre'ului i
C?2pe7e,t8 Convertete expresia 7e8 Dim i &s inte'er
compatibil ,n tipul
specificat 7t8
i( C?2pe7G)+H,Inte'er8
Format7e,f8 Convertete espresia 7e8 ,n
ir de caractere dup
formatul 7f8 specificat
-s'.ox7Format7).6,HIJ.JJH88
"tr7n8 Convertete numrul n 7cu
separatorul . pentru vir'ul8
,ntr-un ir de caractere
C@nd nu lucrm ,n sistemul
an'lo-saxon se prefer
funcia C"tr7e8
=al7s8 Convertete irul s ,n
numr
C@nd nu lucrm ,n sistemul
an'lo-saxon se prefer
funcia CNumeric7e8

b) Funcii pentru operaii cu iruri de caractere
-mai sunt pstrate ,n =..NE? din motive de compatibilitate cu versiunile
anterioare ale limbaAului =.
-,n =..NE? este de recomandat s se utili!e!e metodele clasei "trin'
7Index$f, /eplace, "ubstrin', ?oFoKer, ?oEpper, ?rim, etc.8
-principalele funcii pentru operaii cu iruri de caractere suntC
Funcie Descriere Exemple
Instr7s*,s18 /eturnea! prima po!iie ,n
care apare irul de caractere
s2 ,n cadrul irului s* 7J
dac s1 nu se re'sete ,n
s*8
FCase7s8 ?ransform literele irului s
,n litere mici
Fen7s8 /eturnea! numrul de
caractere din irul s
-id7s,p,l8 Extra'e din irul s, un subir
,ncep@nd din po!iia p de
lun'ime l 7numrtoarea8
,ncepe de la !ero
ECase7s8 ?ransform literele irului s
,n litere mari
?rim7s8 Elimin spaiile de la
,nceputul sau sf@ritul irului
s
c) Funcii pentru operaii cu date calendaristice
Funcie Descriere Exemple
Da27d8 Extra'e !iua din data
caendaristic d
Date&dd7i,nr,d8 /eturnea! o dat
calendaristic nou
obinut prin adunarea la o
dat calendaristic iniial
d a unui interval nr de un
anumit tip i
7DateInterval.Da2,
DateInterval.-ont>, etc.8
DateDiff7i,d*,d18 /eturnea! diferena
7intervalul8 de tipul
intervalului i specificat
7DateInterval.Da2,
DateInterval.-ont>, etc.8
dintre datele calendaristice
d1 i d*
-ont>7d8 Extra'e luna dintr-o dat
calendaristic d
NoK78 /eturnea! data i ora
siatemului
4ear7d8 Extra'e anul dintr-o dat
calendaristic d
d) Funcii de informare
-testea! apartenena unei variabile la un anumit tip de dat
Funcie Descriere Exemple
Is&rra27e8 /eturnea! True dac ar'umentul
este vector i False ,n ca! contrar
IsDate7e8 /eturnea! True dac ar'umentul
este dat calendaristic i False ,n
ca! contrar
IsNot>in'7e8 /eturnea! True dac ar'umentul
este un obiect concret i False ,n
ca! contrar
IsNumeric7e8 /eturnea! True dac ar'umentul
este numeric i False ,n ca! contrar
Is/eference7e8 /eturnea! True dac ar'umentul
este de tip referin i False ,n ca!
contrar
?2peName7e8 /eturnea! numele tipului
ar'umentului e
e) Funcii pentru interaciunea cu utilizatorul final
-cele mai utili!ate sunt Input.ox 7p*, Lp1M,Lp)M8 i -s'.ox7p+, Lp3M,Lp5M8
EndeC p*, p+-mesaAul afiatB p1,p5 Ntitlul ferestrei, p)-valoarea predefinit,
p3-butoanele 'enerate
f) Funcii matematice
g) Funcii financiare
,) Ce sunt *ce repre'int-) subprogramele de&inite de utili'ator i de
c(te &eluri sunt
-repre!int proceduri sau funcii definite de utili!ator, formate din blocuri de
instruciuni destinate reali!rii ,mpreun a unor operaii pentru atin'erea
unui obiectiv
-procedurile 7numite i subrutine8 sunt subpro'rame care nu returnea!
valori
-funciile sunt subpro'rame ca returnea! o valoare prin numele funciei
.) Care *ce) este semn-tura unui subprogram
-numele procedurii sau funciei i lista de parametrii
/) Care sunt avanta0ele utili'-rii subprogramelor
-simplific pro'ramul 7prelucrrile ca se repet se scriu o sin'ur dat i
apoi sunt apelate N nu mai sunt inserate ,n pro'ram8
-pro'ramele sunt mai uor de verificat i de ,ntreinut 7se verific mai ,nt@i
subpro'ramul i dup ce se constat c este corect N poate fi utili!at cu
,ncredereB c@nd se fac modificri acestea se fac doar ,n subpro'ramele
afectate restul pro'ramului nu este afectat8
-se ,ncuraAea! reutili!area 7sunpro'ramele pot fi utili!ate ,n mai multe
pro'rame sau proiecte8
11) Cum se de&inete o procedur- *subrutin-) i ce &ace
%ublic/%rivate/%rotected/Friend/# "ub nume"ubrutina7LFist parametrii 9
formaliM8
Instruciuni
L/eturnM
End "ub
-la apel se execut prelucrrile cuprinse ,ntre "ub i End "ub sau ,ntre "ub
i prima instruciune /eturn/Exit ,nt@lnit dup care prelucrarea va continua
cu instruciunea urmtoare celei care a apelat-o
-prelucrrile se fac asupra 7cu valorile8 parametrilor actuali 7reali8 transmii
la apel
11) Cum se apelea'- o procedur-
LCallM nume"ubrutina7LFist parametrii actualiM8
1!) Cum se de&inete o &uncie i ce &ace
%ublic/%rivate/%rotected/Friend/# "ub numeFunctie7LFist parametrii 9
formaliM8 L&s tip/e!ultatM
Instruciuni
L/eturn expresieM
End Function
-la apel se execut prelucrrile cuprinse ,ntre Function i End Function sau
,ntre Function i prima instruciune /eturn/Exit ,nt@lnit, dup care
prelucrarea va continua cu instruciunea urmtoare celei care a apelat-o
sau imediat dup locul apelului ,n ca!ul utili!rii ,n cadrul unei expresii
-prelucrrile se fac asupra 7cu valorile8 parametrilor actuali 7reali8 transmii
la apel
-deoarece numeleFunctiei ,ntoarce un re!ultat atunciC fie numele funciei va
apare cel puin o dat ,n partea st@n' a unei expresii de atribuire, fi se va
utili!a /etun expresie 7expresia este cea care calculea! i ,ntoarce
re!ultatul8
1#) Cum se apelea'- o &uncie
LCallM numeFunctie7LFist parametrii actualiM8
-c@nd se i'nor 7nu se valorific8 re!ultatul returnat de funcie
Lre!ultat (M numeFunctie7LFist parametrii actualiM8
-c@nd se valorific re!ultatul returnat de funcie prin variabila re!ultat sau ,n
cadrul unei expresii
14) Cum pot &i transmii parametrii subprogramelor i unde se
speci&ic- aceasta
- prin valoare .2=al 7implicit8 c@nd sunt transmise copii ale valorilor supuse
prelucrrii i dac acestea se modific prin subpro'ram, valorile iniiale
rm@n nemodificate
-prin referin .2/ef c@nd sunt transmise adresele din memorie a valorii
parametrilor i dac aceste valori vor fi modificate prin subpro'ram vor fi
modificate i valorile iniiale
-specificaia .2=al sau .2/ef se face la definirea subpro'ramelor ,n lista
de parametrii formali pentru fiecare parametru ,n parte
1)) Ce reguli trebuie s- se respecte "n general pentru ca trans&erul
parametrilor s- se &ac- corect
- ,n 'eneral lista parametrilor formali trebuie s corespund cu lista
parametrilor actuali caC numr, ordine i tip
-numrul poate fi diferit c@nd exist parametrii opionali
1+) E$emple
a) definire i apel procedur
-definire
%rivate Calcule7.2=al x &s Inte'er, .2=al 2 &s Inte'er, .2=al ! &s Inte'er8
Dim suma* &s Inte'er
Dim produs* &s Inte'er
Dim xminus2 &s Inte'er
Dim ximpartit2 &s "in'le
suma*(xO2O!
produs*(x:2:!
xminus2(x-2
ximpartit2(x/2
ms'box7Gximpartit2( H P ximpartit28
End "ub
-apel
LCallM Calcule7Q,+,18
b) definire i apel funcie
-definire
%rivate Function Calcul&rieDreptun'>i7.2=al lun'ime &s Inte'er, .2=al 9
latime &s Inte'er 8 &s Inte'er
Calcul&rieDreptun'>i( lun'ime : latime
End Function
sau
%rivate Function Calcul&rieDreptun'>i7.2=al lun'ime &s Inte'er, .2=al 9
latime &s Inte'er 8 &s Inte'er
/eturn lun'ime : latime
End Function
-apel funcie
Dim a &s Inte'er(*J
Dim b &s Inte'er(3
Dim inaltime &s Inte'er ( 5
Dim arie &s inte'er
Dim volum &s Inte'er
-s'.ox7G&ria dreptun'>iului esteC H P Calcul&rieDreptun'>i7a, b88
arie( Calcul&rieDreptun'>i7a, b8
volum ( arie : inaltime
1,) Care sunt structurile de control &undamentale i cum sunt
implementate "n VB.NET
-liniar, alternativ, repetitiv cu test iniial
a8 liniar
nceput
citete ...
atribuie ...
atribuie ...
....
* calculeaz ...
scrie ...
...
sfrit

Exemplu ,n =..Net
Dim nota* &s Inte'er
Dim nota1 &s Inte'er
nota*(Input.ox7G?astati nota*H8
nota1( Input.ox7G?astati nota1H8
-s'.ox7Gnota*( G P nota* P c>r7*)8 P c>r7*J8 P G nota1( G P nota1 8
-s'.ox7Gmedia notelor( H P 7nota*Onota18/18
b8 alternativ
dac condiie atunci
secvena 1
altfel
secvena 2
sfrit (comand)
Grafc Pseudocod
-implementarea ,n =..NE?
If expresieFo'ica ( ?/EE ?>en
secvena 1
else
secvena 2
End If
-exemplu
Dim notaFa%ro'ramare &s Inte'er
Dim nr%romovati &s Inte'er
Dim nrNe%romovati &s Inte'er
notaFa%ro'ramare(Input.ox7G?astati nota la pro'ramareH8
If notaFa%ro'ramare R + ?>en
nr%romovati( nr%romovatiO*
Else
nrNe%romovati( nrNe%romovatiO*
End If
-s'.ox7H%romopvatiC H P nr%romovati P HNepromopvatiC H P 9
nrNe%romovati8
c8 structura repetitiv cu test iniial
Ct timp condiie execut
secvena
sfrit comand
Grafc Pseudocod
-implementarea ,n =..NE?
D>ile conditieFo'ica
Secvena care se repet
End D>ile
-exemplu
Dim raspuns &s "trin' (HdaH
Dim numarIntre' &s Inte'er
Dim sumaNumerelor &s Inte'er
sumaNumerelor(J
D>ile /aspuns(HdaH
numarIntre'(Input.ox7G?astati un numar intre'C H8
sumaNumerelor O( numarIntre'
raspuns(Fcase7Input.ox7G-ai sunt dateS 7da/nu8H88
End D>ile
ms'.ox7G"uma calculata( H P sumaNumerelor8
1.) Ce alte structuri alternative mai sunt implementate "n VB.NET
a) pseudo alternativ
-st@n'a
Schema logica
"et9Instructiuni
Pseudocod
2aca
3&(rsit daca
Conditie
NE D&
Set_Instructiuni
4lt&el
atunci conditie
If expresieFo'ica ( ?/EE ?>en
else
secvena Nu
End If
-dreapta
If expresieFo'ica ( ?/EE ?>en
secvena Da
End If
b) If imbricat if !n if)
I& conditie_" T5en
LSet_Instruciuni_"M
"et9Instructiuni
Schema logica Pseudocod
Set_Instructiuni
2aca
3&(rsit daca
Conditie
NE D&
atunci conditie
LElseI& condiie_2 T5en
LSet_Instruciuni_2MM
...
LElse
LSet_Instruciuni_nMM
End I&
1. E$emplu6 S se scrie o procedur care realizeaz o apreciere n
funcie de valoarea notei obinute.
"ub &preciere7iNota &s Inte'er8
If iNota ( T $r iNota ( *J ?>en
-s'.ox Ufoarte bineU
ElseIf iNota ( 6 $r iNota ( Q ?>en
-s'.ox UbineU
ElseIf iNota ( 3 $r iNota ( 5 ?>en
-s'.ox UsatisfacatorU
Else
-s'.ox Umai invataU
End If
End "ub
c) structura alternativ generalizat
-permite execuia selectiv a unui sin'ur bloc de instruciuni ales dintre mai
multe blocuri ,n funcie de o condiie 7opiune8 stabilit. $ instruciune
"elect Case are aceleai posibiliti cu instruciunea If ... ?>en ... Else, dar
ea face codul mai li!ibil atunci c@nd exist mai multe opiuni.
"et9Instructiuni9*
Schema logica
"et9Instructiuni9n
Pseudocod
Set_Instructiuni_"
4lege
3&(rsit alege
expresie
Set_Instructiuni_n#"
4lt&el
valoare9*C
e$presie
"et9Instructiuni9nO* . . .
v
a
l
o
a
r
e
_
n
Set_Instructiuni_2 valoare91C
Set_Instructiuni_n valoare9nC
. . .
dintre
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 f o expresie numeric sau o expresie
ir de caractere. Visual Basic compar apoi rezultatul acestei expresii cu
valorile din fecare bloc Case al structurii. ac apare o ec!ivalen, blocul
de instruciuni asociat acelui Case va f executat.
"iecare list de expresii este o list av#nd una sau mai multe valori.
ac ntr$o sin%ur list se a& mai multe valori, ele trebuie separate prin
vir%ule. "iecare bloc de instruciuni conine zero sau mai multe instruciuni.
ac mai multe clauze Case sunt ec!ivalente cu expresia de testat, doar
blocul de instruciuni asociat primei clauze Case ec!ivalente, va f executat.
Visual Basic execut instruciunile din clauza Case Else 'care este opional(
doar dac nici una din valorile din lista de expresii nu este e%al cu expresia
de testat.
Observaie)
*n lista de expresii se pot defni) enumerri separate prin vir%ul+ domenii nc!ise cu
a,utorul cuv#ntului rezervat To 'exemplu de la -. la /0 impune 1-. To /02 'sau
Between -. And /0(+ intervale 'domenii( desc!ise defnite prin cuv#ntul rezervat
Is i a operatorilor de comparaie 3 'mai mare( sau 4 'mai mic( i ali operatori de
comparaie '5, 43, 35,45(+ etc.
ExempluC
Dim tipCont &s "trin' ( Ecase7Input.ox7G?asatati tip contH88
"elect Case tipCont
Case H&H
-s'.ox7HCont de activH8
Case H%H
-s'.ox7HCont de pasivH8
Case H.H
-s'.ox7HCont de bifunctionalH8
Case Else
-s'.ox7H?ip cont eronatH8
End "elect
1/) Ce alte structuri repetitive mai sunt implementate "n VB.NET
a) structura repetitiv cu test final
"et9Instruciuni
Schema
logic
Pseudocod
Set_Instruciuni
4t(t timp c(t
Condiie
NE
D&
7epeta
conditie
b) structuri repetitive cu test iniial anterior) sau final posterior)
-cu test iniial
Do LVD>ile W EntilX condiieM
L"et9Instruciuni9*M
LExit DoM
L"et9Instruciuni91M
Foop
-cu test final
Do
L"et9Instruciuni9*M
LExit DoM
L"et9Instruciuni91M
Foop LVD>ile W EntilX condiieM
c) cu numr cunoscut de pai cu contor) sau structura For %&e$t
contor ( val9initiala
Schema logica Pseudocod
Set_Instructiuni
7epeta
contor Y(
val9finala
NE
D&
8entru
"et9Instructiuni
contor(contorOpas
contor ' val_initiala
p(na la val_finala cu pas
3inta$-6
9or contor(val_iniial T: val_final L3tep pasM
LSet_Instruciuni_"M
LE$it 9orM
LSet_Instruciuni_2M
Ne$t LcontorM
6ractic, execuia ciclului "or 7ext presupune)
0. Se iniializeaz nceut, s!"r#it i opional as. "ixeaz contorul
e%al cu nceput.
-. 8esteaz dac valoarea din contor este mai mare dec#t s9#rit
'pentru valoarea pasului pozitiv( sau dac valoarea din contor este
mai mic dec#t s9#rit 'pentru valoarea pasului negativ(. ac da,
se iese din bucl.
:. Execut instruciunile.
/. ;odifc contorul cu 0 sau cu valoarea pasului, dac exist.
<. Se reia pasul -.
Comanda $%it &or poate f plasat oriunde n cazul instruciunii &or'
(e%t i ori de c#te ori se consider necesar, constituind o alternativ de
ieire din ciclu 'de terminare a ciclului( 9r a parcur%e toate prelucrrile i
9r a atepta ndeplinirea condiiei de s9#rit ciclu. Comanda apare de
re%ul dup evaluarea 'testarea( unei condiii i n 9uncie de rezultat se
poate decide 'printr-o comand IfThen( continuarea execuiei cu prima
instruciune dup 7ext, dac avem o bucl simpl sau ntoarcerea la bucla
de nivel imediat superior, dac bucla este imbricat.
E$emplu6
3- se reali'e'e &uncia care returnea'- media elementelor unui vector.
Function medie7vector78 &s Double8 &s Double
Dim i &s Inte'er
Dim d?otal &s Double
Dim iNrElem &s Inte'er
iNrElem ( J
d?otal ( J
For i ( F.ound7vector8 ?o E.ound7vector8
d?otal ( d?otal O vector7i8
iNrElem ( iNrElem O *
Next i
medie ( d?otal / iNrElem
End Function
d) Instruciunea For (ac) *** &e$t
= bucl &or $ach ... (e%t seamn cu bucla "or ... 7ext, ns ea repet o
serie de instruciuni pentru fecare element dintr$o colecie de obiecte sau
din cadrul unei matrici, n loc s repete instruciunile de un numr dat de ori.
>cest lucru este util mai ales c#nd nu se tie exact c#te 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]