Zklady Visual Basicu Promnn Promnn je pojmenovan msto
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) i používat (vypisovat, využívat ve výpočtech) • 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 (příkaz Visual Basicu)
Proměnné Option Explicit používat pouze příkazem Dim zavedené 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 (uložení do proměnné) 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 = Input. Box("Zadej text") vstup textu z klávesnice čti cislo piš text, cislo Konec cislo = val(Input. Box("Zadej číslo")) vstup čísla z klávesnice Msg. Box("Zadáno: " & text & cislo) výstup textů a čísla na obrazovku
Msg. Box("text") výpis textu vypíše se tak, jak je zapsáno mezi "" Msg. Box(text) výpis obsahu proměnné vypíše hodnotu z místa v paměti pojmenovaného text Msg. Box("text" & text) výpis textu a obsahu proměnné Msg. Box("text" & vb. New. Line & text) výpis textu a obsahu proměnné na druhý řádek
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 Date znaky řetězec znaků 8 datum znaky ASCII tabulky (kódy 0 -255) 1. ledna 100 až 31. prosince 9999
Základní matematické operátory Operátor Popis Příklad pro a=7 b=2 + 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=ab 3 Mod ^ zbytek po c = a Mod b celočíselném dělení mocnina c = a^b Obsah proměnné c 1 49
Základní matematické funkce 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) Rnd → 0. 71465 Round Zaokrouhlení Round (3. 98) → 4 Absolutní hodnota Abs (-45) → 45 (nutno inicializovat Randomize) 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 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) Náhodné číslo z intervalu <min , max> nahoda = Int((max - min + 1) * Rnd + min) kostka = Int((6 * Rnd) + 1) (náhodné číslo 1÷ 6) h = Int((50 -15+1) * Rnd + 15) (náhodné číslo 15÷ 50) Logaritmus o základu 10 log 10 = Log (x) / Log (10) pro neznámou x 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)
Základní algoritmické konstrukce
Větvení
Úplné větvení Start If podmínka Then Podmínka Příkaz 1 Konec Příkaz 2 příkaz 1 Else příkaz 2 End If
Neúplné větvení Start If podmínka Then Podmínka Příkaz příkaz End If zkrácený zápis If podmínka Then příkaz Konec
Start If podmínka 1 Then příkaz 1 Else. If podmínka 2 Then příkaz 2 Else příkaz 3 End If Podmínka 1 Podmínka 2 Příkaz 1 Příkaz 3 Příkaz 2 Konec Vnořené větvení
Přepínač Start Proměnná h 1 P 1 h 2, h 3 P 2 >h 4 P 3 Konec h 5 -h 6 P 4 P 0 Select Case proměnná Case h 1 P 1 Case h 2, h 3 P 2 Case Is > h 4 P 3 Case h 5 To h 6 P 3 Case Else P 0 End Select
Cykly
Cyklus se známým počtem průchodů Start i=1, n Tělo cyklu For i=1 To n tělo cyklu (sekvence příkazů) Next i Konec
Cyklus se známým počtem průchodů Start i=1(krok), n Tělo cyklu For i=1 To n Step krok tělo cyklu (sekvence příkazů) Next i Konec
Cyklus s podmínkou na začátku Start Do While podmínka Podmínka tělo cyklu (sekvence příkazů) Loop Tělo cyklu Konec
Cyklus s podmínkou na začátku Start Do Until podmínka Podmínka tělo cyklu (sekvence příkazů) Loop Tělo cyklu Konec
Cyklus s podmínkou na konci Start Do tělo cyklu (sekvence příkazů) Tělo cyklu Loop While podmínka Podmínka Konec
Cyklus s podmínkou na konci Start Do tělo cyklu (sekvence příkazů) Tělo cyklu Loop Until podmínka Podmínka Konec
Použití tlačítek ve výstupním okně Start čti c piš c 2 Do c = val ( Input. Box ("Zadej číslo") ) tl = Msg. Box ( c^2 , vb. Retry. Cancel, "Druhá mocnina čísla" & c) Loop While tl=vb. Retry Opakovat? Konec
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 2 3 4 5 15 -85 0 12 98 cisla (1) = -34 cisla (2) = 53 ←index zápis dat do jedné položky pole -34 53 0 12 98
Strukturovaná proměnná pole cisla 1 2 3 4 5 -34 43 0 12 98 ←index 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 0 2 0 4 0 8 0 16 0 32
Strukturovaná proměnná pole cisla 1 2 3 4 5 2 4 8 16 32 ←index vystup = "Čísla: " příprava pro výpis všech položek For i = 1 To 5 vystup = vystup & " " & cisla(i) Next i Msg. Box vystup , , "Výstup"
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 jmena 0 1 2 3 Petr Jan Tomáš Karel ←index jmena (2) = "Ivoš" zápis dat do jedné položky pole Petr Jan Ivoš Karel
Strukturovaná proměnná pole jmena 0 1 2 3 Petr Jan Ivoš Karel ←index příprava pro výpis všech položek vystup = "Jména: " For i = 0 To 3 vystup = vystup & vb. New. Line & jmena(i) Next i Msg. Box 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 1 matice 1 2 index 3 řádku → 4 5 2 3 5 -6 -4 -84 1 33 12 0 -98 0 -9 21 2 57 -1 ← index sloupce 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 0 0 0 0
Dvojrozměrné pole Výpis všech položek matice vystup = "Matice: " & vb. New. Line For i = 1 To 5 For j = 1 To 3 vystup = vystup & " " & matice(i, j) Next j vystup = vystup & vb. New. Line Next i Msg. Box vystup, , "Výstup"
Podprogramy: Funkce
Funkce provede nějaký výpočet a výsledek (pouze jednu hodnotu) předá prostřednictvím svého jména. Function pi () As single pi = 4 * Atn (1) End Function typ návratové hodnoty přiřazení návratové hodnoty Msg. Box (Cos (pi) ) Příklady volání funkce obvod = 2 * pi * polomer
Parametry funkce Parametry umožňují předávat do funkce vstupní údaje, ze kterých se počítá návratová hodnota. Function radiany (By. Val uhel As single) As single radiany = uhel * pi / 180 End Function Vstupní parametr uhel a = c * Cos ( radiany (45) ) Příklady volání funkce Msg. Box ( Sin ( radiany (90) ) )
Podprogramy: Procedury
Procedury Procedura provede nějakou činnost programu při každém zavolání. Sub Vynuluj. Pole () Dim i As Integer For i = 1 To pocet pole (i) = 0 End Sub Call Vynuluj. Pole() Příklad volání procedury
Procedury Procedura může také vracet libovolný počet výsledků předaných prostřednictvím parametrů. Sub Min. Max. Pole (By. Ref min As Integer, By. Ref 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 Příklad volání procedury Call Min. Max. Pole( nejmensi, nejvetsi )
Parametry podprogramů V hlavičce podprogramu se deklarují formální parametry = lokální proměnné v podprogramu Function Obsah. Kruhu (By. Val r As Single) As Single Obsah. Kruhu = pi * r ^ 2 End Function Obsah. Meho. Kruhu = Obsah. Kruhu (polomer) Obsah. Mezikruzi = Obsah. Kruhu (34) – Obsah. Kruhu (12) Při volání podprogramu se předávají skutečné parametry, které se dosadí za formální
Vstupní parametry slouží pro předávání informací do podprogramu Function Obsah. Kruhu (By. Val r As Single) As Single Obsah. Kruhu = pi * r ^ 2 End Function Obsah. Meho. Kruhu = Obsah. Kruhu (polomer) Obsah. Mezikruzi = Obsah. Kruhu (34) – Obsah. Kruhu (12) Jako skutečné parametry lze předávat proměnné i konstanty
Vstupně-výstupní parametry slouží pro předávání informací do podprogramu a hlavně zpět Sub Prohod (By. Ref a As Single, By. Ref 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í
- Slides: 44