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
Dim text As string
Dim cislo As integer
Dim polomer As single
text = "Ahoj"
cislo = 25
polomer = 19.27
pouze nadeklarované proměnné
proměnná pro textové řetězce
proměnná pro celá čísla
proměnná pro reálná čísla
přiřazení textu
přiřazení celého čísla
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
text = InputBox("Zadej text")
čti cislo
Konec
piš text, cislo
čti text
cislo = val(InputBox("Zadej číslo"))
MsgBox("Zadáno:" & text & cislo)
vstup textu z klávesnice
vstup čísla z klávesnice
výstup textů na obrazovku
Větvení
Úplné větveníStart
Příkaz 1
Podmínka
Konec
If podmínka Then
End If
příkaz 1
Příkaz 2
Elsepříkaz 2
Neúplné větveníStart
Příkaz
Podmínka
Konec
If podmínka Then
End If
příkaz
zkrácený zápisIf podmínka Then příkaz
Start
Příkaz 1
Podmínka1
Konec
Příkaz 2
If podmínka1 Thenpříkaz 1
ElseIf podmínka2 Thenpříkaz 2Else příkaz 3
End If
Podmínka2
Příkaz 3
PřepínačStart
P1
Proměnná
Konec
Select Case proměnná
End Select
P1
P0P2 P3 P4
h1 h2,h3 >h4 h5-h6
Case h1
P2Case h2, h3
P3Case Is > h4
P3Case h5 To h6
P0Case Else
Cykly
Cyklus se známým počtem průchodů
Start
Tělo cyklu
i=1,n
Konec
For i=1 To n
Next i
tělo cyklu(sekvence příkazů)
Cyklus se známým počtem průchodů
Start
Tělo cyklu
i=1(krok),n
Konec
For i=1 To n Step krok
Next i
tělo cyklu(sekvence příkazů)
Cyklus s podmínkou na začátku
Start
Tělo cyklu
Podmínka
Konec
Do While podmínka
Loop
tělo cyklu(sekvence příkazů)
Cyklus s podmínkou na začátku
Start
Tělo cyklu
Podmínka
Konec
Do Until podmínka
Loop
tělo cyklu(sekvence příkazů)
Cyklus s podmínkou na konci
Start
Tělo cyklu
Podmínka
Konec
Do
Loop While podmínka
tělo cyklu(sekvence příkazů)
Cyklus s podmínkou na konci
Start
Tělo cyklu
Podmínka
Konec
Do
Loop Until podmínka
tělo cyklu(sekvence příkazů)
Použití tlačítek ve výstupním okněStart
Opakovat?
Konec
Do
Loop While tl=vbRetry
tl = MsgBox ( c^2 , vbRetryCancel, "Druhá mocnina čísla" & c)
čti c
piš c2
c = val ( InputBox ("Zadej číslo") )
Typy dat, matematické funkce
Základní typy dat
Typ bajtů Popis Rozsah od-do
Byte 1 přirozené číslo 0 až 255
Boolean 2 logická ANO/NE True / False
Integer 2 celé číslo -32 768 až 32 767
Long 4 velké celé číslo -2 147 483 648 až 2 147 483 647
Single 4 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 8 datum 1. ledna 100 až 31. prosince 9999
Základní matematické operátoryOperátor Popis Příklad
pro a=7 b=2Vý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é funkceFunkce 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é čísloz intervalu <1 , max>
nahoda = Int((max * Rnd) + 1)
Náhodné číslo 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(inverzní funkce)
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
cisla (1) = -34 zápis dat do jedné položky pole
-34 53 0 12 98
←indexcisla
1 2 3 4 5
15 -85 0 12 98
cisla (2) = 53
Strukturovaná proměnná pole
For i = 1 To 5 cisla (i) = 0Next i
vynulování všech položek pole
0 0 0 0 0
←indexcisla
1 2 3 4 5
-34 43 0 12 98
For i = 1 To 5 cisla (i) = 2^iNext i 2 4 8 16 32
zápis dat do všech položek pole
Strukturovaná proměnná pole
vystup = "Čísla:"For i = 1 To 5 vystup = vystup & " " & cisla(i)Next iMsgBox vystup , , "Výstup"
příprava pro výpis všech položek
←indexcisla
1 2 3 4 5
2 4 8 16 32
Strukturovaná proměnná pole
Dim jmena(3) As string
proměnná jmena pro 4 řetězce (index je od nuly!)
←indexjmena
0 1 2 3
Petr Jan Tomáš Karel
jak vypadá proměnná jmena v operační paměti
jmena (2) = "Ivoš" zápis dat do jedné položky pole
Petr Jan Ivoš Karel
Strukturovaná proměnná pole←index
jmena0 1 2 3
Petr Jan Ivoš Karel
vystup = "Jména:"For i = 0 To 3 vystup = vystup & vbNewLine & jmena(i)Next iMsgBox vystup , , "Výstup"
příprava pro výpis všech položek
Dvojrozměrné pole
Dim matice (1 To 5, 1 To 3) As integerproměnná matice pro 5 řádků a 3 sloupce
jak vypadá proměnná matice v operační paměti
cisla (1) = 34
← index sloupcematice
index řádku →
1 2 31 5 -6 -42 -84 1 333 12 0 -984 0 -9 215 2 57 -1
Dvojrozměrné pole
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 jNext i
Vynulování všech položek matice
matice 0 0 00 0 00 0 00 0 00 0 0
Dvojrozměrné pole
vystup = "Matice:" & vbNewLineFor i = 1 To 5 For j = 1 To 3 vystup = vystup & " " & matice(i, j) Next j vystup = vystup & vbNewLineNext iMsgBox vystup, , "Výstup"
Výpis všech položek matice
Podprogramy: Funkce
Funkce
Function pi () As single
pi = 4 * Atn (1)End Function
MsgBox (Cos (pi) )obvod = 2 * pi * polomer
typ návratové hodnoty
přiřazení návratové hodnoty
Příklady volání funkce
Funkce provede nějaký výpočet a výsledek (pouze jednu hodnotu) předá prostřednictvím svého jména.
Parametry funkce
Function radiany (ByVal uhel As single) As single
radiany = uhel * pi / 180End Function
a = c * Cos ( radiany (45) )
MsgBox ( Sin ( radiany (90) ) )
Parametry umožňují předávat do funkce vstupní údaje, ze kterých se počítá návratová hodnota.
Vstupní parametr uhel
Příklady volání funkce
Podprogramy: Procedury
Procedury
Sub VynulujPole () Dim i As Integer For i = 1 To pocet pole (i) = 0End Sub
Call VynulujPole() Příklad volání procedury
Procedura provede nějakou činnost programu při každém zavolání.
Procedury
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 iEnd Sub
Call MinMaxPole( nejmensi, nejvetsi )Příklad volání procedury
Procedura může také vracet libovolný počet výsledků předaných prostřednictvím parametrů.
Parametry podprogramů
Function ObsahKruhu (ByVal r As Single) As Single ObsahKruhu = pi * r ^ 2End 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í
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 ^ 2End Function
ObsahMehoKruhu = ObsahKruhu (polomer)
ObsahMezikruzi = ObsahKruhu (34) – ObsahKruhu (12)
Jako skutečné parametry lze předávat proměnnéi konstanty
Vstupní parametry slouží pro předávání informací do podprogramu
Vstupní parametry
Sub Prohod (ByRef a As Single, ByRef b As Single) Dim pom As Single pom = a : a = b : b = pomEnd 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í
Vstupně-výstupní parametry slouží pro předávání informací do podprogramu a hlavně zpět
Vstupně-výstupní parametry