u7 Tablouri Si Colectii in Vb Netl

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"