Upload
serban-larisa
View
219
Download
0
Embed Size (px)
Citation preview
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
1/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
UNITATEA DE NVARE
TAB!OURI "I #O!E#II N VB NET___________________________________________________________________________
#$%rin&
O'ie(tive)e $nitii de nvare
.*. De&%re ta')+$ri
DefiniieDescrierentrebri
.,. De()ararea -i iniia)iarea ta')+$ri)+r
DefinireaIniializareantrebri
./. Redi0en&i+narea ta')+$ri)+r
RedimensionareaSintaxa comenzii Redimntrebri
.1. #)a&a Arra2ProprietiMetodentrebri
.3. Par($r4erea ta')+$ri)+r
Parcurgerea vectoruluiParcurgerea tablourilor cu dou sau mai multe dimensiuniccesul la proprietile !i metodele obiectelor
ntrebri
.6. #+)e(ii
Definire"olecii versus tablouri#peraii oferite de o colecientrebri
.. #)a&a Arra2!i&t
DescriereProprietiMetode
1Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
2/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
Parcurgerea unei coleciintrebri
Bi')i+4ra5ie Unitatea de nvare
2Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
3/19
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
4/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
nume4ablou$index%/numeMetod
ntre'ri
*."e este un tablou>,.Prin ce se caracterizeaz un tablou>
/."um poate fi accesat un element $o celul% a unui tablou>
1."um invocm o proprietate sau o metod a unui obiect memorat 'n celula unui tablou>
.,. De()ararea -i iniia)iarea ta')+$ri)+r
De5inirea
)n tablou se define!te astfel*[Acces] numeTablou([listIndeci]) As tipData
)nde*
acces* define!te nivelul de acces !i poate fi Dim& Public& Protected& ?riend& Private&
Protected?riend(
tip!ata* define!te natura datelor memorate !i poate fi dat de tip primitiv sau obiect
$toate datele sunt de acela!i tip%(
list"#ndec$i* conine valorile maxime ale indec!ilori pentru fiecare dimensiune/ @adefinire lista poate lipsi dar este obligatorie 'nainte de utilizare/ Dac la definire lista
lipse!te& 'n 01 se considera c tabloul este definit dinamic $adic% putea fi
redimensionat dup necesiti/ In 01/234 toate tablourile sunt dinamice& pot fi
redimensionate/
3xemplu*
4Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
5/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
Iniia)iarea
!a cu am precizat mai sus elementele unui tablou se acceseaz 'n general cu a9utorul
indec!ilor/
stfel fiind dat tabloul!im %ume&tudenti (99) s &tring
pentru a 'ncrca $memora date% 'n celula ,5 $care care indexul A% o valoare $obiectul
unStudent de tip Student% vom avea*
%ume&tudenti(9)'un&tudent
$practic tabloul cu indexul adecvat apare 'n partea st7ng a unei operatii de atribuire%
pentru a citi $a valorifica% informaia din celula ,B $index ,8% vom avea*
&tudentautat' %ume&tudenti(1)
$practic tabloul cu indexul adecvat apare 'n partea dreapt a unei operatii de atribuire%
ntre'ri
*."um se declar un tablou>
,."e reprezint valoarea unui index la definirea unui tablou>
/."um se 'ncarc un element 'n tablou>
1."um se cite!te valoarea unui element dintr6un tablou>
./. Redi0en&i+narea ta')+$ri)+r
Redi0en&i+narea
Un tablou se redimensioneaz"se definete dinamic7 cu a9utorul comenzii Redim/ Practic se
creeaz un nou tablou cu un numr nou de elemente/ n mod implicit prin redimensionare se
pierd datele coninute de tabloul iniial/ "u Redim putem fixa numrul iniial de dimensiuni
dac acestea nu au fost fixate la definirea iniial& dup care nu mai pot fi modificate/ In modnormal prin Redim se modific doar limitele superioare ale dimensiunilor/
8inta9a (+0enii Redi0
Sintaxa comenzii Redim este*
Redim [Preserve] numeTablou(listIndeci)
)nde*
*reser+eCpri6zErvC* este o clauz opional prin a crui prezen se asigur copiereaelementelor existente 'n noul tablou/ Datele din vecFiul tabel sunt pstrate(
5Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
6/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
list"#ndec$i* conine noii indec!i& limita superioar& pentru fiecare dimensiune& a
fiecrui nou index(
-emplu.
6 redimensionarea vectorului 3xamene cu pierderea datelorRedim Examene (14)
6 redimensionarea vectorului 3xamene cu pstrarea datelor
Redim !ese!"e Examene (#$)
ntre'ri
*."e modific comanda Redim>
,."e se 'nt7mpl cu datele aflate 'n tablou cu ocazia redimensionrii>
/."um putem conserva $pstra% datele aflate 'n tablou la redimensionare>
.1. #)a&a Arra2
n 01/234& orice tablou este un obiect de tip rraG& care posed un set de proprieti !imetode/
Pr+%rieti
Proprieti specifice clasei rraG sunt*
Lengt* returneaz numrul total de elemente coninute de tablou $'n cazul nostru&
pentru vectorul 3xamene& ,5 elemente( 'n cazul 0anzariHudetMagazin@una$.A&,B&,,%&
85 x ,: x ,- ;
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
7/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
0etLengt(dimensiune s #nteger)*returneaz numrul de elemente ale dimensiunii
precizate(
0etLoer2ound(dimensiune s #nteger)* returneaz valoarea limitei inferioare a
indexului pentru dimensiunea precizat $pentru tablourile 01/234 5%( 0etUpper2ound(dimensiune s #nteger)* returneaz valoarea limitei superioare a
indexului pentru dimensiunea precizat
Principalele metode tip clas $parta9ate% ale clasei rraG sunt*
rra4&ort(numeablou)* sorteaz cresctor elementele tabloului precizat $tabloul
trebuie s aib doar o dimensiune 6 vector%(
rra46e+erse(numeablou)* inverseaz elementele tabloului precizat $tabloul trebuie
s aib doar o dimensiune 6 vector%(
ntre'ri
*."are sunt principalele proprieti ale clasei rraG >
,.@a ce tip de tablou funcioneaz metoda Sort>
/."are sunt principalele metode de instan ale clasei rraG>
Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
8/19
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
9/19
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
10/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
.ie clasa Examen cu urmtoarea structur:
/nde: m01isciplina este de tip $trin%2 m01ataExamen este de tip 1ate2m03ota este de tip Inte%er4 Iar pentru atributele: m01isciplina "m01ataExamen" m03ota vor 5i implementate i propriet6ile
corespun7toare: disciplina " dataExamen" nota4
Pentru tabloul Examene care con6ine ca elemente obiecte instan6iate dinclasa Examen ( tablou cu o dimensiune i care poate con6ine maxim +examene)" vom avea:
a) 1e5inirea clasei Examen:
Publi%$lass,xamen Priatem#/is%iplina As!tring
Priatem#/ata,xamen As/ate Priatem#Nota AsInteger Publi%Propert'dis%iplina() As!tring Get 9eturnm#/is%iplina ,ndGet !et(B'alalue As!tring) m#/is%iplina = alue ,nd!et ,ndPropert' Publi%Propert'data,xamen() As/ate
Get 9eturnm#/ata,xamen
,ndGet !et(B'alalue As/ate)
m#/ata,xamen = alue ,nd!et
,ndPropert' Publi%Propert'nota() AsInteger
Get 9eturnm#Nota
,ndGet !et(B'alalue AsInteger) m#Nota = alue ,nd!et ,ndPropert'
,nd$lass
b) 1e5inirea tabloului Examene
10Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
11/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
Publi%$lassForm4 /im,xamene(:) As,xamen,nd$lass
c) 8ncarc elementul # (index !)
Priate!ubButton4#$li%&(B'alsender Asb*e%t+ B'ale As!'stem.,entArgs) -andlesButton4.$li%& /eines% un obie%t /imun,xamen AsNe;,xamen In%ar% obie%tul in %elula 2 ,xamene(2) = un,xamen In%ar% proprietatile obie%tului ,xamene(2).dis%iplina = InputBox(5Tasatai dis%iplina5) ,xamene(2).data,xamen = InputBox(5Tastati data5) ,xamene(2).nota = InputBox(5Tasatati nota5) ,nd!ub
Practic proprietatea care urmea7 s 5ie 9ncrcat 9n tablou" apare 9npartea stn% a unei opera6ii de atribuire" 5iind cali5icat (precedat denumele tabloului cu indexul ! i punct: ,xamene(2).)
d) 'iste7 elementul # (index !)
Priate!ubButton2#$li%&(B'alsender Asb*e%t+ B'ale As!'stem.,entArgs) -andlesButton2.$li%& /eines% ariabila pentru mesa* /ims As!tring s = 55 erii% da%a in %elula am memorat un obie%t IIsNot
,."e sunt structurile repetitive imbricate !i ce reguli trebuie s 'ndeplineasc>
/."um se parcurge un tablou>1/ "um avem acces la proprietile !i metodele unui obiect memorat 'n tablou>
11Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
12/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
.6. #+)e(ii
De5inire
"olecia constituie o alt variant de reprezentare !i stocare& 'n memoria intern& a mulimilor
$listelor% de date/
#+)e(ii ver&$& ta')+$ri
vanta9ele coleciilor fa de tablouri*
omportament dinamic* coleciile permit adugarea sau eliminarea elementelor&
redimensionarea fiind efectuat automat(
&tructur" eterogen"* elementele unei colecii pot fi de tipuri diferite/
Dezavanta9ele coleciilor fa de tablouri*
Lente n utilizare* elementele sunt memorate 'n zona Leap& 'n spaii necontigue(
&tructur" eterogen"* elementele unei colecii put7nd fii de tipuri diferite 'ngreuneaz
procedurile de control& validare !i valorificare/
O%eraii +5erite de + (+)e(ie
#peraiile elementare oferite de o colecie vizeaz*
d"ugarea unui element(
6eturnarea unui element(
liminrea unui element(
0olirea coleciei
.:. #)a&a Arra2!i&t
De5inire
"olecia rraG@ist utilizeaz un tablou intern& a crei capacitate este modificat automat& pe
msur ce sunt adugate noi elemente/ # colecie rraG@ist se define!te !i se instaniaz
astfel*
Dim colectie@ s rraG@ist;2e rraG@ist$%
Sau
12Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
13/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
Dim colectie@ s rraG@ist 2e rraG@ist$%
Pr+%rieti
Principalele proprieti oferite de rraG@ist sunt*
apacit* seteaz sau returneaz numrul de elemente pe care colecia le poate stoca(
ount* red numrul de elemente ale coleciei(
#tem (inde- s integer)* returneaz elementul coleciei specificat prin index/
Met+de
Principalele metode oferite de rraG@ist sunt*
dd(+aloare s :b;ect)* adaug 'n colecie elementul specificat prin parametrul
valoare !i returneaz indexul alocat acestuia(
lear()* gole!te colecia/ ountdevine 5& iar apacitnu se modific(
ontains$+aloare s :b;ect%* returneaz ruedac elementul precizat prin valoare se
afl 'n colecie(
6emo+e(obiect as ob;ect)* elimin din colecie elementul precizat prin valoarea sa(
6emo+et(obiect as ob;ect)* elimin din colecie elementul precizat prin index(
&ort$%* ordoneaz cresctor elementele coleciei(
rimo&ize()* seteaz capacitatea coleciei la numrul de elemente ale acesteia/
Par($r4erea (+)e(iei Arra2!i&t
Parcurgerea coleciei rraG@ist se face cu a9utorul structurii repetitive* 7or eac 8
%e-t4
Eta%e)e ne(e&are de5inirii; n(r(rii -i $ti)irii va)+ri5i(rii7 $nei (+)e(iiArra2!i&t de +'ie(te
3tapele lucrului cu rraG@ist sunt*
a) se de5inesc clasele
b) se de5inete colec6ia
13Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
14/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
c) se 9ncarc obiectele 9n colec6ie
;se instan6ia7 un obiect al unei clase
;se preiau valorile propriet6ilor (uneori i ale atributelor neproteate) aleobiectelor i se adau% 9n colec6ie
d) se actuali7ea7 colec6ia
;se ter% anumite obiecte din colec6ie
;se adau% noi obiecte 9n colec6ie
;se modi5ic valorile unor propriet6i ale unui obiect din colec6ie
e) se valori5ic (se utili7e7) datele unei colec6ii
;se parcur%e colec6ia i se 5ac prelucrrile solicitate pe ba7a datelor dincolec6ie
Exemplu:
&onsiderm urmtoarea ierar
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
15/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
;clasa 1ocument este clas abstract iar clasa &ec este o clasconcret4 &lasa &ec este clasa secundar>derivat>copil avnd clasa1ocument clas de ba7>superclasa>printe
;atributele:m0.el1oc" m03r1oc" m0Emitent1oc" m0Tip?peratie"m01enumireTert sunt de tip $trin%2 m01ata1oc este de tip 1ate im0$uma&ec este de tip Inte%er2
;atributul m0Tip?peratie poate lua doar valorile: @I@ pentru cec de9ncasat2 @P@ pentru cec de plat i @$@ pentru cec depus spre scontare
;pentru atributele Private: m0.el1oc" m0Tip?peratie i m0$uma se vorde5ini propriet6ile similare: 5el1oc" tip?peratie" suma&ec
&erin6e:
i) s se de5ineasc clasele
ii) s de5ineasc la nivelul clasei .orm colec6ia &ecuri
iii) la evenimentul clicA pe =utton s se instan6ie7e obiectul cec" s sepreia cu Input=ox valorile propriet6ilor 5el1oc" tip?peratie" suma&ec is se adau%e 9n colec6ie
iv) la evenimentul clicA pe =utton! s se a5ie7e con6inutul colec6ieielement cu element
v) la evenimentul clicA pe =utton# s se parcur% colec6ia &ecuri i sse a5ie7e @$uma de incasate este * @" sum care se va ob6ine prin
9nsumarea sumelor 9nscrie 9n cecurile din colec6ie care au tip?peratiee%al cu @I@
-om avea:i) definirea claselor
; de5inirea clasei document
Publi%1ustIn
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
16/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
,ndGet !et(B'alalue As!tring) m#Fel/o% = alue ,nd!et ,ndPropert' deinirea metodelor
,nd$lass
;de5inirea clasei &ec
Publi%$lass$e% deinirea %lasei parinte In
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
17/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
/im%e%uri AsNe;Arra'>ist
Priate!ubButton4#$li%&(B'alsender Asb*e%t+ B'ale As!'stem.,entArgs) -andlesButton4.$li%& /eines% un %e% o instanta a %lasei $e% /imun$e% AsNe;$e%
In%ar% proprietatile un$e%.el/o% = InputBox(5Tastati el do%ument5) un$e%.tipperatie = InputBox(5Tastati tip operatie5) un$e%.suma$e% = InputBox(5Tastati suma5) erii% da%a %e%ul este %ore%t Iun$e%.tipperatie = 55T
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
18/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
Bi')i+4ra5ie Unitatea de nvare *
*. A. #O>:?
,. G@. POPE8#U = Pr+4ra0area (a)($)at+are)+r n )i0'a$) Vi&$a) Ba&i(; Edit$ra
Ge&ti$nea B$($re-ti; ,>>?/. O(tavian DO8PINE8#U = Dev+)tarea a%)i(aii)+r n VB.NET; Edit$ra P+)ir+0
Ia-i; ,>>1.
1!Copyright Catedra Informatic de Gestiune, 2010
7/25/2019 u7 Tablouri Si Colectii in Vb Netl
19/19
Unitatea de nvare 6 PROGRAMAREA N VB.NET________________________________________________________________________________________________________________
_
OBIECTIVELE UNITII DE NVARE 1############################################################2
1.1. Necesitatea programrii programe i!"ormatice###############################2
1.#. A$goritmi################################################################################################## 4
1.%. Lim&a'e (e programare##########################################################################6
1.). *eto(e (e programare###########################################################################!
1"