Stručné základy Visual Basicu

Download Report

Transcript Stručné základy Visual Basicu

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
Konec
MsgBox("Zadáno:" & text & cislo)
výstup textů na obrazovku
Větvení
Úplné větvení
Start
If podmínka Then
příkaz 1
Podmínka
Else
příkaz 2
Příkaz 1
Příkaz 2
End If
Konec
Neúplné větvení
Start
Podmínka
If podmínka Then
příkaz
End If
Příkaz
zkrácený zápis
If podmínka Then příkaz
Konec
Start
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
Proměnná
h1
P1
h2,h3
P2
>h4
P3
Konec
h5-h6
P4
P0
Select Case proměnná
Case h1
P1
Case h2, h3
P2
Case Is > h4
P3
Case h5 To h6
P3
Case Else
P0
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
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
čti c
piš c2
Do
c = val ( InputBox ("Zadej číslo") )
tl = MsgBox ( c^2 , vbRetryCancel,
"Druhá mocnina čísla" & c)
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
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=a\b
3
Mod
^
zbytek po
c = a Mod b
celočíselném dělení
mocnina
c = a^b
Výsledek
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
(nutno inicializovat Randomize)
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)
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
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
MsgBox 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 & 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
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
0
0
0
0
0
0
0
0
0
0
0
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.
Function pi () As single
pi = 4 * Atn (1)
End Function
typ návratové hodnoty
přiřazení návratové hodnoty
MsgBox (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 (ByVal uhel As single) As single
radiany = uhel * pi / 180
End Function
Vstupní parametr uhel
a = c * Cos ( radiany (45) )
Příklady volání funkce
MsgBox ( Sin ( radiany (90) ) )
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
Příklad volání procedury
Call MinMaxPole( nejmensi, nejvetsi )
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í