VB - 3. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

VB - 3. lekceVB - 3. lekce

 

VB - 3. lekce

Google       Google       15. 4. 2005       34 344×

3.1 Proměnné - teorie
3.2 Proměnné - praxe
3.3 Změna vlastností prvků s použitím proměnných
3.4 Konstanty
3.5 Náhodná čísla a zaokrouhlování
3.6 PictureBox
3.7 Domácí úkol
3.8 V příští lekci

Reklama
Reklama

3.1 Proměnné - Teorie

Proměnná je hodnota, která se řídí určitými pravidly, například, že číselná proměnná nemůže obsahovat text a podobně, nebo třeba proměnná, která má definovaný počet dvou desetinných čísel, jich nemůže mít deset. Proměnná tedy může mít libovolné hodnoty, které ovšem musí projít pravidly. Ta jsou následující:


Typ Účel Velikost Rozsah
Boolean Logický 2 bajty True, False
Byte Číslený 1 bajt 0 - 255
Currency Měna 8 bajtů Obrovský rozsah, zaokrouhluje na setiny
Date Datum a čas 8 bajtů Ve formátu data
Decimal Číselný 14 bajtů +/-79 228 162 514 264 337 593 543 950 335
Double Reálné číslo 8 bajtů Moc a hodně desetinných míst
Error Číslo číslo chyby
Integer Celočíselný 2 bajty -32768 až +32767
Long Dlouhý celočís. 4 bajty víc než minus a plus 2 miliardy
Object Odkaz na obj. 4 bajty
Single Reálné číslo 4 bajty 3,4 na třicátou osmou
String Text 1 bajt na znak přes 65 tisíc znaků
Variant Cokoliv podle velikosti uložené proměnné

  • Boolean - První zde uvedenou proměnnou je Boolean, což je hodnota, která může obsahovat pouze logickou jedničku nebo nulu, čili pravdu (true) a nepravdu (false). Tou se zatím nebudeme zabývat.
  • Byte - Bajt je pro nás zajímavější hodnota, protože tu již teď můžeme využít. Ale její využití je sníženo nízkým rozsahem hodnot, zvládne jen čísla od nuly do 255 a to není moc. Ale své využití určitě najde, protože zabírá pouhý jeden bajt paměti.
  • Currency - Je to už větší číslo, používané především pro měnu.
  • Date - Proměnná určená pro datum a čas.
  • Decimal - Decimal je číselná hodnota, která může nabývat opravdu extrémních a prakticky nevyužitelných hodnot.
  • Double - Je velmi univerzální číselná proměnná, protože umožňuje používání desetinné čárky, a to ve velmi velkém rozsahu. Její využití je především ve výpočetních aplikacích. Její velikost je osm bajtů paměti, což je poměrně dost. Místa v paměti jsou pro každý z typů pamětí rezervovaná.
  • Error - Popisuje typ chyby, využívám ji jen výjimečně. Za celou dobu, co pracuji v Basicu, jsem ji skoro nepotřeboval.
  • Integer - Je číselná proměnná, vhodná třeba pro umístění prvků na formuláři. Nezabírá totiž mnoho místa v paměti a její využití je taky poměrně široké. Ze začátku budeme využívat především tuto proměnnou.
  • Long - Je stejně jako integer celočíselný typ, ale jeho pracovní rozmezí je mnohonásobně vyšší.

  • Single - Je proměnná, která je o 4 bajty nižší než double, ale i tak je její rozsah obrovský, tj. 3,4 na třicátou osmou.
  • String - Je proměnná, která umožňuje ukládat text. Jeden znak zabírá jeden bajt. Jeho délka je omezena asi 65 000 znaky. To je poměrně dost na to, aby vám to stačilo.
  • Variant - Je absolutně univerzální proměnná, která umožňuje ukládání číselných hodnot až do 16 bajtů a text také ve velkém. Zabírá proto hodně místa. Proto je její použití spíše výjimečné. Tak se vyvarujte jejího použití. Je také nastavena jako defaultní, tj. každá nedefinovanná proměnná je automaticky typu variant .
Proměnné se deklarují do horní části formuláře. Deklarace znamená zavedení. Ve Visual Basicu se proměnná deklarovat nemusí, ale mělo by se to dělat. Výjimky, kdy se deklarovat nemusí, si řekneme časem. Deklarace proměnné vypadá takto:


Dim délka As Single 'Deklarace proměnné

Private Sub Command1_Click() 'Začátek procedury
  délka = Form1.Width 'Uložení do proměnné
  Label1.Caption = délka 'Čtení proměnné
End Sub 'Konec procedury

Od komentáře zpět k proměnným, tedy k jejich deklaraci

  • Dim - označuje typ proměnné
  • délka – je v našem případě název, ale ten může být libovolný, ale nesmí v něm být speciální znaky ani mezery.
  • As – znamená jako tzn. třeba proměnná délka jako Single.
  • Single – místo toho však může být jakýkoliv jiný typ proměnné.

3.2 Proměnné praxe

Proměnné se ve Visual Basicu stejně jako v jiných jazycích využívají k uložení nějakých dat po určitou dobu. Než je ale začneme používat, tak vám ukážu, jak pracovat s TextBoxem. TextBox je prvek, který umožňuje uživateli vkládat textové vstupy. Třeba věk, jméno a další. Má mnoho zajímavých vlastností. Tou, která je u něj podstatná, je vlastnost Text. Do ní se vpisuje text. Další zajímavou vlastností je PasswordChar. Pokud je v kolonce této vlastnosti nějaký znak, tak se vámi psaný text zobrazuje jako tento znak. Pokud je vlastnost MultiLine nastavena na true, tak můžete do TextBoxu psát na více řádků. Vlastnost MaxLenght určuje maximální délku obsahu ve znacích. Locket je vlastnost, pomocí které můžeme uživateli zakázat do TextBoxu vpisovat. Totéž jde pomocí vlastnosti Enabled, ta ovšem zároveň způsobí zašednutí TextBoxu, což v případě Locked nehrozí. Dále vlastnost Font a potom barvy písma a pozadí. Další už nejsou tak důležité anebo jsou popsány v minulé lekci. V kódu se jmenuje Text1 – Textn, n je libovolné číslo. Lepší je pojmenovávat si prvky po svém. Zde je kód, ve kterém si ukážeme využití jak proměnných, tak TextBoxu.


Dim císlo As Double ‘Deklarace proměnné 

Private Sub Command1_Click() ‘Procedura kliknutí na první tlačítko
  císlo = Text1.Text ‘Obsah TextBoxu se uloží do proměnné císlo
End Sub

Private Sub Command2_Click()‘Procedura kliknutí na druhé tlačítko
  Text1.Text = císlo ‘vložení obsahu proměnné do TextBoxu
End Sub

To byl jednoduchý příklad, jak používat proměnné, jak do nich ukládat a jak z nich číst. Nyní si ještě ukážeme deklaraci proměnné v jedné proceduře.


Private Sub Command1_Click()
Dim a As String
  a = Text1.Text
  Text2.Text = a
End Sub

Private Sub Command2_Click()
  Text2.Text = a
End Sub

V tomto kódu je deklarovaná proměnná jen pro jednu proceduru. Pokud klikneme na tlačítko „Command1“, tak se obsah textového pole „Text1“ zkopíruje přes proměnnou „a“ do textového pole „Text2“. Pokud ale stiskneme tlačítko Command2, tak se textové pole Text2 vyprázdní, a to z toho důvodu, že proměnná „a“ je deklarovaná jen v proceduře „Command1_Click“, to znamená, že její obsah byl zachován pouze v proceduře Command1_Click, ale v proceduře Comand2_Click už deklarovaná není. A i kdyby byla, tak by opět byla nulová, protože by byla deklarovaná pro každou proceduru zvlášť. Pokud ale kód upravíte, aby vypadal takto:


Dim a As String

Private Sub Command1_Click()
  a = Text1.Text
  Text2.Text = a
End Sub

Private Sub Command2_Click()
  Text2.Text = a
End Sub

pak je deklarována proměnná společně pro obě procedury. Pokud stisknete tlačítko Command1, opakuje se to, co v minulém kódu, ale obsah proměnné zůstává zachován. Pokud nyní stiskneme tlačítko Command2, tak se tato proměnná přesune do Text2.

3.3 Změna vlastností prvků s použitím proměnných

Nyní vytvoříme program, který podle uživatele změní titulek okna formuláře.


Dim puvodni As String

Private Sub Command1_Click()
  puvodni = Form1.Caption
  Form1.Caption = Text1.Text
End Sub

Private Sub Command2_Click()
  Form1.Caption = puvodni
End Sub

Private Sub Form_Load()
  Text1.Text = ""
End Sub

Formulář pro tento kód by mohl vypadat asi takto. Tato jednoduchá hračička dokáže změnit titulek okna na vámi zadaný text a po stisknutí tlačítka zpět se vrátí předchozí název. Jak vidíte, není to nic složitého, je to jen pár řádků kódu. Podobně se dají třeba měnit umístění objektů na formuláři a další.

3.4 Konstanty

Konstanty jsou pravým opakem proměnných. Proměnné mohou nabývat různých hodnot, narozdíl od toho konstanta má jen jednu, a to stálou hodnotu. Jednou takovou konstantou je třeba „pí“. Definice konstanty vypadá takto:


Const pi As Double = 3.141592654

Konstanta ve VB se musí ihned inicializovat, nejde jí přidělit hodnotu až časem jako proměnné, i z logického hlediska je to nesmysl. Konstanty se využívají sice spíš výjimečně, ale přece si najdou své využití. Konstanty se volají stejně jako proměnné i se stejně používají s tím rozdílem, že z nich jde pouze číst, ale nemůžeme do nich zapisovat.


Text2.text = pi / 2

Tímto jednoduchým kódem si v TextBoxu zobrazíme poloviční hodnotu „pí“

3.5 Náhodná čísla a zaokrouhlování

Generování náhodných čísel je poměrně důležité, bez něj se mnohá odvětví programování neobejdou. Asi nám jeho absence nebude vadit při tvorbě kancelářských aplikací, ale třeba při hrách je jeho absence nepředstavitelná. Náhodné číslo nám generuje zkratka Rnd, její využití je jako samotné k ničemu, většinou se doplňuje nějakým výpočtem. Jeho hodnota je vždy menší než nula. Tzn. třeba 0.456928 atd. Nyní nastala chvíle, abych upozornil, že ve Visual Basicu se nepoužívají desetinné čárky, ale desetinné tečky. Pokud ale chceme získat celé číslo třeba v jednotkách, je potřeba ono náhodné číslo vynásobit desíti a potom zaokrouhlit. Na zaokrouhlování se využívají dvě funkce, které fungují (pro kladná čísla) obě úplně stejně a to Fix() a Int(). Do jejich závorek se dává zaokrouhlované číslo nebo častěji proměnná. Pokud chceme získat čísla v řádu desítek, tak násobíme stem a pak zaokrouhlíme. Funkce Int má jednu zajímavost, a to, že zaokrouhluje vždy dolů. Tzn. že 4.99 zaokrouhlí na 4.


a = Int(Rnd * 10)

Tímto kódem si generujeme celá čísla od 0 do 9, pokud bychom chtěli třeba čísla od 1 do 10, museli bychom přičíst jedničku. Třeba takto:


a = Int(Rnd * 10) + 1

Nebo takto:


a = Int(Rnd * 10)
a = a + 1

To je tedy poměrně jednoduché a dá se to rozepsat na několik řádků, pro snadné pochopení třeba takto:


a = Rnd
a = a * 10
a = Int(a)
a = a + 1

Z tohoto kódu krásně vyplývá, jak pracovat s proměnnými, za použití pouze jedné. To by bylo stručně něco málo o náhodných číslech. Ještě bych mohl dodat, že pokud chcete získat náhodné číslo menší než tři, tak stačí :


a = 3 * Rnd

A tento jednoduchý kód vytiskne náhodná čísla od 5 do 15:


Private Sub Form_Click()
  nejmensi = 5
  nejvetsi = 15
  vysledek = ((nejvetsi - nejmensi) * Rnd) + nejmensi
  Print vysledek
End Sub

Tohle už je víceméně o logice než o programování, ale vyzkoušejte si, co se dá dělat pomocí náhodných čísel a uvidíte. Pokud následující program spustíte víckrát, můžete si všimnout jedné zajímavosti, totiž že náhodná čísla jsou vždy ve stejném pořadí, což je výhodné pro ladění programu. Různost náhodných čísel se dá napravit textem Randomize Timer. Kód potom může vypadat třeba takto:


Private Sub Form_Click()
  Randomize Timer
  Print Rnd
End Sub

Náhodná čísla tak budou opravdu náhodná.

3.6 PictureBox

Dost už bylo čísel a proměnných. Teď si naše programy oživíme trochou obrázků, a to pomocí PictureBoxu, ale ten nebudu zatím probírat příliš do hloubky, ale zmíním se jen o jeho základních vlastnostech. Tou bezpochyby nejdůležitější je vlastnost Picture, která udává jeho obsah, tedy jméno obrázku, který bude obsahovat. Obsahuje taktéž procedury, jako je click a podobně, takže se dá využít jako tlačítko. Tím můžete zlepšit grafické rozhraní vašeho programu, a to do značné míry. Tento prvek má obrovský rozsah použití, který si ale nechám na později.

3.7 Domácí úkol

Nastal konec trápení s lekcí, teď vás potrápím domácím úkolem. Zadání zní vytvořit program, který vypočítá obvod kruhu s libovolným náhodným poloměrem o velikosti 1 až 100, který bude zokrouhlen na desetiny. Použijete konstanty, proměnné, náhodná čísla a TextBoxy na zobrazení výsledku. Zobrazte jak poloměr, tak i obvod. A udělejte to tak, aby to hezky vypadalo. Vypracované úlohy odevzdávejte jako čistý kód bez formulářů.

3.8 V příští lekci

V příští lekci nás čekají: objekt timer a podmínky, bez kterých by byl VB téměř nepoužitelný. Řekneme si, co je to MessageBox a v čem nám může být dobrý, a ukážeme si jak vyrobit jednoduchou kalkulačku.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jiří ChytilAutor programuje ve VB, zajímá se o elektrotechniku, studuje na SOŠ Elektrotechnické - obor číslicová technika.
Web    

Nové články

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý