Programozasi Osszefoglalo

Embed Size (px)

DESCRIPTION

Programozas

Citation preview

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 1

    Juhsz Tibor Kiss Zsolt:

    Programozsi ismeretek (Mszaki Knyvkiad, 2011, MK4462-3)

    Visual Basic 2008/2010 Express Edition Programozsi sszefoglal

    Kiegsztsek a tanknyvhz

    Bevezets A Programozsi sszefoglal a Programozsi ismeretek tanknyv (Mszaki Knyvkiad, 2011) kiegsztse. A tanknyvben lehetsg szerint a programozsi nyelvektl fg-getlentve ismertettk a programozsi tudnivalkat. Az albbiakban bemutatjuk a Visual Basic 2008/2010 nyelvi elemeit s a .NET eszkzeit. Megjegyezzk, hogy jelenleg (2011-ben) mind az informatika rettsgin, mind a programozs versenyeken (OKTV, Nemes Tihamr) a 2008-as vltozatot lehet hasznlni. Az sszefoglal csak a tanknyvhz kapcsold elemekre vonatkozik. A tanknyv anyagt fedi le, de a defincikban, szintaxisban az ltalnossg kedvrt megemltnk olyan fogalmakat is, amelyek nem szerepelnek a knyvben. Az azonos clra hasznlhat nyelvi elemek kzl elnyben rszestettk azokat, amelyek illeszkednek az objektumorien-tlt szemlletmdhoz (pldul a vletlenszm-generlsnl). Az egyes objektumok, objektumosztlyok tulajdonsgai s metdusai kzl csak a legfontosabbakat ismertetjk. Sok esetben nem adjuk meg a tulajdonsgok lehetsges rtkeit, az intelligens sg kilistzza a vlaszthat felsorolselemeket. A rszletesebb ismertetst a Visual Basic sg-jban, illetve a programozsi nyelv dokumentcijban talljuk. A Sg tartalomjegyzkbl a kvetkez bejegyzsekre hvjuk fel a figyelmet: A programozsi nyelv lersa: Visual Basic/Reference/Visual Basic Reference Az objektumosztlyok ismertetse: .NET Framework/Class Library A Microsoft Development Network webhelyn (http://msdn.microsoft.com/en-us/library) a tartalomjegyzk kvetkez bejegyzseinl olvashatjuk a programozsi nyelv s az objektumosztlyok ismertetst: MSDN Library/Development Tools and Languages/Visual Studio 2008/Visual Studio/Visual Basic/Reference MSDN Library/NET Development/.NET Framework 3.5/.NET Framework Class Library Hasonl mdon talljuk meg a Visual Basic 2010 s a .Net Framework 4-es verzijnak lerst. A Visual Basic 2008/2010 dokumentcijt a The Microsoft Visual Basic Language Specification Version 9.0 tartalmazza. Vgezetl megemltjk, hogy rengeteg pldaprogram tallhat a VB Helper webhelyn (http://www.vb-helper.com/index_categories.html), illetve szmos tovbbi webhelyen.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 2

    Jellsek A forrskd rszleteket Courier bettpus jelli az sszefoglalban. A szintaxisban szerepl dlt bets rszeket a megfelel tartalommal kell helyettesteni. A hrom pont (...) arra utal, hogy az eltte lv rsz rtelemszeren tetszlegesen sokszor ismtldhet. A szgletes zrjelben lv rszeket nem ktelez berni a forrskdba. A szgletes zrjel nem rsze a szintaxisnak. A kapcsos zrjelben lv, fggleges vonallal elvlasztott opcik kzl az egyiket ktelez alkalmazni. A kapcsos zrjel s a fggleges vonal nem rsze a szintaxisnak. Nvterek a .NET-ben A .NET tbb ezerre tehet osztlyknyvtra hierarchikus rendszert alkot. A rendszer egy-egy csompontjt nvtrnek nevezzk. Egy nvtr tartalmazhat tovbbi nvtereket, illetve osztlydefincikat vagy struktrkat. A nvterek rendszert egy httrtr mappaszerkezethez hasonlan kpzelhetjk el. A nvterek rendszere lehetv teszi az oszt-lyok csoportostst, megknnyti az ttekintst s megakadlyozza az azonostk tkzst. A .NET-ben egy nvtr azonostinak a hasznlathoz importlnunk kell a nvteret a projektbe (Imports utasts), vagy teljesen minstett hivatkozst kell alkalmaznunk, pl-dul: My.Computer.FileSystem.CurrentDirectory. Egy importlt nvtr al tartoz nvterek esetn nem szksges a teljesen minstett hivatkozs kirsa, pldul: Threading.Timer (a System.Threading.Timer helyett). j projekt ltrehozsa esetn a fejlesztrendszer alaprtelmezs szerint automatikusan importlja a kvetkez nvtereket:

    Microsoft.VisualBasic System System.Collections System.Collections.Generic System.Data System.Diagnostic System.Linq System.Xml.Linq

    Windows alkalmazs ltrehozsnl mg a kvetkez nvterek is importlsra kerlnek: System.Drawing System.Windows.Forms

    Ezeknek a nvtereknek az elemeinl elhagyhat a minsts, illetve nincs szksg az Imports utastsra. Elnevezsi konvencik A tanknyvben nem trgyaljuk a Namespace utastst, gy egy projekt egyetlen nvtrnek felel meg. Nem trnk ki az assembly-k ismertetsre sem. Trgyalsmdunkban egyetlen projektet egyetlen assembly valst meg. sszefoglalnkban ezrt nvtr s assembly helyett is projektet runk (pldul projektszint hozzfrs). Az objektumosztlyok megosztott (shared) tulajdonsgait osztlytulajdonsgnak, sztatikus (shared) metdusait pedig osztlymetdusnak nevezzk. Az osztlymetdusokat s osztlytulajdonsgokat az objektumosztly nevvel kell minsteni. A struktrk megosztott (shared) mezit megosztott tulajdonsgnak (meznek), kzs (shared) metdusait pedig sztatikus metdusnak nevezzk. A megosztott tulajdons-gokat s sztatikus metdusokat a struktra nevvel kell minsteni.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 3

    A tanknyvben szerepl hivatkozsok a programozsi sszefoglal egyes rszeire: A Dtumvlaszt (DateTimePicker) objektum ................. 52 A karakter tpus ................................................................. 10 A Konzol (Console) objektumosztly ............................... 51 A Matematika (Math) osztly ............................................ 25 A Megnyits (OpenFileDialog) ablak ............................... 41 A Ments msknt (SaveFileDialog) ablak ....................... 42 A mveletek precedencija ............................................... 17 A nyelv szintaxisa ............................................................... 4 A programok szerkezete ...................................................... 5 A String osztly metdusai................................................ 14 A sztring tpus ................................................................... 12 A tmbmret mdostsa ................................................... 26 A vezrlelemek s tulajdonsgaik ................................... 34 Aritmetikai opertorok (mveletek) .................................. 16 Az aktulis mappa s a felhasznl Dokumentumok mappjnak elrsi tja ............... 39 Az idztobjektum (Timer) .............................................. 39 Az objektumok (vezrlelemek) metdusai ...................... 34 Az opertorok precedencija ............................................. 17 Azonostk .......................................................................... 6 Blokkszint vltozk ........................................................... 6 Dtum s id ..................................................................... 10 Elgazs esetsztvlasztssal ............................................ 18 Elemi tpusok ...................................................................... 9 Eljrsok ............................................................................ 22

    Esemnyek ........................................................................ 37 Feltteles ciklus ................................................................. 19 Feltteles elgazs ............................................................. 18 Formzott megjelents ..................................................... 14 Fggvnyek ....................................................................... 23 Grgetsv megjelentse ................................................. 35 Grafikus objektumok ........................................................ 44 Halmazok .......................................................................... 30 Kivtelkezels ................................................................... 20 LINQ ................................................................................. 47 Logikai mveletek ............................................................ 16 Minstblokk ................................................................... 19 Struktrk.......................................................................... 30 Szmlls ciklus................................................................ 18 Szvegfjlok ltrehozsa s rsa ...................................... 40 Szvegfjlok olvassa ....................................................... 39 Sztringkezel fggvnyek ................................................. 24 Tpuskonverzis metdusok ............................................. 25 Tbbdimenzis tmbk .................................................... 26 Tmbmetdusok ............................................................... 27 Tmbk ............................................................................. 26 zenetablak (MessageBox) .............................................. 38 Vals tpusok ...................................................................... 9 Vltozk deklarlsa ......................................................... 15 Vltoztpusok .................................................................... 9

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 4

    Alapismeretek A nyelv szintaxisa A Visual Basic forrskdjban ltalban minden utastst kln sorba runk. Az utasts folytatsa a kvetkez sorban: szkz alhzsjel Enter

    utasts _ az utasts folytatsa

    Az alhzsjelet semmi nem kvetheti a sorban! Szksg esetn egy sorba tbb utasts rhat, kettsponttal elvlasztva:

    utasts1 : utasts2 : A forrskdban aposztrfjel (') utn megjegyzs kvetkezhet:

    [utasts ]' megjegyzs A Standard eszkztr Comment/Uncomment gombjai ( ) a kijellt sorokbl megjegyzseket ksztenek, illetve trlik a megjegyzsjelet (aposztrfjelet). Kulcsszavak A Visual Basic a kulcsszavakban nem klnbzteti meg a kisbetket a nagybetktl. Foglalt kulcsszavak

    AddHandler AddressOf Alias And AndAlso As Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate CDbl CDec Char CInt Class CLng CObj Const Continue CSByte CShort CSng CStr CType CUInt CULng CUShort Date Decimal Declare Default Delegate Dim DirectCast Do Double Each Else ElseIf End EndIf Enum Erase Error Event Exit False Finally For Friend Function Get GetType GetXMLNamespace Global GoSub GoTo Handles If Implements Imports In Inherits Integer Interface Is IsNot Let Lib Like Long Loop Me Mod Module MustInherit MustOverride MyBase MyClass Namespace Narrowing New Next Not Nothing NotInheritable NotOverridable Object Of On Operator Option Optional Or OrElse Out Overloads Overridable Overrides ParamArray Partial Private Property Protected Public RaiseEvent ReadOnly ReDim Rem RemoveHandler Resume Return SByte Select Set Shadows Shared Short Single Static Step Stop String Structure Sub SyncLock Then Throw To True Try TryCast TypeOf UInteger ULong UShort Using Variant Wend When While Widening With WithEvents WriteOnly Xor #Const #Else #ElseIf #End #If = & &= * *= / /= \ \= ^ ^= + += - -= >>, >>=

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 5

    Nem foglalt kulcsszavak de nem clszer azonostknt alkalmazni a kvetkezket:

    Aggregate Ansi Assembly Auto Binary Compare Custom Distinct Equals Explicit From Group By Group Join Into IsFalse IsTrue Join Key Mid Off Order By Preserve Skip Skip While Strict Take Take While Text Unicode Until Where #ExternalSource #Region

    A programok szerkezete A Visual Basic programok forrskdja kdfjlokban helyezkedik el. Egy kdfjl programmodulokat tartalmaz. A programmodulokat rviden moduloknak nevezzk. A Visual Basic moduljai:

    osztlyok, struktrk, standard modulok (tovbbi vltozkkal, eljrsokkal, fggvnyekkel), interfszek (ezeket a tanknyvben nem trgyaljuk).

    Egy kdfjlban tbb modult is definilhatunk. A program vgrehajthat utastsai csak modulokban helyezkedhetnek el! A kdfjl szerkezete

    Megjegyzs Fjlszint elemek [Option utastsok]

    [Imports utastsok] projektszint elemek

    A sorrend kttt! A forrskd tovbbi, a fordtprogramnak szl zeneteket, gynevezett direktvkat is tartalmazhat.

    Projektszint elemek, kztk a prog-rammodulok (osztly, struktra, stan-dard modul)

    [Class End Class] [Structure End Structure] [Module End Module] [Enum End Enum]

    Osztlyok, struktrk, standard modulok, felsorolsok. A standard modulok s a felsorolsok nem gyazhatk egymsba! Egy kdfjlban tbb projektszint elemet is definilhatunk, tetszleges sorrendben.

    Modulszint elemek (a programmodu-lokban helyezkednek el)

    [Enum End Enum] [Structure End Structure] [konstansok deklarcii] [vltozk deklarcii] [Function End Function] [Sub End Sub]

    Felsorolsok, struktrk, konstansok, vltozk deklarcii, fggvnyek, eljrsok defincii. A fggvnyek, eljrsok, felsorolsok nem gyazhatk egymsba!

    Alprogram-szint elemek (alprogra-mokban helyezkednek el)

    [loklis konstansok deklarcii] [vltozk deklarcii] [vgrehajthat utastsok]

    Minden vgrehajthat utastsnak alprogramban (fggvny, eljrs) kell elhelyezkednie!

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 6

    Option utastsok Az Option utastsok a fordtprogram szmra szl zenetek (direktvk). rtkket bellthatjuk a projekt tulajdonsglapjn vagy a forrskdban. Option Explicit {On | Off} On: ktelez a vltozk deklarlsa. Option Strict {On | Off} On: ktelez a vltoz tpusnak megadsa, szkebb tpusra nem vgzi el az automatikus tpuskonverzit! Option Compare {Binary | Text} Binary: sztringek sszehasonltsa a Unicode alapjn.

    Text: sztringek sszehasonltsa a terleti belltsok alapjn. Option Infer {On | Off} On: nem ktelez a tpust megadni a deklarciban, a vltoz rtkadsa alapjn llaptja meg.

    Megjegyzs: a menben (Tools/Options/Projects and Solutions/VB Defaults) mdostva csak a mdosts utn ltrehozott projektekre vonatkoznak! Imports utastsok Imports nvtr[.osztly] Importlja a nvtrhez tartoz azonostkat a programba, gy az azonostkra minsts nlkl hivatkozhatunk.

    Azonostk Az azonostk elnevezse A konstansok, vltozk, eljrsok, fggvnyek, objektumok, osztlyok stb. azonosti

    Unicode-bett, szmjegyet vagy alhzsjelet tartalmazhatnak; betvel vagy alhzsjellel (_) kezddhetnek; legfeljebb 1023 karakterbl llhatnak; nem egyezhetnek meg valamely foglalt kulcsszval.

    A Visual Basic az azonostkban nem klnbzteti meg a kisbetket a nagybetktl. Az azonostk kezetes karaktereket is tartalmazhatnak. Az esemnykezel eljrsok paramterei automatikusan a sender s az e azonostt kapjk. tnevezsk nlkl nem hasznlhatjuk ugyanezeket az azonostkat a loklis deklarcikban.

    Az azonostk hatkre1 Blokkszint hatkr: a deklarcitl az utastsblokk vgig terjed.

    Utastsblokkok: Do Loop, For [Each] Next, If End If, Select End Select, Try End Try, With End With A blokkon bell deklarlt vltozk blokkszint hatkrrel rendelkeznek. Egy blokkban deklarlt vltoz azonostja nem egyezhet meg a blokkot tartalmaz alprogram loklis vltozinak azonostjval!

    Eljrsszint hatkr: a deklarcitl az alprogram (eljrs/fggvny) vgig terjed. Az alprogramon bell deklarlt vltozk eljrsszint hatkrrel rendelkeznek (loklis vltozk). Az alprogramban deklarlt vltozk csak Private hozzfrsek lehetnek (a Public nem hasznlhat!).

    1 Scope

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 7

    Modulszint hatkr: a teljes programmodulra kiterjed (a deklarls helytl fggetlenl) Modul (programmodul): osztly, struktra, standard modul. A programmodulon bell, de az alprogramokon kvl deklarlt vltozk alaprtelmezs szerint modulszint hatkrrel rendelkeznek (tagvltozk). A programmodulban definilt alprogramok alaprtelmezs szerint modulszint hatkrrel rendelkeznek. A modulszint hatkrrel rendelkez azonostkra minsts nlkl hivatkozhatunk a programmodul eljrsaiban. Egy objektumosztly defincija esetn a modulszint hatkrt szoks osztlyszint hatkrnek nevezni (ne keverjk ssze az osztly megosztott, Shared vltozival). Megjegyzs: modulszint hatkr esetn olyan azonostra is hivatkozhatunk, amelynek a deklarlsa/defincija csak ksbb kvetkezik a forrskdban.

    Projektszint hatkr: a projekt minden moduljra kiterjed. A Public (vagy Friend) hozzfrs, modulszinten deklarlt vltozk projektszint hatkrrel rendelkeznek (globlis vltozk). A projektszint hatkrrel rendelkez vltozkra a deklarci helytl eltr projektben is hivatkozhatunk (lsd albb, a Hozzfrsi mdoknl).

    Az azonostk lthatsga Azonos nevek esetn, ha tfedik egymst a hatkrk, akkor minsts nlkl a szkebb hatkr azonostra vonatkozik a hivatkozs. A tgabb hatkr azonostt a prog-rammodul (illetve a projekt s a programmodul) nevvel minstve rjk el. Az osztly vagy struktra eljrsaiban tkzs esetn a modulszint vltozkra a Me minstssel hivatkozunk: Me.vltoznv. Hozzfrsi mdok2 A hozzfrsi md mdostja az azonostk hatkrt. Az albbiakban hangslyozottan csak a tanknyvhz kapcsold ismereteket foglaljuk ssze! A hozzfrsi mdot a deklarciban, illetve a programmodulok s alprogramok fejben szablyozhatjuk (pldul Public Sub ). A hozzfrsi mdok meghatrozsa fgg a deklarci helytl:

    (1) projektszint elemek: programmodulon kvl (Class End Class, Structure End Structure, Module End Module utastsokon kvl) helyezkednek el; (2) modulszint elemek: programmodulon bell, de alprogramon kvl helyezkednek el; (3) eljrsszint/blokkszint elemek: alprogramban, illetve utastsblokkban helyezkednek el.

    Private hozzfrsi md: az azonost csak a deklarcit tartalmaz programmodulon (osztly, standard modul, struktra) bell rhet el. A Private hozzfrsi md csak programmodul-szinten alkalmazhat (programmodulra vonatkozan, illetve alprogramon bell nem rhat el). Private hozzfrs lehet: programmodulon bell deklarlt osztly s struktra, struktra mezje, modul/osztlyszint vltoz, konstans, eljrs, fggvny, felsorols.

    Public hozzfrsi md: az azonost korltozs nlkl, brhonnan elrhet (msik projektbl a projektre mutat hivatkozs felvtelvel). A Public hozzfrsi md csak programmodul-, illetve projektszinten alkalmazhat (alprogramon bell nem rhat el). Public hozzfrs lehet: standard modul, osztly, modul/osztlyszint vltoz, konstans, struktra, struktra mezje (vltozja), eljrs, fggvny, felsorols. Hivatkozs felvtele ms projektre: Project/Add Reference, a Projects panelen kivlasztjuk a megfelel projektet, OK.

    Friend hozzfrsi md: az azonost csak a projekt kdfjljaibl rhet el3, azaz ms projektbl nem hivatkozhatunk r. A Friend hozzfrsi md csak programmodul-, illetve projektszinten alkalmazhat (alprogramon bell nem rhat el). Friend hozzfrs lehet: standard modul, osztly, modul/osztlyszint vltoz, konstans, struktra, struktra mezje, eljrs, fggvny, felsorols.

    2 Access levels

    3 Pontosabban csak az assembly-n bell rhet el. Clszeren s ltalban egy nvtr (projekt) egy assembly-nek felel meg.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 8

    Alaprtelmezett hozzfrsi mdok

    Programelem

    Alaprtelmezett hozzfrsi md Projektszinten (1) Modulszinten (2) Eljrsszinten/blokkszinten (3)

    deklarlva Konstans Private,

    struktrban Public Public (nem mdosthat)

    Vltoz (Dim utastssal deklarlva) Alprogram (eljrs, fggvny) Public Alprogram paramtere Public (nem mdosthat) Standard modul (Module) Friend Osztly Friend Public

    Struktra Friend Public

    Felsorols (Enumeration) Friend Public Megjegyzs: egy alprogram paramterei alaprtelmezs szerint Public hozzfrsek, ezrt nem lehetnek a programmodulon kvl deklarlt Private vagy Friend elrsek. Szksg esetn a tpust is Public hozzfrssel kell elltni, vagy pedig az alprogramnak adjunk Private, illetve Friend minstst!

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 9

    Elemi tpusok Elemi tpusok s literljaik Nvtr: System A sztringek objektumok, a tbbi elemi tpus pedig struktra!

    Megjegyzs A legfontosabb elemi tpusok Karakter: Char 2 bjt

    Sztring: String a mret fgg az Logikai: Boolean implementcitl Dtum-id: Date 8 bjt Egsz tpusok (kettes komplemens kdban): Bjt Byte 1 bjt Rvid egsz Short (Int16) 2 bjt Egsz: Integer (Int32) 4 bjt Hossz egsz: Long (Int64) 8 bjt Vals (lebegpontos) tpusok: Egyszeres pontossg: Single 4 bjt Dupla pontossg: Double 8 bjt Fixpontos tpus: Decimlis Decimal 16 bjt

    Egyetlen Unicode-karakter Legfeljebb 2 millird Unicode-karakter (objektum!) True vagy False i.sz. 0001 jan. 1. 0:00:00-tl 9999. dec. 31. 23:59:59-ig

    0-tl 255-ig 32768-tl +32767-ig 2147483648-tl +2147483647-ig 9,21018-tl +9,21018-ig

    1,41045-tl 3,41038-ig (78 rtkes jeggyel) 4,910324-tl 1,810308-ig (1617 rtkes jeggyel)

    7,91028 kztt (29 rtkes jeggyel), fleg pnzgyi szmtsokhoz Numerikus rtkek literljai Eljeles egsz vagy tizedestrt alakban felrt szmok

    Lebegpontos alakban felrt szmok, pldul: 25.67E12 A forrskdban tizedespontot runk!

    Hexadecimlis rtk literlja &Hxxxx xxxx: hexadecimlis szmjegyek a tpusnak megfelel szmban. Szksg esetn alkalmazzunk tpusazonost karaktert! Az eljeles egsz tpusoknl a hexadecimlis rtk kettes komplemens kdban kerl rtelmezsre!

    Karaktersorozat literl "karaktersorozat" A sztringen belli idzjelet kt idzjel helyettesti. Dtum/id literl #[hnap/nap/v][ ra:perc[:msodperc]]# Vagy a dtumot vagy az idt ktelez megadni.

    Tpusazonost karakterek Short: S Single: F Integer: I Double: R Long: L Decimal: D Karakter: C

    Kzvetlenl a literl mg rjuk (szkz nlkl!).

    Megjegyzs: a False kdja 0, a True kdja 1. A CBool fggvny azonban minden nem 0 numerikus rtket True-ra konvertl.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 10

    A numerikus tpusok (struktrk) tulajdonsgai s metdusai A ToString metdus kivtelvel megosztott tulajdonsgok, illetve sztatikus metdusok. Hvs: tpus.tulajdonsgnv, tpus.metdusnv(argumentumok)

    tpus.MaxValue, tpus.MinValue A tpus legkisebb, illetve legnagyobb rtke.

    tpus.Epsilon Vals tpusok trolhat legkisebb pozitv rtke.

    tpus.PositiveInfinity, tpus.NegativeInfinity tpus.IsInfinity(kifejezs), tpus.IsPositiveInfinity(kifejezs), tpus.IsNegativeInfinity(kifejezs)

    A vals MaxValue, illetve MinValue rtkt tllp mveletek eredmnye, illetve vizsglata.

    tpus.NaN, tpus.IsNaN(kifejezs) A vals tpus 0/0 eredmnye, illetve vizsglata. ToString(["formtumkd"]) Sztringg alaktja a numerikus rtket. A formtumkd rtelmezst lsd a sztringeknl.

    A Char tpus (struktra) sztatikus metdusai Hivatkozs: Char.metdusnv(karakter) c: karakter

    IsControl(c), IsDigit(c), IsLetter(c), IsLetterOrDigit(c), IsLower(c), IsPunctuation(c), IsSeparator(c), IsUpper(c), IsWhiteSpace(c)

    Kontrol-karakter, szmjegy, bet, bet vagy szmjegy, kisbet, rsjel, szkz vagy Enter, nagybet, szkz vagy Enter vagy tabultor vizsglata (True/False). Egy sztring ind index karakterre is meghvhatk Char.metdusnv(szrtring, ind) formban.

    ToLower(c), ToUpper(c) Konverzi kisbetv, nagybetv. Dtum s id Kezdrtkadshoz a konstruktor is hasznlhat: New DateTime(v, h, nap[, ra, perc, msodperc[, ezredmsodperc]])

    Az argumentumok egsz tpus kifejezsek. A DateTime struktra tulajdonsgai Hivatkozs: vltoznv.tulajdonsgnv, megosztott tulajdonsgoknl: DateTime.tulajdonsgnv

    Date, TimeOfDay A vltoz rtknek dtum, illetve id rsze.

    Year, Month, Day, Hour, Minute, Second, Millisecond A vltoz rtknek v, hnap, nap, ra, perc, msodperc, ezredmsodperc rsze.

    DayOfWeek vltoznv.DayOfWeek.ToString()

    A ht napja (0: vasrnap, 6: szombat). A ht napjnak angol elnevezse.

    DayOfYear Az v hnyadik napja. DateTime.Today, DateTime.Now Rendszerdtum, rendszerid (dtum/id), megosztott tulajdonsgok.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 11

    A DateTime struktra metdusai Hivatkozs: vltoznv.metdusnv(argumentumok), sztatikus metdusnl: DateTime.metdusnv(argumentumok) i: egsz tpus rtk, d: dupla pontossg rtk

    AddYears(i), AddMonths(i), AddDays(d), AddHours(d), AddMinutes(d), AddSeconds(d), AddMilliseconds(d)

    A megadott rtket hozzadja a vltoz v, hnap, nap, ra, perc, msodperc, ezredmsodperc rszhez. Az AddYears esetn csak az v vltozik (pldul nem veszi figyelembe a szkvet).

    ToString([formtumsztring]) Sztringg alaktja a vltoz rtkt a megadott formtumban. A formtumsztringekre pldk tallhatk a Dtumformtumok.vb kdfjlban.

    DateTime.DaysInMonth(v, hnap) A hnap napjainak a szma (sztatikus metdus). DateTime.IsLeapYear(v) Szkv-e a megadott rtk (True/False, sztatikus metdus). DateTime.Parse(sztring) Dtum/idv alaktja a sztringet (sztatikus metdus). DateTime.TryParse(sztring, vltoz) A vltozba berja a sztring dtum/idv alaktott rtkt, ha lehet. Visszatrsi rtke (True/False) jelzi az talak-

    ts sikert (sztatikus metdus). A DateTime tpussal kapcsolatos fggvnyek

    DateAdd(mrtkegysg, idtartam, dtum) A dtum-hoz hozzadja a mrtkegysg-ben mrt idtartam-ot. Mrtkegysgsztring: "yyyy": v; "m": hnap; "d": nap; "w": htkznap; "h": ra, "n": perc (!); "s": msodperc; "q": negyedv; "ww": ht. A mrtkegysgsztring helyett hasznlhatjuk a DateInterval felsorols konstansait (pldul: DateInterval.Day). A felsorols le-hetsges rtkeit az intelligens sg megjelenti a forrskdban.

    DateDiff(mrtkegysg, dtum1, dtum2) A dtum2dtum1 (!) rtke a megadott mrtkegysgben kifejezve. A mrtkegysgsztring rtelmezst lsd a DateAdd fgg-vnynl.

    DateSerial(v, hnap, nap) A megadott rtkekbl DateTime tpus rtket kpez. A hnap s a nap lehet negatv, illetve 12-nl vagy 31-nl nagyobb is. DateValue(sztring) DateTime tpusv alaktja a sztringet. IsDate(kifejezs) DateTime tpusv alakthat-e a kifejezs (True/False). MonthName(kifejezs) Megadja a kifejezs-nek megfelel sorszm hnap nevt. TimeSerial(ra, perc, msodperc) A megadott rtkbl DateTime tpus rtket kpez. A perc s msodperc lehet kisebb, mint nulla, illetve nagyobb, mint 60. TimeValue(sztring) A sztringet DateTime rtkk konvertlja. WeekDayName(WeekDay(dtum)) Megadja a ht napjnak a nevt.

    Megjegyzs: DateTime tpus rtkekkel kzvetlenl is vgezhetnk mveleteket, de kt dtum klnbsge, illetve az sszeadsnl a msodik operandus TimeSpan (idtartam) tpus rtk.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 12

    A sztring tpus (objektumosztly) Nvtr: System A sztringek objektumok. Karakterobjektumok (!) sorozatt tartalmazzk. Egy sztring hossza legfeljebb 2 millird karakter lehet. A sztring-literlt idzjelek kz zrjuk. A literlon bell az idzjelet duplzssal jelezzk: sztringvltoz = "Ez egy idzet: ""idzet""" Az res sztringet kt idzjel jelli: "" A sztringobjektumot ltrehozhatjuk a New opertorral, illetve a kezdrtk megadsval: Dim S1, S2 As String S1 = New String("abc") S2 = "def" Dim S3 As String = "ghi" Dim S4 As String = New String("jkl") A konstruktor argumentumaknt megadhatunk karakterekbl ll tmbt is: Dim S5 As String = New String(karaktertmb[, kezdindex, darab]) Ekkor a sztring rtkt a karaktertmb darab szm elembl fzi ssze a kezdindex-tl kezdve. A sztring karaktereit 0-tl kezdve indexeljk. A sztring egy karakterre a Chars(indexkifejezs) csak olvashat tulajdonsggal hivatkozhatunk: vltoznv.Chars(indexkifejezs), vagy rviden: vltoznv(indexkifejezs) A karakterekre trtn hivatkozsok nem hasznlhatk a karakterek mdostsra! Hibhoz vezet, ha rtkad utasts bal oldaln helyezkednek el! A sztring mdostsakor egy j sztringobjektum jn ltre a mdostott tartalommal. A program tlltja a sztringvltozt az j objektumra, s trli a rgit. Ezrt a tbbi objek-tummal ellenttben az S2 = S1 rtkads utn az S2 nem az S1-re mutat, hanem megkapja az S1 ltal trolt sztringet. Megjegyzs: mdosthat sztringet a StringBuilder osztly objektumai trolnak. A sztringobjektum tulajdonsgai s metdusai Hvatkozs: sztringvltoznv.tulajdonsgnv, sztringvltoznv.metdusnv(argumentumok). A metdusok ltalban fggvnyek, teht nem az eredeti vltozt mdostjk, hanem a visszatrsi rtkk lesz az j sztring! A hasonlts paramter fontosabb rtkei (az intelligens sg megjelenti a forrskdban):

    CurrentCulture a terleti belltsoknl megadott nyelv bcjnek megfelel sszehasonlts, megklnbzteti a kis- s nagybetket. CurrentCultureIgnoreCase a terleti belltsoknl megadott nyelv bcjnek megfelel sszehasonlts, egyeznek tekinti a kis- s nagybetket. Ordinal a karakterkdnak megfelel sszehasonlts, megklnbzteti a kis- s nagybetket. OrdinalIgnoreCase a karakterkdnak megfelel sszehasonlts, egyeznek tekinti a kis- s nagybetket.

    Length A sztring hossza.

    Contains(sztring) Tartalmazza-e a vltoz a sztring-et (True/False). CopyTo(kezdindex, karaktertmb, clindex, darab)

    A kezdindex-tl tmsol darab karaktert a karaktertmbbe a clindex-tl kezdve.

    EndsWith(sztring[, hasonlts]) A vltoz a sztring sztringgel vgzdik-e (True/False). IndexOf(sztring[, kezdindex[, elemszm[, hasonlts]]])

    Megadja a sztring sztring els elfordulsnak pozcijt a kezdindex-tl kezdve (elemszm darab karakteren keresztl keres).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 13

    IndexOfAny(tmb[, kezdindex[, elemszm]]) Megadja a tmb karaktertmb brmely elemnek els elfordulst a kezdindex-tl kezdve (elemszm darab karakteren ke-resztl keres). Megklnbzteti a kis- s nagybetket egymstl.

    Insert(kezdindex, sztring) A sztring-et beilleszti a kezdindex-tl kezdve. LastIndexOf, LastIndexOfAny Ugyanaz, mint az IndexOf, illetve IndexOfAny, csak a sztring vgrl kezdi a keresst.

    PadLeft(teljeshossz[, karakter]) Teljeshossz szlessgen jobbra zrja a vltoz karaktereit. A megmarad res helyeket karakter karakterrel tlti fel (alaprtel-mezett: szkz).

    PadRight Ugyanaz mint a PadLeft, csak balra zr.

    Remove(kezdidex[, darab]) A kezdindex-tl kezdve darab karaktert trl (alaprtelmezett: a vgig trl). Replace(sztring1, sztring2) A sztring1 sszes elfordulst lecserli sztring2-re. StartsWith Ugyanaz, mint az EndWith, csak a sztring elejt vizsglja meg. Substring(kezdindex[, darab]) A kezdindex-tl kezdve kiemel darab karakterbl ll rsz-sztringet (alaprtelmezett: a sztring vgig). ToCharArray([kezdindex, darab]) A kezdindex-tl kezdve darab szm karaktert helyez el egy karaktertmbben (alaprtelmezett: az egsz sztring). ToLower(), ToUpper() Kisbetss, illetve nagybetss alaktja a sztringet. Trim([karaktertmb]) Eltvoltja a karaktertmb-ben szerepl karaktereket a sztring elejrl s vgrl (alaprtelmezett: szkz, Enter, tabultor). TrimStart, TrimEnd Ugyanaz mint a Trim, de csak az elejrl, illetve a vgrl hagyja el.

    A kvetkez tmbmetdusok (lsd ott) rtelemszeren alkalmazhatk a sztringekre is: All, Any, Count, Distinct, Except, Intersect, Max, Min, Reverse, Take, TakeWhile, ToList, Union, Where. A felsorol (IEnumerable) objektumok4 esetn hasznlhatjuk a sztringvltoz=vltoznv.metdusnv.ToArray (!) metdushvst, vagy karaktertmbben trolhatjuk az ered-mnyt. Lsd mg: Fggvnyek/Sztringkezel fggvnyek

    4 A Visual Basicben a sorozatok (tmb, lista stb.) elemeire vonatkoz tbb metdus gynevezett felsorol objektumot (pontosabban interfszt) eredmnyez. A felsorol objek-tumot a Dim Vltoznv As IEnumerable([Of tpus]) utastssal deklarljuk, s a meghvott metdussal hozzuk ltre, pldul: Felsorols = Tmb.Distinct(). A metdus ered-mnyt kzvetlenl is talakthatjuk a megfelel adatszerkezetre: Tmb2 = Tmb.Distinct().ToArray()

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 14

    A String osztly osztlymetdusai Nvtr: System Hivatkozs: String.metdusnv(argumentumok)

    Kt sztring sszehasonltsa: String.Compare(sztring1[, kezd1], sztring2[, kezd2, hossz][, md]) String.Compare(sztring1[, kezd1], sztring2[, kezd2, hossz], hason-lts)

    A sztring1 s sztring2 sszehasontsa a magyar bc szerint. Md = True: nem klnbzteti meg a kis- s nagybetket. a hasonlts paramter rtke szerint (lsd A sztringobjektum legfontosabb tulajdonsgainl). Az sszehasontst a kezd1, illetve kezd2 indexeknl kezdi, majd legfeljebb hossz darab karakteren keresz-tl folytatja. Fggvnyrtk: 1 ha sztring1 < sztring2 0 ha sztring1 = sztring2 1 ha sztring1 > sztring2

    Formzott megjelents: String.Format(sztring, rtk0, rtk1, )

    A megadott rtkeket formzott karaktersorozatknt begyazza a formtumokat tartalmaz sztring sztringbe. A formtum alakja (a kapcsos zrjel rsze a szintaxisnak): {index[, hossz][:formtumkd]}, melynek rszei: index: a kirsra kerl rtk sorszma a paramterlistban (0-val kezddik a sorszmozs) hossz: az adott rtk szmra fenntartott karakterek szma pozitv rtk: jobbra zr, negatv rtk: balra zr formtumkd: a kirsra kerl rtk formtuma. Formtumkd pldul Fn: fixpontos megjelents n tizedesjeggyel; En: normlalak n tizedesjeggyel. Pldul: String.Format("A {0, 5:F1} ngyzetgyke: {1, 10:F4}.", 20, Math.Sqrt(20))

    Sztring sztvgsa rszekre: String.Split(karaktertmb[, darab])

    A sztring-et a karaktertmb karaktereinl sztvgva elhelyezi egy sztring-tmbben. Legfeljebb darab rszre vgja szt. A Split mdostja a sztingtmb mrett! Helyettesti a tmbobjektum ltrehozst s inicializlst.

    Sztringtmb egyestse egyetlen sztringg: String.Join(elvlasztjel, sztringtmb[, kezdindex, darab])

    A sztringtmb darab szm elemt a kezdindex-tl kezdve sszefzi egy sztringbe. Az elemek kz beilleszti az elvlasztjel sztringet. Alaprtelmezs: a teljes tmb.

    A Strings osztly osztlymetdusai Nvtr: Microsoft.VisualBasic A Strings osztly tovbbi osztlymetdusokat tartalmaz a sztringek kezelshez (pldul Asc, AscW, Chr, ChrW, InStr, InStrRev, Join, LCase, Left, Len, LTrim, Mid, Replace, Right, RTrim, Space, Split, StrComp, StrDup, StrReverse, Trim, UCase)

    Strings.Split(sztring[, elvlasztjel[, darab]]) A sztring-et az elvlasztjel sztringeknl sztvgva elhelyezi egy sztring-tmbben. Legfeljebb darab rszre vgja szt. A Split mdostja a sztringtmb mrett! Helyettesti a tmbobjektum ltrehozst s inicializlst.

    Strings.Join(sztringtmb, elvlasztjel] A sztringtmb elemeit sszefzi egy sztringbe. Az elemek kz beilleszti az elvlasztjel sztringet. Megjegyzs: a Split metdusnl sztringet is megadhatunk elvlasztjelknt. gyeljnk az eltr argumentumokra!

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 15

    Vltozk s konstansok Deklarls, automatikus kezdrtk

    Konstans deklarlsa (programmodul, alprogram vagy blokkszinten)

    Const nv [, nv ] As tpus = rtk, Egy rtkhez tbb nv rendelhet. Az rtk fordtsi idben kirtkel-het kifejezs is lehet. A fggvnyek kzl csak az Asc, AscW, Chr, ChrW szerepelhet a kifejezsben.

    Vltoz deklarlsa (programmodul, alprogram vagy blokkszinten)

    [elrsi md] [[Shared] [Static]] Dim

    Dim nv, As tpus, Dim nv As tpus [= kezdrtk], Dim nv As New konstruktor

    Kezdrtk megadsa esetn a vltoznv utn mindig ki kell rni a tpust. A kezdrtk fordtsi idben kirtkelhet kifejezs is lehet. Public, Private, Shared, Static megjells esetn elhagyhat a Dim kulcssz.

    Automatikus kezdrtk Numerikus vltozk: 0 Char-tpus: binris 0 Hivatkozs tpusok: Nothing Boolean: False Date: #01/01/0001 12:00:00 AM#

    objektumok, sztringek, tmbk stb.

    Megjegyzs: a forrskdban tizedespontot, az adatbevitelnl a terleti belltsoknak megfelel elvlasztjelet (pldul tizedesvesszt) alkalmazunk. A vltozk lettartama Blokkszint, illetve eljrsszint (nem Static) vltozk lettartama: az alprogram futsi ideje (az alprogramba val belpstl az alprogrambl val kilpsig tart).

    Az alprogramba val belpskor a vltoz megkapja az automatikus rtket, amit a Dim kezdrtkadsa vagy egy rtkad utasts fellrhat. Ha az alprogram meghv egy msik alprogramot, akkor a vltozk megtartjk kzben rtkket (nem fejezdik be az lettartamuk).

    Modulszint vltozk lettartama Standard modulban deklarlva: a program futsi ideje. Osztlyban, illetve struktrban deklarlva (nem Shared): megegyezik az adott tpus objektum, illetve vltoz lettartamval.

    Megjegyzs: A blokkszint vltozk inicializlsa fggetlen attl, hogy az adott blokk vgrehajtsra kerl-e. lettartamuk az alprogram futsideje!!! Ha ismt belpnk a blokkba, megmarad az elz rtkk! Ennek elkerlshez clszer a blokkban inicializlni a vltozt (ne hasznljuk ki az automatikus kezdrtkadst)! Az lettartam mdostsa Shared: az osztlyok, illetve struktrk megosztott (kzs) vltozinak/mezinek minstse. Ezek lettartama megegyezik a program futsi idejvel.

    A Shared vltozk nem ktdnek egy objektumhoz, illetve vltozhoz. Az osztly/struktra nevvel minstve hivatkozunk rjuk. Az objektumosztlyok Shared tulajdonsgait osztlytulajdonsgnak vagy megosztott tulajdonsgnak nevezzk. A struktrk Shared mezit megosztott tulajdonsgnak vagy megosztott meznek nevezzk.

    Static: meghosszabbtja az eljrs-, illetve blokkszint vltozk lettartamt. A sztatikus vltozk lettartama:

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 16

    Az alprogram helye A statikus vltoz lettartamnak kezdete vge Programmodul (alaprtelmezs: Shared eljrs) Az alprogram els meghvsa A program futsnak befejezdse. Osztly, struktra (nem Shared eljrs) Az adott osztlyhoz tartoz objektum vagy struktra tpus

    vltoz alprogramjnak els meghvsa Az objektum vagy vltoz felszabadtsa (szemtgyjts).

    Osztly, struktra (Shared eljrs) Az alprogram els meghvsa (az osztly/sturktra vagy egy objektum/vltoz nevvel minstve)

    A program futsnak befejezdse.

    Sztatikus vltoz csak eljrs-, illetve blokkszinten deklarlhat, de nem szerepelhet struktra eljrsban. A deklarciban szerepel kezdrtket csak az alprogram els meghvsakor veszi fel a sztatikus vltoz. Az objektumosztlyok Shared alprogramjainak sztatikus vltozi az osztlyhoz tartoznak, csak egyetlen pldnyban lteznek a memriban. A nem Shared alprogramok sztati-kus vltozi az objektumpldnyhoz tartoznak, objektumonknt kln-kln lteznek a memriban (rtkk objektumonknt klnbzhet). Egy deklarciban nem szerepelhet egyszerre a Static s a Shared megjells. Megjegyzs: Shared, illetve Static megjells esetn elhagyhat a Dim kulcssz a deklarcibl.

    Opertorok A legfontosabb opertorok

    Megjegyzs Aritmetikai mveletek + - * / ^

    \ Mod sszeads, kivons, szorzs, oszts, hatvnyozs, maradkos oszts hnyadosa, illetve maradka.

    Logikai mveletek Not, And, Or, Xor Nem, s, vagy, kizr vagy

    Logikai mveletek rvidzrral AndAlso, OrElse Ha az els operandusbl kvetkezik az eredmny, akkor a msodik operandus nem kerl kirtkelsre.

    Biteltol mveletek (Aritmetikai eltols: az ered-mny eljele nem vltozik.)

    operandus1 > operandus2

    Az egsz tpus 1. operandus bitjeit a 2. operandus ltal meghatrozott mrtkben eltolja balra, illetve jobbra. A 2. operandust a tpushossznl eggyel kevesebb bitre maszkolja, gy soha nem jn ltre tlcsorduls.

    Sztringek sszefzse & Az automatikus tpuskonverzi miatt sztringet s numerikus rtket is sszefz-hetnk (pldul a kirsnl).

    rtkmdost mveletek ^=, *=, /=, \=, +=, -=, &= Pldul: A += B egyenrtk A = A + B-vel Relcik =, , , =

    Is, IsNot

    Objektumhivatkozsok sszehasonltsa (Nothing-gel is!).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 17

    Megjegyzs Sztringek sszehasonltsa 1. Relcis opertorokkal

    2. Az StrComp fggvnnyel: StrComp(sztring1, sztring2, 1) Fggvnyrtk: 1 ha sztring1 < sztring2 0 ha sztring1 = sztring2 1 ha sztring1 > sztring2

    3. A Like opertorral: sztringkifejezs Like minta

    4. A StringCompare osztlymetdussal

    Ha az utols paramter rtke 1, akkor az StrComp a magyar bc szerint vgzi az sszehasonltst, de nem klnbzteti meg a kis- s nagybetket egymstl. Lsd mg az Option Compare direktvt s a sztring osztly metdusait!

    rtke True, ha a sztringkifejezs megfelel a minta sztringnek. A minta megfelel pldul az MS Access-ben hasznlhat mintknak (*, ? #, [karakterlista], [!karakterlista]).

    Lsd A String osztly osztlymetdusainl.

    Az opertorok precedencija cskken sorrendben

    ^

    eljel (+, ) *, / \ Mod +,

    &

    relcik, Is, IsNot, Like Not And, AndAlso Or, OrElse Xor

    Az azonos precedencij mveleteket a Visual Basic balrl jobbra vgzi el.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 18

    Utastsok A legfontosabb utastsok

    Megjegyzs Utasts Kln sorba rjuk. Szksg esetn folyats a kvetkez sorban: szkz

    s alhzsjel a sor vgre Tbb utasts egy sorban: kettsponttal elvlasztva. A forrskdban nem klnbzteti meg egymstl a kisbetket s a nagybetket.

    Megjegyzs [utasts] ' megjegyzs A sor vgig tart. rtkad utasts vltoznv[(indexkifejezs [, )]] = kifejezs Feltteles elgazs If felttel Then

    utastsok [ElseIf felttel Then utastsok]

    [Else utastsok] End If vagy: If felttel Then utastsok [Else utastsok]

    Az Else-g elmaradhat.

    Egysoros forma. Nincs End If.

    Elgazs esetsztvlasztssal Select Case kifejezs Case rtk1[, rtk2, ] utastsok [Case rtk3[, rtk4, ] utastsok] ...

    [Case Else utastsok] End Select

    Az els tallathoz tartoz utastsok vgrehajtsa utn kilp a Case szerkezetbl. A Case Else g elmaradhat. Tovbbi lehetsgek: Case alshatr To felshatr: intervallum megadsa, pldul: Case 10 To 20 Case Is relcijel kifejezs: a relcinak megfelel rtk megadsa, pldul: Case Is maxrtk Exit Select: kilp a Case szerkezetbl.

    Szmlls ciklus For szmll = kezdrtk To vgrtk _ [Step lpskz] utastsok [Exit For] [Continue For] utastsok Next

    A Step 1 elhagyhat. A ciklusra nzve loklis ciklusvltoz deklarlsa: For szmll As tpus = kezdrtk Visszafel szmlls ciklus esetn a lpskz negatv rtk. Exit For: kilp a ciklusbl. Continue For: a Next-nl folytatja a ciklust. Option Infer On esetn alhzssal megjelli, ha nem a ciklusfejben deklarljuk a ciklusvltozt (nem rendel hozz automatikusan t-pust).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 19

    Megjegyzs Itertoros ciklus For Each itertor [As tpus] In {tmb | halmaz}

    utastsok Next

    Az itertor sorra felveszi a tmbelemek rtkt. Az elemek maguk nem mdosthatk, de hivatkozs tpus esetn a tagok mr igen. A ciklust kollekcikra (pldul listkra) is alkalmazhatjuk.

    Elltesztel feltteles ciklus Do {While | Until} felttel utastsok [Exit Do] [Continue Do] utastsok Loop

    While: ismtlsi felttel Until: kilpsi felttel Exit Do: kilp a ciklusbl Continue Do: a Loop-nl folytatja a ciklust.

    Htultesztel feltteles ciklus Do utastsok [Exit Do] [Continue Do] utastsok Loop {While | Until} felttel

    Minstblokk With {objektum | struktra} utastsok End With

    Egymsba gyazott blokkok esetn csak a legbels objektum azono-stja hagyhat el a minstsnl.

    Vge End Lezrja a megnyitott fjlokat, trli a vltozkat s kilp a program-bl.

    Meglls Stop Lelltja a programot, de nem zrja le a fjlokat s nem trli a vlto-zkat. A fejlesztrendszeren bell trtn futtatsnl megfelel egy trspont elhelyezsnek.

    Beolvass, kirs Rszletesebben lsd a megfelel objektumosztlyok ismertetsnl.

    Megjegyzs Beolvass konzolalkalmazsban vltoznv = Console.ReadLine() Beolvass a billentyzetrl.

    Beolvass Windows-alkalmazsban Szvegdobozzal (Textbox) Lsd ksbb. Beolvass inputdobozzal vltoznv = InputBox( _

    zenet[, [ablakcm], kezdrtk]) Konzol- s Windows-alkalmazsban is hasznlhat.

    Sztring talaktsa numerikus rtkk vltoznv = CInt(sztringkifejezs) (vagy CLng, CSng, CDbl stb.)

    Beolvasskor mindig sztringet kapunk vissza!!! Automa-tikus tpuskonverzi esetn nem ktelez konvertlni.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 20

    Megjegyzs Kirs a kpernyre konzolalkalmazs-ban

    Console.Write(sztringkifejezs) Console.WriteLine(sztringkifejezs)

    Nem emel sort. Sort emel.

    Kirs a kpernyre Windows-alkalmazsban

    Cmkeobjektummal (Label) Lsd ksbb.

    Kirs zenetablakkal MsgBox(zenet[, [gombok], ablakcm]) Konzol- s Windows-alkalmazsban is hasznlhat. gombok: pldul vbOkOnly

    Numerikus rtk formzsa FormatNumber(nv, tizedesjegy) Sztringet ad vissza a megadott tizedesjeggyel (lehet 0 is). Kpernytrls konzolalkalmazsban Console.Clear()

    Kivtelkezels A Try utasts szerkezete:

    Try Prba-blokk [utastsok] [Exit Try] [Catch[ kivtel[ As kivteltpus]][ When kifejezs] Kivtel-blokkok [utastsok] [Exit Try]] [Catch ] [Finally Vgl-blokk [utastsok]] End Try

    A prba-blokk az esetlegesen kivtelhez vezet utastsokat tartalmazza. A kivtel-blokkokat a nekik megfelel kivtel ltrejttekor hajtja vgre a program. Egy kivtel csak a sorrendben els, neki megfelel kivtel-blokk vgrehajtst okozza. A vgl-blokk utastsai a kivtelkezels utn kerlnek sorra. A kivtel egy Exception vagy belle leszrmazott tpus objektumot deklarl, melynek segtsgvel elrhetk a kivtel tulajdonsgai. A kivteltpus hinyban az adott kivtel-blokk brmely kivtelre vonatkozik. Az objektum Message tulajdonsga megadja a kivtel angol nyelv lerst. When megadsa esetn a kivtelblokk csak akkor kerl vgrehajtsra, ha a kifejezs rtke True. Exit Try esetn a vgl-blokkban, ennek hinyban, illetve ez utn pedig az End Try utastst kvet utastssal folytatdik a vgrehajts. Egy kivtel ltrejttekor megszakad a prba-blokk tovbbi utastsainak a vgrehajtsa. A vgl-blokk akkor is vgrehajtsra kerl (ha van), ha nem jn ltre kivtel. Az egyes blokkokban deklarlt vltozk blokkszint hatkrrel rendelkeznek. A Try utastsnak vagy kivtel-blokkot vagy vgl-blokkot mindenkppen tartalmaznia kell. Az Exception tpus objektumok tulajdonsgai s metdusai

    Message A kivtel angol nyelv lersa.

    GetType() A kivtel tpusa (objektumosztlya).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 21

    Gyakoribb kivteltpusok (objektumosztlyok) Nvtr: System

    ArithmeticException Hibs aritmetikai vagy konverzis mvelet.

    DivideByZeroException Nullval val oszts (maradkos osztsnl). Exception ltalnos tpus kivtel. FormatExeption Hibs formtum.

    InvalidCastException Tpuskonverzis hiba.

    IO kivtelek Kivtelek a fjlkezelsnl, lsd albb. IndexOutOfRangeException Indexhatr tllpse.

    NullReferenceException Hivatkozs nem ltez objektumra. OutOfMemoryException Nincs elg memria a program vgrehajtshoz. OverflowException Tlcsorduls.

    RankException Hibs dimenziszm az alprogram tmbparamternl.

    StackOverflowException Tl sok egymsba gyazott alprogramhvs (verem tlcsorduls). Megjegyzs: A DivideByZeroException (oszts nullval) a maradkos osztsnl (\) fordulhat el. Ha a / mveleti jelet hasznljuk az egsz tpus rtkeknl, akkor a 0-val val oszts OverflowException-t (tlcsorduls kivtelt) okoz. Vals tpus vltozknl a Visual Basic az IEEE 754 szabvny alapjn Vgtelen-nek (Infinity) vagy Nem szm-nak (Not a Number) tekinti a 0-val oszts eredmnyt, gy nem utastja vissza a mvelet elvgzst (nem jn ltre kivtel). A CInt stb. tpuskonverzis fggvnyek alkalmazsakor InvalidCastException (tkp. szmkonvertls kivtel), a Convert objektumosztly osztlymetdusainak a hasznlatakor (pldul Convert.ToInt32) pedig FormatException (tkp. hibs formtum kivtel) jhet ltre. IO kivteltpusok Nvtr: System.IO

    DirectoryNotFoundException Nem rhet el a megadott mappa.

    DriveNotFoundException Nem rhet el a megadott meghajt. EndOfStreamException Olvassi utasts a fjl vgt kveten. FileNotFoundException Nem rhet el a megadott fjl. PathTooLongException Tl hossz az elrsi t sztringje.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 22

    Alprogramok Minden vgrehajthat utastsnak alprogramban kell elhelyezkednie. Eljrsok Az eljrs szerkezete:

    Sub eljrsnv([paramterlista]) [loklis deklarcik] [utastsok] [Exit Sub] [utastsok] End Sub

    A Sub utasts csak modulszinten szerepelhet a programban. Ebbl kvetkezik, hogy az eljrsok nem gyazhatk egymsba. Az eljrsok alaprtelmezs szerint Public hozzfrsek. Ezt az eljrsfejben mdosthatjuk. Az Exit Sub utastssal kiugorhatunk az eljrsbl. Esemnykezel eljrsok Az esemnykezel eljrs szerkezete:

    Sub eljrsnv(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles objektumnv.esemnynv, [loklis deklarcik] [utastsok] End Sub

    Az objektumnv objektumon ltrejtt esemnynv esemnyt kezeli Az eljrsnv szoks szerint: objektumnv_esemnynv Paramterek: sender: az esemnyhez kapcsold objektum e: esemnyargumentum-objektum (hivatkozhatunk r az eljrsban) Egy eljrshoz tbb esemny is megadhat (a Handles utn) Esemnykezel eljrs futsidej hozzrendelse a vezrlelemhez:

    AddHandler vezrlelem-objektum.esemny, AddressOf esemnykezel eljrs neve A hozzrendelsnek megszntetse:

    RemoveHandler vezrlelem-objektum.esemny, AddressOf esemnykezel eljrs neve Megjegyzs: esemnykezel eljrs explicit mdon (egy msik eljrsbl) trtn meghvsnl az esemnyargumentum helyre rjuk be az res esemnyt (System.EventArgs.Empty).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 23

    Fggvnyek A fggvny szerkezete

    Function fggvnynv([paramterlista]) As visszatrsi rtk tpusa [loklis deklarcik] [utastsok] End Function

    Az utastsok kztt egy vagy tbb helyen szerepelnie kell a fggvnynv = kifejezs

    rtkadsnak, ami a visszatrsi rtket hatrozza meg. A Function utasts csak modulszinten szerepelhet a programban. Ebbl kvetkezik, hogy a fggvnyek nem gyazhatk egymsba. A fggvnyek alaprtelmezs szerint Public hozzfrsek. Ezt a fggvnyfejben mdosthatjuk. Az Exit Function utastssal kiugorhatunk a fggvnybl. A fggvnyek eljrsknt is meghvhatk. Ebben az esetben figyelmen kvl marad a visszatrsi rtk. Paramterlista A paramterlista egyetlen paramterbl vagy egymstl vesszvel elvlasztott paramterekbl ll. Egy paramter szintaxisa:

    [{ByVal | ByRef}] nv[()] As tpus Tmb tadsnl az indexek jellse nlkl tegyk ki a zrjelet: tmbnv(). A paramterek az alprogramok loklis vltozinak szmtanak. Megjegyzsek.

    A paramtereket alaprtelmezett rtkkel lthatjuk el. A paramterlista tartalmazhat opcionlis paramtereket, illetve paramtertmbt. Rszletesebben lsd a Visual Basic sgjt.

    Paramtertads cm s rtk szerint A ByVal rtk szerinti, a ByRef cm szerinti paramtertadst jell. Alaprtelmezett a ByVal. gyeljnk arra, hogy a hivatkozs-tpus paramtereknl (pldul tmbknl) ByVal esetn is mdosthat az argumentum! Az argumentumknt szerepl konstansok, literlok, felsorolsok elemei illetve kifejezsek termszetesen ByRef esetn sem mdosulnak. A fordtprogram a hatkonysg nvelse rdekben trendezheti az aritmetikai kifejezseket. Ha az argumentumok fggvnyhvsokat tartalmaznak, nem szmthatunk az elrt sorrendben trtn hvsra! Megjegyzs: az argumentumok azonostsa trtnhet nv s pozci szerint. Rszletesebben lsd a Visual Basic sgjt. Fggvnyparamterek Fggvnyparamterek esetn (lsd pldul a tmbmetdusokat) az argumentum helyre a fggvny cmt kell rni, amit az AddressOf opertorral hatrozunk meg:

    AddressOf fggvnynv A fggvny nevt zrjelek s argumentumok nlkl rjuk a kifejezsbe. Az argumentumok tadsnak a mdjt lst a Sgban (Invoke metdus).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 24

    Beptett fggvnyek A legfontosabb beptett fggvnyek Nvtr: Microsoft.VisualBasic Lsd mg a Math osztly metdusait! Lsd mg: http://support.microsoft.com/kb/818805/hu

    Megjegyzs Sztringkezel fggvnyek Lsd mg a sztring objektum tulajdonsgait s metdusait!

    Len(s), Left(s,db), Right(s,db), Mid(s,n,db)

    StrDup(ismtls, "karakter") StrReverse(s)

    A sztring hossza; balrl, jobbrl, illetve a megadott helytl kezdve a megadott szm karakter. Paramterek s: sztringkifejezs, db: a karakterek szma, n: a kezd karakter sorszma. A karakter-t ismtls-szer megismtli. Megfordtja a sztringet.

    Karakterkdok s karakterek Asc("karakter"), AscW("karakter") Chr(kd), ChrW(kd)

    A karakter ANSI-kdjt, illetve Unicode-jt adja vissza. Az ANSI-kd, illetve a Unicode alapjn a karaktert adja vissza. Hasznlatukhoz importlni kell a Strings nvteret.

    Tpuskonverzis fggvnyek CBol, CByte, CChar, CDate, CDbl, CDec, CInt, CLng, CSng, CStr

    Paramter: a konvertland rtk. Az eredmny tpusa megfelel a fggvny-nvben szerepl tpusnak. (Bol: Boolean, Dbl: Double, Int: Integer, Sng: Single, Str: String) Trtek egsz rtkre trtn konvertlsnl (CByte, CInt, CLng) kerekti a szmot. 0,5 trtrsz esetn a legkzelebbi pros egszre kerekt (bankr-kerekts)!

    Konvertls numerikus rtkre Val(sztringkifejezs) A sztringkifejezs elejt numerikus rtkk konvertlja. A sztringben tize-despontot kell hasznlni! gy a Val fggvny kzvetlenl nem alkalmas a szvegdobozzal beolvasott vals rtkek konvertlsra!

    Beviteli ablak InputBox(szveg[, cm[, rtk[, x, y]]]) Az x, y pozciban elhelyezi a kpernyn a beviteli ablakot a megadott sz-veggel, cmmel s a szvegdobozba rt rtkkel.

    Egyb fggvnyek IsNumeric(kifejezs) IsDate(kifejezs) Hex(egsz szm) Int(kifejezs) Fix(kifejezs)

    A kifejezs rtke rtelmezhet-e szmknt, illetve dtum/idknt (True, False). Pldul beolvass ellenrzshez. Sztringknt megadja a szm hexadecimlis rtkt. A numerikus kifejezs egszrsze. Elhagyja a numerikus kifejezs rtknek trtrszt.

    Megjegyzs: az IsNumeric(logikai kifejezs) rtke True (numerikus rtkre konvertlhat).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 25

    Tpuskonverzis metdusok Nvtr: System.Convert A tpuskonverzit a Convert osztly albbi osztlymetdusaival is elvgezhetjk: ToBoolean, ToByte, ToChar, ToDateTime, ToDecimal, ToDouble, ToInt16, ToInt32, ToInt64, ToSingle, ToString. Az egsz tpusnl az Integer helyett az Int rvidtst hasznljuk a bitmrettel kiegsztve (a .NET-nek megfelel jellsmd). A fggvny argumentuma a konvertland kifeje-zs. Megjegyzs: a legtbb struktra rendelkezik a tpus.Parse(sztringkifejezs) sztatikus metdussal, amely a megadott tpusra alaktja az argumentumsztringet. A Math osztly tulajdonsgai s metdusai Nvtr: System A tblzat megosztott tulajdonsgokat s sztatikus metdusokat tartalmaz. A Math minsts elhagyhat, ha a forrskd elejn importjljuk a System.Math nvteret. x, y: a fggvnynek megfelel tpus kifejezs Math.E Az e dupla pontossg rtke. Math.Pi A pi dupla pontossg rtke. Math.Abs(x), Math.Sqrt(x) Abszoltrtk, ngyzetgyk. Math.Sin(x), Math.Cos(x), Math.Tan(x) Math.Acos(x), Math.Asin(x), Math.Atan(x) Math.Atan2(y, x)

    Szgfggvnyek (radin argumentummal!) A szgfggvnybl visszaszmolja a szget (radinban). Az y/x arkusz tangense (rtelmezi az x = 0-t is).

    Math.Exp(x), Math.Log(x) Math.Log10(x)

    e alap hatvny, logaritmus 10-es alap logaritmus

    Math.Ceiling(x) A legkisebb egsz, amely nagyobb vagy egyenl az x-nl. Math.Floor(x) A legnagyobb egsz, amely kisebb vagy egyenl az x-nl. Math.Max(x, y), Math.Min(x, y) A kt rtk maximuma/minimuma. Math.Pow(x, y) x y (hatvnyozs) Math.Round(x[, n]) n tizedesre kerekt (kerekts egszre: n = 0). Math.Sign(x) Eljelfggvny (x0 esetn +1) Math.Truncate(x) Elhagyja az x trtrszt.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 26

    sszetett tpusok Tmbk Nvtr: System A tmbk objektumok! Hivatkozs-tpus vltoz mutat rjuk. A tmb2 = tmb1 rtkads a 2. tmbre mutat hivatkozst tlltja az 1-es tmbre, gy mindkt vltoz ugyan-arra a tmbre fog mutatni! (A program a 2-es tmbt trli a memribl, ha ms hivatkozs nem mutat r.). A tmb dupliklshoz az rtkads helyett hasznljuk a CopyTo metdust!

    Megjegyzs Tmb deklarlsa Dim tmbnv(maxindex[, ]) As elemtpus

    Dim tmbnv([, ]) As elemtpus = _ { elemek felsorolsa }

    vagy: Dim tmbnv([, ]) As elemtpus tmbnv = New elemtpus(maxindex[, ]) {}

    Maxindex: az index legnagyobb rtke. Egy tmbnek legfeljebb 32 indexe lehet. A tmbelemek indexelse mindig 0-val kezddik! A kapcsos zrjel a szintaxis rsze!

    A kapcsos zrjel itt ktelez akkor is, ha nem soroljuk fel a kezdr-tkeket! A New helyett hasznlhatjuk a ReDim utastst.

    Kezdrtkads tbb dimenzi esetn pldul: {{1, 2, 3}, {4, 5, 6}}

    Hivatkozs a tmb elemeire tmbnv(indexkifejezs[, ]) Indexkifejezs: konstans, vltoznv, kifejezs (egszre kerekt!) Az i-edik dimenzi maximlis indexe tmbnv.GetUpperBound(i) A dimenzik szmozsa 0-val kezddik.

    A tmbmret mdostsa ReDim [Preserve] tmbnv(jmaxindex1, )

    vagy: Array.Resize(tmbnv, jelemszm)

    A program kszt egy j tmbt, s Preserve esetn tmsolja a rgi tmb elemeit az jba. Az elemek rtknek megrzse (Preserve) esetn csak az utols dimenzi mrete mdosthat! A Resize metdus csak egydimenzis tmbkre alkalmazhat. Megr-zi a tmb elemeinek rtkt. Argumentumknt az j tmb elemszmt kell megadni (nem pedig a maximlis indexet)!

    A tmb felszabadtsa Erase tmb1[, tmb2, ] Felszabadtja a tmb ltal lefoglalt memrit, s Nothing-ra lltja a vltozt.

    Megjegyzs: a tbbi objektummal ellenttben a tmb ltrehozsnl a New opertor utn nem az objektum konstruktort hvjuk meg, csupn a tmbelemek tpust jelezzk. A nem publikus konstruktor meghvsa helyett szksg esetn hasznlhatjuk a CreateInstance osztlymetdust (futs alatti kts). Hatkonyabb programot rhatunk, ha tmb helyett listt hasznlunk. Klnsen a tmbmret mdostsa vesz el sok idt.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 27

    A tmbobjektum tulajdonsgai s metdusai Hivatkozs: tmbnv.tulajdonsgnv, tmbnv.metdusnv(argumentumok)

    Length A tmbelemek szma, az sszes dimenzit belertve.

    Rank A tmb dimenziinak a szma.

    CopyTo(tmb2, index) Az egydimenzis tmb sszes elemnek tmsolsa az egydimenzis tmb2-be a tmb2(index)-tl kezdve. GetUpperBound(i) Megadja az i-edik index legnagyobb rtkt (0-val kezddik az indexek sorszmozsa).

    Az Array osztly osztlymetdusai Hivatkozs: Array.metdusnv(argumentumok)

    Array.BinarySearch(tmb[kezdindex, darab], elem[,komparlfv]) Binris keresssel megkeresi az egydimenzis, rendezett tmb tmbben az elem elemet. A keresst a kezdindex-tl kezdi s darab elemen keresztl folytatja (alaprtelmezs: az egsz tmb). A visszatrsi rtk a megtallt elem indexe (negatv rtket ad vissza, ha nem tallta meg). A komparlfggvny hasznlatt lsd a tanknyv kiegsztsben!

    Array.Clear(tmb, kezdindex, elemszm) A tmb tmb elemszm darab elemnek trlse a kezdindex-tl kezdve. A trls utn a tmb elemeinek rtke: 0 (numerikus), False (logikai), Nothing (objektum). Eljrsknt kell meghvni!

    Array.CreateInstance(tpus, mret1[, mret2, ]) Ltrehozza a tmbt a ksi ktshez. Array.Exists(tmb, AddressOf prediktumfv) Lineris keresssel meghatrozza, hogy ltezik-e az egydimenzis tmb-ben a prediktumfggvny ltal

    megadott elem (True/False). A prediktumfggvny rtelmezst lsd a 29. oldalon! Array.Find(tmb, AddressOf prediktumfv) Lineris keresssel meghatrozza az egydimenzis tmb-ben a prediktumfggvnnyel kivlasztott

    elemet. Ha nem tall megfelel rtket, akkor az elem alaprtelmezett rtkvel tr vissza.

    Array.FindAll Ugyanaz, mint az Array.Find, de egy tmbt ad vissza, amely tartalmazza az sszes megfelel elemet. Ha nem tall megfelel rtket, akkor res tmbt ad vissza.

    Array.FindIndex(tmb[, kezdindex[, darab]], AddressOf prediktumfv)

    Ugyanaz, mint az Array.Find, de az elem indext adja vissza. A keresst a kezdindex-nl kezdi s da-rab elemen t folytatja (alaprtelmezs: az egsz tmb).

    Array.FindLast, Array.FindLastIndex Ugyanaz mint az Array.Find, illetve az Array.FindIndex, de a keresst a tmb vgn kezdi.

    Array.ForEach(tmb, AddressOf transzformcisfv) Az egydimenzis tmb elemeire vgrehajtja a transzformcis fggvnyt. A transzformcis fggvny rtelmezst lsd a 29. oldalon. Eljrsknt kell meghvni!

    Array.IndexOf(tmb, elem[, kezdindex[, elemszm]) Az elem elem lineris keresse az egydimenzis tmb-ben a kezdindex-tl kezdve elemszm darab elemen keresztl (alaprtelmezs: az egsz tmb). A visszatrsi rtk az els megtallt elem indexe (1 ha nem tallta meg).

    Array.LastIndexOf Ugyanaz, mint az Array.IndexOf, csak visszafel keres (a tmb vgtl kezdve).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 28

    Array.Reverse(tmb[, kezdindex, elemszm]) Megfordtja az egydimenzis tmb tmb elemszm darab elemnek sorrendjt a kezdindex-tl kezdve (alaprtelmezs: az egsz tmb).

    Array.Sort(tmb[, kezdindex, elemszm] [, komparlfv]) Rendezi az egydimenzis tmb tmb elemszm darab elemt a kezdindex-tl kezdve. A komparlfggvny rtelmezst lsd a 29. oldalon!

    Array.Sort(kulcstmb, rtktmb ) Ugyanaz, mint az Array.Sort, de a kulcstmb elemeivel egytt rendezi a hozzjuk tartoz, egy dimenzis rtktmb elemeit is.

    Tovbbi egy dimenzis tmbmetdusok Hivatkozs: tmbnv.metdusnv(argumentumok)

    All(AddressOf prediktumfv) A tmb sszes eleme rendelkezik-e a prediktumfggvny ltal meghatrozott tulajdonsggal (True/False). Any(AddressOf prediktumfv) Van-e olyan tmbelem, amely rendelkezik a prediktumfggvny ltal meghatrozott tulajdonsggal (True/False). Average([AddressOf transzformcisfv]) A (transzformcis fggvny ltal mdostott) tmbelemek tlaga. Concat(tmb2) Visszatrsi rtke a tmbhz hozzfztt tmb2, mint felsorol (IEnumerable) objektum. Contains(rtk[, komparlfv]) A tmb tartalmazza-e a megadott rtket (True/False). Count([prediktumfv]) A prediktumfggvnynek megfelel tmbelemek szma (alaprtelmezs: a tmbelemek szma). Distinct() Felsorol (IEnumerable) objektum, amely az egymstl klnbz elemeket tartalmazza. Except(tmb2) Felsorol (IEnumerable) objektum, amely a tmb azon, egymstl klnbz elemeit tartalmazza, melyek nincsenek benne a

    tmb2-ben.

    Intersect(tm2) Felsorol (IEnumerable) objektum, amely a kt tmb kzs elemeit tartalmazza (halmazfelsorolsknt). Max([AddressOf transzformcisfv]), Min([AddressOf transzformcisfv])

    A (transzformcis fggvny ltal mdostott) tmbelemek maximuma, minimuma.

    Sum([AddressOf transzformcisfv]) A (transzformcis fggvny ltal mdostott) tmbelemek sszege. Take(Db) A tmb els Db szm elemt tartalmaz felsorol (IEnumerable) objektum. TakeWhile(AddressOf prediktumfv) Azon tmbelemek sszefgg sorozat a tmb elejtl kezdve, melyek megfelelnek a prediktumfggvnynek (IEnumerable objek-

    tum). ToList() Visszatrsi rtke a tmbelemekbl ll listaobjektum. Union(tmb2) A kt tmb unijt tartalmaz felsorol (IEnumerable) objektum (halmazfelsorols). Where(AddressOf prediktumfv) A prediktumfggvnynek megfelel tmbelemeket tartalmaz felsorl (IEnumerable) objektum.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 29

    Megjegyzs: A Visual Basicben a sorozatok5 (tmb, lista stb.) elemeire vonatkoz tbb metdus gynevezett felsorol objektumot (pontosabban interfszt) eredmnyez. A felsorol objektumot a Dim Vltoznv As IEnumerable([Of tpus]) utastssal deklarljuk, s a meghvott metdussal hozzuk ltre, pldul: Felsorols = Tmb.Distinct(). A metdus eredmnyt kzvetlenl is talakthatjuk a megfelel adatszerkezetre: Tmb2 = Tmb.Distinct().ToArray() Fggvnyparamterek a tmbmetdusoknl A fggvnyparamterekkel rendelkez tmbmetdusok a tmb elemeit egyesvel tadjk a fggvnyparamternek, majd a visszatrsi rtket hasznljk fel a vgeredmny meghatrozshoz. Prediktumfggvnyek Visszatrsi rtkk True vagy False.

    Function fggvnynv(paramter As tmbelemtpus) As Boolean

    End Function

    Transzformcis fggvnyek A tmbelembl kpezett rtkkel trnek vissza.

    Function fggvnynv(paramter As tmbelemtpus) As tpus

    End Function

    Szelektorfggvnyek A transzformcis fggvnyt szoks szelektorfggvnynek nevezni, ha egy struktra (rekord) egy mezjt adja vissza:

    Function fggvnynv(paramter As struktratpus) As meztpus

    End Function A szelektorfggvnyt ltalban akkor alkalmazzuk, ha egy tmb struktra tpus elemeket tartalmaz, de a tmbmetdusnak a sturktra egy mezjre van szksge. Megjegyzs: mivel a fggvnyek alaprtelmezs szerint Public hozzfrsek, ezrt a struktrt, illetve a struktra defincijt tartalmaz modult is lssuk el Public hozzfrs-sel, vagy pedig a fggvnynek rjunk el Private hozzfrsi mdot! Hasonlt (komparl) fggvnyek A tmb kt elemt hasonltjk ssze. Kt paramternek tpusa megegyezik a tmbelemek tpusval:

    Function fggvnynv(param1 As tmbelemtpus, param2 As tmbelemtpus) As Integer

    End Function A komparl fggvny visszatrsi rtke: < 0 ha param1 < param2 = 0 ha param1 = param2 > 0 ha param1 > param2

    5 Pontosabban kollekcik.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 30

    Struktrk (rekordok) A struktrt projekt- vagy modulszinten kell definilni. A definci szintaxisa:

    Structure nv mezdeklarcik [metdusdeklarcik] End Structure

    Mezdeklarcik: Const, Dim (tovbb: Enum, Events) utastsok Metdusdeklarcik: Sub End Sub, Function End Function (tovbb: Operator, Property). A metdusok kztt megadhatunk konstruktort is. A struktra defincijban nem adhatunk kezdrtket a mezknek (a megosztott tulajdonsgok kivtelvel). Tmb tpus mezk esetn pldul a deklarciban nem adhatjuk meg a tmb mrett. Ezt a struktra-tpus vltoz deklarcija utn kell megtennnk (Redim vagy New). A struktra-tpus vltozk deklarlsa magba foglalja a konstruktor meghvst: A Dim vltoznv As struktranv egyenrtk a Dim vltoznv As struktranv = New konstruktor() utastssal A struktra-tpus vltozk mezinek kezdrtkt megadhatjuk kzvetlenl rtkadssal, vagy ltrehozsakor a With opertorral:

    Dim vltoznv As struktranv vltoznv = New struktranv With {.meznv1 = rtk1, .meznv2 = rt2k, } vagy sszevonva: Dim vltoznv As New struktranv With {.meznv1 = rtk1, .meznv2 = rt2k, }

    A struktra tagjaira (mezk, metdusok) a struktra-tpus vltoz nevvel minstve hivatkozunk: vltoznv.tagnv[(argumetumok)]

    A struktra tpus vltozk rtk-tpusak. gy a vltoz2 = vltoz1 rtkads tmsolja az 1. vltoz adattagjainak rtkt a 2. vltoz adattagjaiba (a hivatkozs-tpus tagok, pldul tmbk esetn termszetesen csak a hivatkozst). A struktrknl nincsen rklds. Megjegyzs: rekordokat struktrkban trolhatunk. A struktrk mezit szoks adattagoknak is nevezni. Halmazok A halmaz olyan kollekci, amely nem tartalmaz ismtld elemeket s nem rtelmezzk az elemek sorrendjt. Nvtr: System.Collections.Generic Halmaz deklarlsa s ltrehozsa:

    Dim vltoznv As Hashset(Of tpus) vltoznv = New HashSet(Of tpus)[(kollekci)]

    ahol a kollekci helyre tmbt, listt vagy brmilyen, felsorol (IEnumerable) objektumot rhatunk. Megadsa esetn a program tmsolja a halmazba a kollekci elemeit, kihagyva az ismtldseket. A kollekcit felhasznlhatjuk a halmaz inicializlsra. A Visual Basic 2010-es vltozatban a ltrehozs sorn megadhatjuk a halmaz elemeit:

    Dim vltoznv As HashSet(Of tpus) vltoznv = New HashSet(Of tpus) From {kezdrtkek felsorolsa, vesszvel elvlasztva}

    Megjegyzs: ha sszevonjuk a deklarlst s a ltrehozst, akkor nem hasznlhatjuk a kibvtett metdusokat (All, Any, Max stb.). A halmaz elemeire a feltlts sorrendjben indexkkel is hivatkozhatunk: vltoznv.ElementAt(index) vagy: vltoznv(index). Az indexels 0-val kezddik.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 31

    A halmazobjektum tulajdonsgai s metdusai A tulajdonsgok, metdusok futsidejre vonatkozan ltalban lsd a Visual Basic sgjt! A halmazmveleteket az els operandus metdusaival vgezzk, melyek argumentuma a msodik operandus (halmaz). A mvelet eredmnye az els operandusba kerl, pld-ul az A.UnionWith(B) metdushvs eredmnyeknt A = A B lesz.

    Count A halmazelemek szma.

    Add(elem) Hozzadja az elemet a halmazhoz. Visszatrsi rtke True, ha megtrtnt a hozzads (azaz az elem mg nem szerepelt a halmaz-ban), egybknt pedig False.

    Clear() Trli a halmaz elemeit. A memriban fenntartott helyet a TrimExcess metdussal cskkenthetjk. Contains(elem) True, ha a halmaz tartalmazza a megadott elemet, egybknt pedig False. A futsid fggetlen az elemszmtl! CopyTo(tmb[, index[, darab]]) tmsolja a halmaz darab szm elemt a tmb-be, a tmb megadott indextl kezdve. Alaprtelmezs a halmaz sszes eleme a 0

    indextl (a tmb elejtl) kezdve. ExceptWith(halmaz2) A halmaz2 elemeit kivonja a halmazbl. A mvelet mdostja a halmazt (ide kerl az eredmny). IntersectWith(halmaz2) Meghatrozza a halmaz metszett a halmaz2 halmazzal. A mvelet mdostja a halmazt (ide kerl az eredmny). IsProperSubsetOf(halmaz2) True, ha a halmaz valdi rszhalmaza a halmaz2-nek. IsProperSupersetOf(halmaz2) True, ha a halmaz2 valdi rszhalmaza a halmaznak. IsSubsetOf(halmaz2) True, ha a halmaz rszhalmaza a halmaz2-nek. IsSupersetOf(halmaz2) True, ha a halmaz2 valdi rszhalmaza a halmaznak. Remove(elem) Trli az elemet a halmazbl. Visszatrsi rtke True, ha megtrtnt a trls (azaz az elem szerepelt a halmazban), egybknt

    pedig False.

    SetEquals(halmaz2) True, ha a halmaz s a halmaz2 ugyanazokbl az elemekbl llnak, egybknt pedig False. Futsid: az elemek szmval arnyos. SymmetricExceptWith(halmaz2) A halmaz s a halmaz2 szimmetrikus klnbsge (uni metszet). A mvelet mdostja a halmazt (ide kerl az eredmny). ToArray() Visszatrsi rtke a halmaz elemeibl kpezett tmb. TrimExcess() Az elemek szmnak megfelel mrtkben mdostja a memriafoglals mrett. UnionWith(halmaz2) Meghatrozza a halmaz unijt a halmaz2 halmazzal. A mvelet mdostja a halmazt (ide kerl az eredmny).

    Az ExceptWith, IntersectWith, IsProperSubsetOf, IsProperSupersetOf, IsSubsetOf, IsSupersetOf, SetEquals, SymmetricExceptWith metdusok argumentuma halmaz helyett brmely ms, felsorol objektum is lehet. A metdusok nem veszi figyelembe az argumentumknt megadott objektumban az elemek ismtldst, illetve sorrendjt. A kvetkez metdusok ismertetse a tmbknl tallhat: All, Any, Average, Max, Min, Reverse, Sum, Take, TakeWhile, Where.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 32

    Rendezett halmazok (kollekcik) Rendezett halmazokban olyan sorozatokat (kollekcikat) trolhatunk, melyeknek nincsenek egyforma elemeik. Az elemek hozzadskor rendezve kerlnek a halmazba. A ren-dezett halmazok a mveletek szempontjbl halmazknt viselkednek, de elemeiket rendezve troljk, s rendezve rjk el (indexels, listzs). Nvtr: System.Collections.Generic Rendezett halmaz deklarlsa s ltrehozsa:

    Dim vltoznv As SortedSet(Of tpus) vltoznv = New SortedSet(Of tpus)[(kollekci)]

    ahol a kollekci helyre tmbt, listt vagy brmilyen, felsorol (IEnumerable) objektumot rhatunk. Megadsa esetn a program rendezett sorozatknt tmsolja a halmazba a kollekci elemeit, kihagyva az ismtldseket. A kollekcit felhasznlhatjuk a halmaz inicializlsra. A Visual Basic 2010-es vltozatban a ltrehozs sorn megadhatjuk a halmaz elemeit:

    Dim vltoznv As SortedSet(Of tpus) vltoznv = New SortedSet(Of tpus) From {kezdrtkek felsorolsa, vesszvel elvlasztva}

    Megjegyzs: ha sszevonjuk a deklarlst s a ltrehozst, akkor nem hasznlhatjuk a kibvtett metdusokat (All, Any, Max stb.). A rendezett halmaz elemeire indexkkel is hivatkozhatunk: vltoznv.ElementAt(index) vagy: vltoznv(index). Az indexels 0-val kezddik. A rendezett halmazok tulajdonsgai s metdusai megegyeznek a halmaz objektumosztly fent felsorolt tagjaival. Halmazmveletek megvalstsa tmbkkel Esetenknt szksg lehet tmbk (listk stb.) halmazknt val kezelsre. A tmbkkel halmazmveleteket vgezhetnk. A mveletek vgzse eltt clszer a tmbbl halmaz-felsorolst kszteni, de a legtbb halmazmvelet eredmnye szintn halmazfelsorols lesz. Halmazfelsorols ksztse Halmazfelsorols: olyan sorozat (tmb, lista stb.), amely nem tartalmaz egyforma elemeket. Halmazfelsorols ltrehozsa: Tmb = Tmb.Distinct().ToArray() Tmbk kezelse halmazknt Az elemek szma: Tmb.Count() A megadott Elem benne van-e a halmazban (True/False): Tmb.Contains(Elem) Halmazmveletek halmazknt kezelt tmbkkel A halmazmveleteket az egyik operandus metdusval vgezzk el, melynek argumentuma a mvelet msik operandusa. A mveletek eredmnye felsorol (IEnumerable) objektum, melyet pldul a ToArray metdussal alakthatunk vissza tmbb. Uni: Unihalmaz = Halmaz1.Union(Halmaz2).ToArray() Metszet: Metszethalmaz = Halmaz1.Intersect(Halmaz2).ToArray() Klnbsg (Halmaz1 Halmaz2): Klnbsghalmaz = Halmaz1.Except(Halmaz2).ToArray() Rszhalmazok, halmazok egyenlsge A rszhalmaz vizsglatt pldul tmbmetdusokkal (All, Any) vagy ciklussal vgezhetjk el (eldnts), illetve halmazmveletekre vezethetjk vissza.

    Vizsglat halmazmveletekkel: H1 H2 akkor s csak akkor, ha: H1.Count = H1.Intersect(H2).Count. H1 H2 (valdi rszhalmaz) akkor s csak akkor, ha H1.Count < H2.Count s H1 rszhalmaza H2-nek (lsd elbb).

    Kt halmazfelsorols egyenlsgt pldul tmbmetdusokkal (All, Any) vagy ciklussal vizsglhatjuk meg (eldnts), illetve halmazmveletekre vezethetjk vissza. Vizsglat halmazmvelettel:

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 33

    H1 = H2 akkor s csak akkor, ha: H1.Count = H2.Count s H1 rszhalmaza H2-nek (lsd elbb) Megjegyzs: az ellenrzshez nem kell visszaalaktani a felsorol (IEnumerable) objektumot tmbb. Listk A Visual Basic List objektumosztlya a dinamikus tmbket reprezentlja. Objektumaival hatkonyan kezelhetnk tmbket, fleg akkor, ha szksg van a tmbmret mdos-tsra. A klasszikus rtelemben vett listkat (lncolt lista, LinkedList) a tanknyv 2. ktetben mutatjuk be. Nvtr: System.Collections.Generic A listk objektumok. Lista deklarlsa s ltrehozsa:

    Dim vltoznv As List(Of tpus) vltoznv = New List(Of tpus)

    A Visual Basic 2008-as vltozatban kzvetlenl nem inicializlhatjuk a listaelemeket. Szksg esetn inicializljunk egy tmbt, majd a ToList metdussal alaktsuk listv. A Visual Basic 2010-es vltozatban a ltrehozs sorn megadhatjuk a listaelemek kezdrtkt:

    Dim vltoznv As List(Of tpus) vltoznv = New List(Of tpus) From {kezdrtkek felsorolsa, vesszvel elvlasztva}

    Megjegyzs: ha sszevonjuk a deklarlst s a ltrehozst, akkor nem hasznlhatjuk a kibvtett metdusokat (All, Any, Max stb.). Hivatkozs a lista egy elemre: vltoznv.Item(index) vagy: vltoznv(index). Az indexels 0-val kezddik. A listaelemek kzvetlenl mdosthatk s lekrdezhetk: rtk = vltoznv.Item(index); vltoznv.Item(index) = rtk. A listaelemek elrsi ideje fggetlen a lista elemsz-mtl! A tulajdonsgok, metdusok futsidejre vonatkozan ltalban lsd a Visual Basic sgjt! A listaobjektum tulajdonsgai s metdusai

    Capacity A lista kapacitsa, melyen bell nem szksges a lefoglalt memriaterlet bvtse j elem hozzadsa esetn. (A memriaterlet bvtse automatikusan trtnik.)

    Count A listaelemek szma.

    Item(index) Az index index listaelem. Add(elem) Hozzfzi az elem-et a lista vghez. Clear() Trli a lista elemeit (Count = 0). Futsid: egyenesen arnyos az elemszmmal. Contains(elem) Tartalmazza-e a lista a megadott elemet (True/False). Insert(index, elem) Beilleszti az elem-et az index helyre. Futsid: egyenesen arnyos az elemszmmal. Remove(elem) Trli az elem els elfordulst a listbl. Futsid: egyenesen arnyos az elemszmmal. RemoveAll(AddressOf prediktumfv) A prediktumfggvny ltal meghatrozott elemek trlse. Futsid: egyenesen arnyos az elemszmmal. RemoveAt(index) A megadott index elem trlse. Futsid: egyenesen arnyos az elemszmmal. ToArray() Visszatrsi rtke a listaelemekbl kpezett tmb.

    A kvetkez metdusok ismertetse a tmbknl tallhat: All, Any, Average, BinarySearch (rendezett listban), Distinct, Except, Exists, Find, FindAll, FindIndex, FindLast, FindLastIndex, ForEach, IndexOf, Intersect, LastIndexOf, Max, Min, Reverse, Sort, Sum, Take, TakeWhile, Union, Where. A felsorol (IEnumerable) objektumok a ToList() metdussal alakthatk listv.

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 34

    A grafikus felhasznli fellet kezelse Vezrlelemek Nvtr: System.Windows.Forms Hivatkozs az objektumpldnyra az osztlydefincin bell: Me

    A legtbb objektumnl elfordul tulajdonsgok (a lehetsges rtkeket lsd a Properties munkaablakban) Name az objektum azonostja Anchor, Dock az objektum helyzetnek/mretnek rgztse a

    szl vezrlelemhez kpest AutoSize automatikus mretezs (Label!) engedlyezse BackColor httrszn BackgroundImage httrkp (elrsi t) BorderStyle a szegly tpusa Cursor a kurzor ikonja (lsd az intelligens sgt) Enabled engedlyezett-e a mkdse Font a szveg tulajdonsgai Forecolor betszn Image a vezrlelemen megjelen kp

    Left, Top a bal fels sarok pozcija a magbafoglal objektumhoz viszonytva Opacity tltszatlansg (szzalkban) TabIndex bejrsi sorrend (tabultorral) TabStop rszt vesz-e a tabultorral trtn bejrsban Tag tetszleges rtk trolsra fenntartott tulajdonsg (pldul felhasznlhat a vezrlelem azonostsra) Text a megjelen szveg TextAlign a szveg igaztsa Visible lthat-e az objektum Width, Height szlessg s magassg pixelben

    Megjegyzs: Az Anchor s a Dock tulajdonsgok kzl csak az egyik adhat meg (az utoljra vgzett mdosts lesz rvnyes). Futsidben egyszerre tbb irny logikai mve-letekkel llthat be, pldul: AnchorStyles.Bottom Or AnchorStyles.Right.

    A vezrlelemeknl elfordul legfontosabb metdusok BringToFront() elrehozza az elemet Focus() a fkusz tvtele Hide() elrejti az elemet Invalidate() rvnytelenti az elem megjelenst (jrarajzolst von maga utn), szinkron

    mdon trtn rajzolshoz hvjuk meg utna az Update metdust!

    Refresh() rvnytelenti az elem megjelentst, kzvetlenl jraraj-zolja az elemet s a gyermekelemeket

    SendToBack() htrateszi az elemet Show() megjelenti az elemet

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 35

    A legfontosabb objektumok A gyakran elfordul tulajdonsgokat lsd fent!

    Osztly Tovbbi tulajdonsgok, metdusok Ablak (rlap) Form AcceptButton az Enter lenyomsa a kijellt gombra kattintssal egyenrtk

    AutoScroll grgetsvok automatikus megjelentse (szksg esetn) CancelButton az Esc lenyomsa a kijellt gombra kattintssal egyenrtk ControlBox a rendszermen megjelentse FormBorderStyle a szegly tpusa Icon a program ikonja MaximizeBox, MinimizeBox mretezgombok megjelentse MaximumSize.Width, Height az ablak maximlis mrete MinimumSize.Width, Height az ablak minimlis mrete ShowInTaskbar megjelenjen-e a tlcn a program StartPosition a megjelents helye a kpernyn Text a cmsor szvege WindowState megjelents mdja az ablak indtsnl Close() az ablak bezrsa Controls.Add(vezrlelem-objektum) a vezrlelem hozzadsa a Controls kollekcihoz (megjelenik az ablakban) a vezrlelemet elszr ltre kell hozni!

    Cmke Label TextAlign a szveg igaztsa

    Kpdoboz PictureBox Image egy Image-objektum hozzrendelse a kpdobozhoz (lsd az Image objektumosztly lersnl). ImageLocation a kp elrsi tja (megadsakor betlti a kpet). Tervezsidej megadsakor ne tegyk idzjelbe az elrsi utat (a

    Properties munkaablakban)! SizeMode mretezs (Normal: a kp vgsa a kpdoboznak megfelelen, StretchImage: a kp torztsa a kpdoboznak megfele-

    len, AutoSize: a kpdoboz mretezse a kp mretnek megfelelen, CenterImage: ugyanaz mint a Normal, csak k-zprl vg, Zoom: a kp arnyos mretezse a kpdoboznak megfelelen).

    CreateGraphics() grafikaobjektum ltrehozsa s hozzrendelse a kpdobozhoz Load(elrsi t) betlti s megjelenti a megadott kpet

    Magyarzdoboz ToolTip ToolTipTitle a doboz cmsornak szvege SetToolTip(vezrlelem, szveg): hozzrendeli a dobozt a megadott vezrlelemhez a megadott szveggel.

    Parancsgomb Button Billentyparancs hozzrendelse a parancsgombhoz: a Text tulajdonsgban egy karakter el & jelet runk (elrs: Alt + karakter).

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 36

    Szvegdoboz TextBox CharacterCasing kis- vagy nagybetk jelenjenek-e meg (Normal, Upper, Lower) Lines tbbsoros szvegdoboz esetn a sorokat tartalmaz sztringtmb MaxLength a berhat szveg maximlis hossza Multiline engedlyezett-e tbb sor bevitele PasswordChar a bert karakterek helyett a megadott karakterek megjelentse ReadOnly csak olvashat-e ScrollBars grdtsv tpusa tbbsoros szvegdoboznl TextAlign a szveg igaztsa WordWrap automatikus sortrs engedlyezse (tbbsoros szvegdoboznl) SelectAll() a tartalom kijellse

    Megjegyzs: ha kpet rendelnk egy vezrlelemhez (Image tulajdonsg), akkor a Select Resource ablakban: Local Resource: csak az adott vezrlelemhez tartozik a kp. Project Resource File: a kpet felveszi a projekt erforrsai kz.

    Vezrlelemek futsidej ltrehozsa, trlse Egy vezrlelem (belertve az rlapot is) Controls kollekcija (gyjtemnye, objektumokat tartalmaz tmbje) tartalmazza a hozz tartoz vezrlelemeket. A kollekci elemeit indexelhetjk (0-tl kezdve), vagy a nevkkel hivatkozhatunk rjuk. Ltrehozs, megjelents 1. A vezrlelem-objektum ltrehozsa:

    Dim vezrlelem-objektum As vezrlelem-tpus vezrlelem-objektum = New vezrlelem-tpus

    2. A tulajdonsgok belltsa 3. Hozzads a szlobjektum (pldul Form1) Controls kollekcijhoz:

    szlobjektum.Controls.Add(vezrlelem-objektum) A hozzads kvetkeztben meg is jelenik a vezrlelem a (lthat) ablakban.

    4. Esemnykezel eljrs hozzrendelse a vezrlelemhez: AddHandler vezrlelem-objektum.esemny, AddressOf esemnykezel eljrs neve

    Megjegyzs: ha ciklussal hozzuk ltre a vezrlelemeket, akkor gyeljnk arra, hogy a New opertor a cikluson bell helyezkedjen el! Az esemnykezel eljrsban a sender paramter adja meg az esemnyhez kapcsold vezrlelem-objektumot. Trls 1. Az esemnykezel eljrs hozzrendelsnek megszntetse:

    RemoveHandler vezrlelem-objektum.esemny, AddressOf esemnykezel eljrs neve 2. A vezrlelem trlse a Controls kollekcibl:

    szlobjektum.Controls.Remove(vezrlelem-objektum) 3. Az erforrsok felszabadtsa:

    vezrlelem-objektum.Dispose()

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 37

    A Controls kollekci tulajdonsgai s metdusai Nvtr: System.Windows.Forms.Form A Controls kollekci az rlapobjektumok egy tulajdonsga. Az rlap vezrlelemeit tartalmazza. Ciklusokkal dolgozhat fel. Hivatkozs: szlobjektum.Controls.tulajdonsg, szlobjektum.Controls.metdus(argumentum) Argumentumok Vezrlelem: a vltoz neve, index: a vezrlelem indexe a kollekciban, azonost: a vezrlelem azonostja sztringknt megadva

    Count A vezrlelemek szma a kollekciban.

    Item(index), Item(azonost) Hivatkozs a kollekci egy elemre index, illetve azonost alapjn. az Item kulcssz elhagyhat: Controls(index), Controls(azonost)

    Add(vezrlelem) Hozzadja a vezrlelem-et a kollekcihoz (a vgre kerl). Contains(vezrlelem), ContainsKey(azonost) Tartalmazza-e a vezrlelem-et (True/False). IndexOf(vezrlelem), IndexOf(azonost) Megadja a vezrlelem indext (1, ha nincs benne a kollekciban). Remove(vezrlelem), RemoveAt(index), RemoveByKey(azonost) Trli a megadott vezrlelemet a kollekcibl.

    Esemnyek

    Esemny Az esemnyobjektum legfontosabb tulajdonsgai Az ablak betltse (megjelentse) Load Az ablak bezrsnak kezdemnyezse FormClosing Megszakthat az e.Cancel = True belltsval.

    CloseReason: a bezrs oka (CloseReason tpus felsorols) Az ablak bezrsnak befejezse FormClosed CloseReason: a bezrs oka (CloseReason tpus felsorols) Az ablak mretnek megvltozsa SizeChanged A Size tulajdonsg mdostsakor kvetkezik be. Billenty lenyomsa s felengedse (bet, szm, rsjel, Ctrl, Enter)

    KeyPress KeyChar: a bert karakter (karakter tpus, mdosthat!) az, AZ, 09, rsjelek, ChrW(Keys.Control), ChrW(Keys.Enter)

    Billenty lenyomsa, felengedse KeyDown, KeyUp Alt, Control, Shift: lenyomtk-e a vezrlbillentyt KeyCode: a lenyomott billenty Keys-kdja

    Kattints az egrrel vagy Enter a fkuszban lv parancsgombon

    Click, MouseClick Button: melyik egrgombbal trtnt a kattints (MouseButtons tpus felsorols) Clicks: a kattintsok szma Delta: +120 a grg elre-, 120 a grg htrafel trtn forgatsnl X, Y: a kattints pozcija Az egresemnyek sorrendje kattintskor: MouseDown, Click, MouseClick, MouseUp, MouseDown, DoubleClick, MouseDoubleClick, MouseUp.

    Dupla kattints az egrrel DoubleClick, MouseDoubleClick

    Egrgomb lenyomsa, felengedse MouseDown, MouseUp

    Egrgrg mozgatsa MouseWheel

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 38

    Az egr belp egy vezrlelem terletre MouseEnter Az egresemnyek sorrendje mozgatskor: MouseEnter, MouseMove, MouseHover, MouseLeave. Az egr mozgatsa MouseMove

    Az egr egy vezrlelem terletn tartzkodik MouseHover

    Az egr elhagyja egy vezrlelem terlett MouseLeave Megvltozik a szvegdoboz tartalma TextChanged, MultiLineChanged

    Megjegyzs: a legtbb esemnyobjektum rendelkezik a Handled tulajdonsggal, melynek True-ra lltsa trli az esemnyt. A MessageBox objektumosztly Nvtr: System.Windows.Forms. zenetablak megjelentshez a MessageBox.Show osztlymetdust hasznljuk: MessageBox.Show(zenet[, cmsor[, gombok[, ikon[, alapgomb[, belltsok]]]]]) Az argumentumok jelentse:

    zenet: az ablakban megjelen zenet szvege cmsor: a cmsor szvege gombok: az ablakban megjelen gombok, MessageBoxButtons tpusknt megadva ikon: az ablakban megjelen ikon, MessageBoxIcon tpuknt megadva alapgomb: alaprtelmezett gomb, az Enter lenyomsa a rkattintssal egyenrtk, MessageBoxDefaultButton tpusknt megadva belltsok: tovbbi belltsok, MessageBoxOptions tpusknt megadva

    A fggvny visszatrsi rtke DialogResult tpus felsorols (a ToString metdussal a feliratot angol nyelv sztringknt kapjuk meg). A MessageBox argumentumainl elfordul felsorols tpusok:

    MesageBoxButtons felsorols: OK, OKCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel MessageBoxIcon: None, Hand, Question, Exclamation, Asterisk, Stop, Error, Warning, Information MessageBoxDefaultButton: Button1, Button2, Button3 DialogResult: a kivlasztott parancsgombot jelz felsorols (None, OK, Cancel, Abort, Retry, Ignore, Yes, No)

    zenetet az MsgBox fggvnnyel is megjelenthetnk a kpernyn (nvtr: Microsoft.VisualBasic): MsgBox(zenet[, [stlus][, cmsor]]) A stlus a megjelen gombokat s ikont hatrozza meg. A stlust az MsgBoxStyle felsorols elemeinek sszegeknt llthatjuk el:

    OKOnly (0), OKCancel (1), AbortRetryIgnore (2), YesNoCancel (3), YesNo (4), RetryCancel (5), Critical (16), Question (32), Exclamation (48), Information (64), DefaultButton1 (0), DefaultButton2 (256), DefaultButton3 (512)

    A fggvny visszatrsi rtke MsgBoxResult felsorols-tpus: OK (1), Cancel (2), Abort (3), Retry (4), Ignore (5), Yes (6), No (7)

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 39

    A System.Windows.Forms nvtr Timer objektumosztlya Nvtr: System.Windows.Forms A konsturktor meghvsa: New Timer(). Az eszkztrbl is elhelyezhet az rlapon. Hivatkozs: vltoznv.tulajdonsgnv, vltoznv.metdusnv()

    Interval A Tick esemnyek gyakorisga ezredmsodpercben

    Tag Tetszleges sztring trolsra szolgl tulajdonsg. Start() Elindtja a timert (a Tick esemnyek ltrehozst). Stop() Lelltja a timert (a Tick esemnyek ltrehozst).

    A program(szl) futst a System.Threading.Thread.Sleep(vrakozs) metdussal is felfggeszthetjk, ahol az argumentum a vrakozs idejt adja meg ezredmsodpercben. Megjegyzs: konzolalkalmazsban a System.Windows.Forms.Timer helyett hasznljuk a System.Threading.Timer osztly objektumait!

    Fjlkezels Az osztlyok s objektumok hasznlatnl gyeljnk a hozzfrsi jogokra! Szvegfjlok kezelse Az aktulis mappa s a felhasznl Dokumentumok mappja A nem mentett projektnl az aktulis mappa a c:\Documents and Settings\felhasznlnv\Local Settings\Application Data\Temporary Projects\projektnv\bin\Debug mappa. A mentett projektnl hibakeres zemmdban az aktulis mappa a projekt mappjban a bin\Debug mappa. Az aktulis felhasznl Dokumentumok mappja: "My.Computer.FileSystem.SpecialDirectories.MyDocuments" Olvass szvegfjlbl 1. IO.Streamreader tpus vltoz deklarlsa:

    Dim vltoznv As IO.StreamReader 2. IO.Streamreader objektum ltrehozsa:

    vltoznv = New IO.StreamReader(elrsit[, kdols]) elrsit: a fjl relatv vagy abszolt elrsi tja sztringknt megadva kdols: a System.Text.Encoding osztly osztlytulajdonsga, pldul: System.Text.Encoding.ASCII, Default, Unicode, UTF8, WindowsCodePage 3. A fjl olvassa metdusokkal 4. A fjl lezrsa:

    vltoznv.Close() 5. Az objektumvltoz felszabadtsa:

    vltoznv.Dispose()

  • Juhsz Tibor Kiss Zsolt: Programozsi sszefoglal. Kiegszts a Programozsi ismeretek tanknyvhz (Mszaki Knyvkiad, 2011) 40

    Az IO.StreamReader tpus objektum tulajdonsgai s metdusai Nvtr: System.IO A konstruktor meghvsa: New StreamReader(elrsit[, kdols])

    Az argumentumok jelentst lsd fent. EndOfStream Elrtk-e a stream vgt (True/False). Close() Lezrja a stream-et. Dispose() Felszabadtja a stream-hez kapcsold erforrsokat. Peek() Beolvassa a kvetkez karakter kdjt, de nem mdostja az aktulis pozcit.

    Visszatrsi rtke 1, ha elrtk a stream vgt.

    Read() Beolvassa a kvetkez karaktert, s megadja a kdjt. Visszatrsi rtke 1, ha elrtk a stream vgt. Read(karaktertmb, kezdindex, darab) Beolvas legfeljebb darab szm karaktert, melyet a kezdindex-tl kezdve ber a karaktertmb-be. Visszatrsi rtke a beolvasott

    karakterek szma (0 rtk darab). ReadLine() Beolvas egy sort a stream-bl. Visszatrsi rtke Nothing, ha elrtk a stream vgt. ReadToEnd() Beolvassa a stream htralv rszt. Visszatrsi rtke res sztring (""), ha elrtk a stream vgt.

    Megjegyzs: egy vltoz Nothing rtkt az Is Nothing, illetve IsNot Nothing kifejezsekkel ellenrizhetjk (True/False). A fjl tartalmt elolvass nlkl a kvetkez ciklussal olvashatjuk be (az automatikus tpuskonverzi miatt a 1 a logikai