Základy Visual Basicu
Proměnné Proměnná je pojmenované místo v operační paměti počítače Do proměnné lze ukládat hodnoty a kdykoliv je měnit (přepisovat) Jméno proměnné (identifikátor) musí splňovat především tato pravidla: nesmí začínat číslicí nesmí obsahovat mezery a speciální znaky nesmí to být klíčové slovo
Proměnné Option Explicit pouze nadeklarované proměnné Dim text As string proměnná pro textové řetězce Dim cislo As integer proměnná pro celá čísla Dim polomer As single proměnná pro reálná čísla text = "Ahoj" přiřazení textu cislo = 25 přiřazení celého čísla polomer = 19.27 přiřazení reálného čísla
Proměnné text = "Ahoj" & text & cislo sčítání řetězců a čísel převedených na text cislo = cislo + 1 soucet = soucet + cislo zvyšování obsahu proměnných obsah = 3.14*(prumer/2)^2 výpočet hodnoty proměnné
Vstupy / výstupy
Vstupy / výstupy Start čti text text = InputBox("Zadej text") vstup textu z klávesnice čti cislo cislo = val(InputBox("Zadej číslo")) vstup čísla z klávesnice piš text, cislo MsgBox("Zadáno:" & text & cislo) výstup textů na obrazovku Konec
Větvení
Úplné větvení Start If podmínka Then Podmínka příkaz 1 Else příkaz 2 End If Konec
Neúplné větvení Start If podmínka Then Podmínka příkaz End If Příkaz zkrácený zápis If podmínka Then příkaz Konec
Start Podmínka1 Podmínka2 Příkaz 1 Příkaz 3 Příkaz 2 Konec If podmínka1 Then příkaz 1 ElseIf podmínka2 Then příkaz 2 Else příkaz 3 End If Podmínka1 Podmínka2 Příkaz 1 Příkaz 3 Příkaz 2 Konec
Přepínač Start Select Case proměnná Proměnná Case h1 P1 Case h2, h3 P2 Case Is > h4 h1 h2,h3 >h4 h5-h6 P3 P1 P2 P3 P4 P0 Case h5 To h6 P3 Case Else P0 End Select Konec
Cykly
Cyklus se známým počtem průchodů Start For i=1 To n i=1,n tělo cyklu (sekvence příkazů) Tělo cyklu Next i Konec
Cyklus se známým počtem průchodů Start For i=1 To n Step krok i=1(krok),n tělo cyklu (sekvence příkazů) Tělo cyklu Next i Konec
Cyklus s podmínkou na začátku Start Do While podmínka Podmínka tělo cyklu (sekvence příkazů) Tělo cyklu Loop Konec
Cyklus s podmínkou na začátku Start Do Until podmínka Podmínka tělo cyklu (sekvence příkazů) Tělo cyklu Loop Konec
Cyklus s podmínkou na konci Start Do Tělo cyklu tělo cyklu (sekvence příkazů) Podmínka Loop While podmínka Konec
Cyklus s podmínkou na konci Start Do Tělo cyklu tělo cyklu (sekvence příkazů) Podmínka Loop Until podmínka Konec
Použití tlačítek ve výstupním okně Start Do c = val ( InputBox ("Zadej číslo") ) čti c tl = MsgBox ( c^2 , vbRetryCancel, "Druhá mocnina čísla" & c) piš c2 Loop While tl=vbRetry Opakovat? Konec
Typy dat, matematické funkce
Základní typy dat Typ bajtů Popis Rozsah od-do Byte 1 přirozené číslo Boolean 2 logická ANO/NE True / False Integer celé číslo -32 768 až 32 767 Long 4 velké celé číslo -2 147 483 648 až 2 147 483 647 Single desetinné číslo ±1,4.10-45 až ±3,4.1038 Double 8 velké deset. číslo ±4,9.10-324 až ±1,8.10308 String znaky řetězec znaků znaky ASCII tabulky (kódy 0-255) Date datum 1. ledna 100 až 31. prosince 9999
Základní matematické operátory Popis Příklad pro a=7 b=2 Výsledek c= + součet c = a + b 9 - rozdíl c = a - b 5 * součin c = a*b 14 / podíl c = a / b 3,5 \ celočíselné dělení c = a \ b 3 Mod zbytek po celočíselném dělení c = a Mod b 1 ^ mocnina c = a^b 49
Základní matematické funkce Popis Příklad Sqr Druhá odmocnina Sqr (25) → 5 Int Konverze na celé číslo Int (3.98) → 3 Rnd Náhodné číslo z intervalu <0,1) (nutno inicializovat Randomize) Rnd → 0.71465 Round Zaokrouhlení Round (3.98) → 4 Abs Absolutní hodnota Abs (-45) → 45 Sin, Cos, Tan Goniometrické funkce Cos (3.14159) → -1 Atn Arkus tangens 4*Atn (1) → 3.14159 Log Přirozený logaritmus lnex Log (2.71828) → 1 Exp Exponenciální funkce ex Exp (1) → 2.71828
Příklady použití funkcí Popis Příklad Náhodné číslo z intervalu <1 , max> nahoda = Int((max * Rnd) + 1) z intervalu <min , max> nahoda = Int((max - min + 1) * Rnd + min) Logaritmus o základu 10 log 10(x)= Log (x) / Log (10) Arkus sínus (inverzní funkce) arksin = Atn (x / Sqr (-x*x + 1)) Arkus kosínus arkcos = Atn (-x / Sqr (-x*x + 1)) + 2*Atn (1)
Strukturovaná proměnná pole
Strukturovaná proměnná pole Dim cisla (1 To 5) As integer proměnná cisla pro 5 celých čísel jak vypadá proměnná cisla v operační paměti ←index cisla 1 2 3 4 5 15 -85 12 98 cisla (1) = -34 zápis dat do jedné položky pole cisla (2) = 53 -34 53 12 98
Strukturovaná proměnná pole ←index cisla 1 2 3 4 5 -34 43 12 98 For i = 1 To 5 cisla (i) = 0 Next i vynulování všech položek pole For i = 1 To 5 cisla (i) = 2^i Next i zápis dat do všech položek pole 2 4 8 16 32
Strukturovaná proměnná pole ←index cisla 1 2 3 4 5 8 16 32 vystup = "Čísla:" For i = 1 To 5 vystup = vystup & " " & cisla(i) Next i MsgBox vystup , , "Výstup" příprava pro výpis všech položek
Strukturovaná proměnná pole Dim jmena(3) As string proměnná jmena pro 4 řetězce (index je od nuly!) jak vypadá proměnná jmena v operační paměti ←index jmena 1 2 3 Petr Jan Tomáš Karel jmena (2) = "Ivoš" zápis dat do jedné položky pole Petr Jan Ivoš Karel
Strukturovaná proměnná pole ←index jmena 1 2 3 Petr Jan Ivoš Karel příprava pro výpis všech položek vystup = "Jména:" For i = 0 To 3 vystup = vystup & vbNewLine & jmena(i) Next i MsgBox vystup , , "Výstup"
Dvojrozměrné pole Dim matice (1 To 5, 1 To 3) As integer proměnná matice pro 5 řádků a 3 sloupce jak vypadá proměnná matice v operační paměti ← index sloupce matice index řádku → 1 2 3 5 -6 -4 -84 33 12 -98 4 -9 21 57 -1 cisla (1) = 34
Dvojrozměrné pole Vynulování všech položek matice Dim matice(1 To 5, 1 To 3) As Integer For i = 1 To 5 For j = 1 To 3 matice(i, j) = 0 Next j Next i matice
Dvojrozměrné pole Výpis všech položek matice vystup = "Matice:" & vbNewLine For i = 1 To 5 For j = 1 To 3 vystup = vystup & " " & matice(i, j) Next j vystup = vystup & vbNewLine Next i MsgBox vystup, , "Výstup"
Podprogramy: Funkce
Funkce Funkce provede nějaký výpočet a výsledek (pouze jednu hodnotu) předá prostřednictvím svého jména. typ návratové hodnoty Function pi () As single pi = 4 * Atn (1) End Function MsgBox (Cos (pi) ) obvod = 2 * pi * polomer přiřazení návratové hodnoty Příklady volání funkce
Parametry funkce Parametry umožňují předávat do funkce vstupní údaje, ze kterých se počítá návratová hodnota. Function radiany (ByVal uhel As single) As single radiany = uhel * pi / 180 End Function a = c * Cos ( radiany (45) ) MsgBox ( Sin ( radiany (90) ) ) Vstupní parametr uhel Příklady volání funkce
Podprogramy: Procedury
Procedury Procedura provede nějakou činnost programu při každém zavolání. Sub VynulujPole () Dim i As Integer For i = 1 To pocet pole (i) = 0 End Sub Call VynulujPole() Příklad volání procedury
Procedury Procedura může také vracet libovolný počet výsledků předaných prostřednictvím parametrů. Sub MinMaxPole (ByRef min As Integer, ByRef max As Integer) Dim i As Integer min = pole(1) : max = pole(1) For i = 2 To pocet If pole (i) > max Then max = pole (i) If pole (i) < min Then min = pole (i) Next i End Sub Call MinMaxPole( nejmensi, nejvetsi ) Příklad volání procedury
Parametry podprogramů V hlavičce podprogramu se deklarují formální parametry = lokální proměnné v podprogramu Function ObsahKruhu (ByVal r As Single) As Single ObsahKruhu = pi * r ^ 2 End Function ObsahMehoKruhu = ObsahKruhu (polomer) ObsahMezikruzi = ObsahKruhu (34) – ObsahKruhu (12) Při volání podprogramu se předávají skutečné parametry, které se dosadí za formální
Vstupní parametry Vstupní parametry slouží pro předávání informací do podprogramu Function ObsahKruhu (ByVal r As Single) As Single ObsahKruhu = pi * r ^ 2 End Function ObsahMehoKruhu = ObsahKruhu (polomer) ObsahMezikruzi = ObsahKruhu (34) – ObsahKruhu (12) Jako skutečné parametry lze předávat proměnné i konstanty
Vstupně-výstupní parametry Vstupně-výstupní parametry slouží pro předávání informací do podprogramu a hlavně zpět Sub Prohod (ByRef a As Single, ByRef b As Single) Dim pom As Single pom = a : a = b : b = pom End Sub Call Prohod (x,y) Jako skutečné parametry lze použít pouze proměnné – pracuje se přímo se skutečnými parametry, které nahradí ty formální