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:
{VBNET_CONSOLE}
Dim cislo As Integer
cislo = 56
Console.WriteLine(cislo)
Console.ReadKey()
{/VBNET_CONSOLE}
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:
{VBNET_CONSOLE}
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()
{/VBNET_CONSOLE}
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.
{VBNET_CONSOLE}
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()
{/VBNET_CONSOLE}
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