Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

3. diel - Premenné a typový systém

Z minulej lekcie, Visual Studio a prvý konzolová aplikácie , už vieme pracovať s Visual Studiom a vytvoriť konzolovú aplikáciu. V dnešnom Visual Basic .NET tutoriálu sa pozrieme na tzv. Typový systém, ukážeme si základné dátové typy a prácu s premennými. Výsledkom budú 3 jednoduché programy vrátane kalkulačky.

Premenné

Než začneme riešiť dátové typy, poďme sa zhodnúť na tom, čo je to premenná (programátori mi teraz iste odpustí zbytočné vysvetľovanie). Určite poznáte z matematiky premennou (napr. x), do ktorej sme si mohli uložiť nejakú hodnotu, najčastejšie číslo. Premenná je v informatike úplne to isté, je to miesto v pamäti počítača, kam si môžeme uložiť nejaké dáta (meno používateľa, aktuálny čas alebo databázu článkov). Toto miesto má podľa typu premennej tiež vyhradenú určitú veľkosť, ktorú premenná nesmie presiahnuť (napr. Číslo nesmie byť väčšie ako 2 147 483 647).

Premenná má vždy nejaký dátový typ, môže to byť číslo, znak, text a podobne, záleží na tom, na čo ju chceme používať. Väčšinou musíme pred prácou s premennou túto premennú najskôr tzv. Deklarovať, či povedať jazyku ako sa bude volať a akého dátového typu bude (aký v nej bude obsah). Jazyk ju v pamäti založia a až potom s ňou môžeme pracovať. Podľa dátového typu premennej si ju jazyk dokáže z pamäti načítať, modifikovať, prípadne ju v pamäti založiť. O každom dátovom typu jazyk vie, koľko v pamäti zaberá miesta a ako s týmto kusom pamäte pracovať.

Typový systém

Existujú dva základné typové systémy: statický a dynamický.

Dynamický typový systém nás plne odtieňuje od toho, že premenná má vôbec nejaký dátový typ. Ona ho samozrejme vnútorne má, ale jazyk to nedáva najavo. Dynamické typovanie ide mnohokrát tak ďaleko, že premenné nemusíme ani deklarovať, akonáhle do nejakej premennej niečo uložíme a jazyk zistí, že nebola nikdy deklarovaná, sám ju založí. Do tej istej premennej môžeme ukladať text, potom objekt používateľa a potom desatinné číslo. Jazyk sa s tým sám pobije a vnútorne automaticky mení dátový typ. V týchto jazykoch ide vývoj rýchlejšie vďaka menšiemu množstvo kódu, zástupcovia sú napr. PHP alebo Ruby.

Statický typový systém naopak striktne vyžaduje definovať typ premennej a tento typ je ďalej nemenný. Akonáhle premennú raz deklarujeme, nie je možné jej dátový typ zmeniť. Akonáhle sa do textového reťazca pokúsime uložiť objekt užívateľ, dostaneme vynadané.

VB.NET je staticky typizovanom jazyk, všetky premenné musíme najprv deklarovať s ich dátovým typom. Nevýhodou je, že vďaka deklaráciám je zdrojový kód trochu objemnejší a vývoj pomalší. Obrovskou výhodou však je, že nám kompiler pred spustením skontroluje, či všetky dátové typy sedia. Dynamické typovanie síce vyzerá ako výhodné, ale zdrojový kód nie je možné automaticky kontrolovať a keď niekde očakávame objekt používateľ a príde nám tam namiesto toho desatinné číslo, odhalí sa chyba až za behu a interpret program zhodí. Naopak VB.NET nám nedovolí program ani skompilovať a na chybu nás upozorní (to je ďalšia výhoda kompilácia).

VB.NET má však tzv. Automatické pretypovanie, niektoré dátové typy zvládne pretypovať sám. Predstavte si, že máme číslo 5 a chceme ho vypísať do konzoly, lenže konzoly predsa nechce číslo, ona chce text. VB.NET je natoľko šikovný, že si zvládne previesť 5 na "5" a to ešte len vypíše do konzoly. Rovnako tak zvládne previesť desatinné číslo na normálne číslo. Neskôr sa dozviete, že nakoniec aj ten objekt užívateľ možno s kľudom previesť na text, len to musíte svojím spôsobom nastaviť.

Poďme si teraz niečo naprogramovať, nech si nadobudnuté vedomosti trochu osvojíme, s teóriou budeme pokračovať až nabudúce. Povedzme si teraz tri základné dátové typy:

  • Celé čísla: Integer
  • Desatinné čísla: Single
  • Textový reťazec: String

Program Vyhlasujúca premennú

Keďže budeme robiť 3 aplikácie, vytvoríme jedno riešenie (solution). Otvorte si VS, vyberte File> New> Project. V templates sa prepnite na: Other project type> Visual Studio Solutions a vyberte šablónu Blank solution, pomenujte ju DruhyProgram. Potvrďte dialóg.

Uvidíte prázdne Visual štúdio. Aby ste mohli vytvoriť aplikácie v riešení, musíte mať zobrazené okno Solution explorer. Zobrazíte ho buď v ponuke View alebo klávesovou skratkou Ctrl + Alt + L. V Solution exploreru kliknite pravým na položku s názvom riešenia a vyberte Add> New project. Dialógové okno New project je veľmi podobné oknu, ktorým ste zakladali svoj prvý program. Vyberte teda Visual Basic a Console application, pomenujte ju VypisPromenne.

Vygeneruje sa vám rovnaký kód ako minule, to sa u konzolových aplikácií nebude meniť. Ako minule i teraz budeme písať do metódy Main(), len doplním, že je to metóda, ktorá sa spúšťa po spustení programu a po dokončení metódy sa ukončí aj aplikácie.

Do metódy Main() napíšte nasledujúci kód:

Dim cislo As Integer
cislo = 56
Console.WriteLine(cislo)
Console.ReadKey()

Prejdeme si to. Prvý riadok nám deklaruje do pamäti premennú, volá sa cislo a má dátový typ Integer. Pre deklaráciu premenné sa používa kľúčové slovo Dim nasledované názvom premennej, dátový typ je dobrovoľný, ak ho vynecháme, do prvého nastavenia premennej bude tento typ Object. Po prvom nastavení premenné sa (ak ešte nebol) definuje aj dátový typ. Je doporučené uvádzať dátový typ už pri deklarácii. Druhý riadok nastavuje premenné hodnotu. Hodnota premennej sa nastavuje tak, že uvedieme názov premennej, operátor rovná sa a hodnotu. V tomto prípade sme do premennej nastavili hodnotu 56. Tretí a štvrtý riadok by vám nemal byť cudzí, všimnite si však, že metóda WriteLine(String) požaduje prvý parameter typu String (textový reťazec), my však programu odovzdávame Integer, VB.NET prevedie hodnotu typu Integer na String automaticky.

Aplikáciu skompilujte a spustite klávesom F5.

Konzolová aplikácia
56

Program papagáj

Vytvorte si nový projekt s názvom Papagáj.

Minulý program bol trochu nudný, skúsme nejako reagovať na vstup od užívateľa. Napíšeme program papagáj, ktorý bude dvakrát opakovať to, čo používateľ napísal. Ešte sme neskúšali z konzoly nič načítavať, ale je to veľmi jednoduché. Slúži na to metóda ReadLine(), ktorá nám vráti textový reťazec z konzoly. Skúsme si do programu papagáj napísať nasledujúci kód:

Console.WriteLine("Ahoj, som virtuálne papagáj Lora, rád opakujem!")
Console.WriteLine("Napíš niečo:")

Dim vstup As String
vstup = Console.ReadLine()

Dim vystup As String
vystup = vstup & ", " & vstup & "!"
Console.WriteLine(vystup)
Console.ReadKey()

To už je trochu zábavnejšia :) Prvé dva riadky sú jasné, ďalej deklarujeme textový reťazec vstup. Do vstup sa priradí hodnota z metódy ReadLine() na konzolu, teda to, čo používateľ zadal. Pre výstup si pre názornosť zakladáme ďalšie premennú typu textový reťazec. Zaujímavé je, ako do vystup priradíme, tam využívame tzv. Konkatenace (spájanie) reťazcov. pomocou operátora `` (napíšete ho pomocou kombinácie klávesov Alt + 38) totiž môžeme spojiť niekoľko textových reťazcov do jedného a je jedno, či je reťazec v premennej alebo je explicitne zadaný v úvodzovkách vo zdroj. kódu. Do premennej teda priradíme vstup, ďalej čiarku, znovu vstup a potom výkričník. Premennú vypíšeme, počkáme na stlačenie klávesy a skončíme.

Skúste spustiť aplikáciu klávesom F5. Pokiaľ máte Visual štúdio v predvolenom nastavení, teraz sa vám spustí aplikácia výpis premenné, je to preto, že Visual štúdio má nastavené, aby spúšťalo aplikáciu výpis premenné a nie nášho papagája. Ak nevidíte Solution explorer, zobrazte si ho. Kliknite pravým na projekt Papagáj a zo zobrazenej kontextovej ponuky vyberte Set as startup project. Teraz znova stlačte F5, už sa spustí papagáj.

Konzolová aplikácia
Ahoj, som virtuálne papagáj Lora, rád opakujem!
Napíš niečo:
Nazdar vtákovi
Nazdar vtákovi, Nazdar vtákovi!

Do premennej môžeme priraďovať už v jej deklarácii, môžeme teda nahradiť:

Dim vstup As String
vstup = Console.ReadLine()

za:

Dim vstup As String = Console.ReadLine()

Postup priraďovanie hodnoty hneď v deklarácii je odporúčaný. Kód by išiel skrátiť ešte viac, ale to si už môžete skúsiť sami.

Jednoduchá kalkulačka

V riešení si znovu vytvorte nový projekt. Tentoraz sa bude volať (úplne neobvykle :) ) Kalkulačka. Rovno si ho nastavte ako predvolený pre spúšťanie.

Ešte sme nepracovali s desatinnými číslami, skúsme si napísať sľubovanú kalkulačku. Bude veľmi jednoduchá, na vstup prídu dve čísla, program potom vypíše výsledky pre sčítanie, odčítanie, násobenie a delenie.

Console.WriteLine("Vitajte v kalkulačke")
Console.WriteLine("Zadajte prvé číslo:")
Dim cislo1 As Single = Console.ReadLine()
Console.WriteLine("Zadajte druhé číslo:")
Dim cislo2 As Single = Console.ReadLine()
Dim soucet As Single = cislo1 + cislo2
Dim rozdil As Single = cislo1 - cislo2
Dim soucin As Single = cislo1 * cislo2
Dim podil As Single = cislo1 / cislo2
Console.WriteLine("Súčet: " & soucet)
Console.WriteLine("Rozdiel: " & rozdil)
Console.WriteLine("Súčin: " & soucin)
Console.WriteLine("Podiel: " & podil)
Console.WriteLine("Ďakujem za použitia kalkulačky, aplikáciu ukončíte ľubovoľnou klávesou.")
Console.ReadKey()

Konzolová aplikácia
Vitajte v kalkulačke
Zadajte prvé číslo:
3,14
Zadajte druhé číslo:
2,72
Súčet: 5,86
Rozdiel: 0,42
Súčin: 8,5408
Podiel: 1,15441176470588
Ďakujem za použitia kalkulačky, aplikáciu ukončíte ľubovoľnou klávesou.

Pretypovanie

Naokraj tu ešte spomeniem pretypovanie. To vo VB.NET prebieha obvykle automaticky, môžete si to však vynútiť. Pretypovania znamená, že prevediete nejakú hodnotu na iný typ. Uvediem príklad: máme číslo (Integer) 10 a chceme z neho desatinné číslo (Double alebo Single) 10.00. Vykonáme to nasledovne:

Dim cisloInteger As Integer = 10
Dim cisloDouble As Double = CDbl(cisloInteger)

alebo napríklad z typu String:

Dim cisloString As String = "5"
Dim cisloInteger As Integer = CInt(cisloString)

Ako vidíte na pretypovanie sa používajú metódy, ktoré nie sú súčasťou žiadnej triedy a ich názov začína veľký písmenom C a následne zvyčajne tromi písmenami z dátového typu na ktorý chceme hodnotu previesť. Všetky prijímajú parameter typu Object, teda tam môžete dať čokoľvek. Tými najpoužívanejším sú:

  • Cinta (object)
  • CStr (object)
  • CDbl (object)

Všetky programy máte samozrejme opäť v prílohe. Skúšajte si vytvárať nejaké podobné, vedomosti už k tomu máte. :) V budúcej lekcii, Kvíz - Konzoly a premenné vo VB.NET , sa pozrieme podrobnejšie na dátové typy.

V nasledujúcom kvíze, Kvíz - Konzoly a premenné vo VB.NET, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 377x (235.29 kB)
Aplikácia je vrátane zdrojových kódov v jazyku VB

 

Predchádzajúci článok
Visual Studio a prvý konzolová aplikácie
Všetky články v sekcii
Základné konštrukcie jazyka Visual Basic (VB .NET)
Preskočiť článok
(neodporúčame)
Kvíz - Konzoly a premenné vo VB.NET
Článok pre vás napísal Michal Žůrek - misaz
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
Aktivity