VISUAL BASIC
Lp |
Opis |
Schemat |
Przykłady |
|
||||
1 |
Deklaracje zmiennych |
deklaracja nazwa As typ_zmiennej deklaracja – Dim, Private – zasięg lokalny -
Public – zasięg globalny nazwa – może zawierać tylko litery, cyfry
(nigdy jako pierwszy znak) oraz znak
‘_’; typ_zmiennej – patrz niżej |
Przykład deklaracji: Uwagi: Dim S As String ‘lokalna S Private X1, X2 As
Integer ‘lokalne X1 i
X2 Public X As Single, Y As
Double ‘globalne różnych typów Dim Dobry_Program As Boolean ‘lokalna |
|
||||
2 |
Zmienne i typy danych |
Liczby całkowite: BYTE [0..255] INTEGER
[-32768..32767] LONG
[-2mld..2mld] |
DIM B As BYTE, I As
INTEGER, L As LONG DIM X1 As SINGLE, X2 As
DOUBLE DIM S As STRING, Nazwisko
As STRING*10 DIM Wynik_Pozytywny As BOOLEAN B = 254 I = 1096 L = 46683 X1 = -1.89765 E-44 X2 = 4,900487 E305 S = “Smok Wawelski” Nazwisko = “Wawelski” Wynik_Pozytywny = False UWAGA!!! Nazwy zmiennych mogą zawierać
tylko litery, cyfry (nigdy jako pierwszy znak) oraz znak ‘_’ |
|||||
Liczby rzeczywiste: SINGLE pojedyncza dokładność DOUBLE podwójna dokładność |
||||||||
Tekst: STRING długość dynamiczna (max ok 2mld znaków) STRING*D stała dł. D = 0..65535 |
||||||||
Logiczne: BOOLEAN 2 wartości: True, False |
||||||||
3 |
Operatory |
1) Operatory porównawcze: = równa się/przypisanie wartości zmiennej > większe >= większe równe < mniejsze <= mniejsze równe <> różne |
Działanie Wynik X = 5 ‘5 5 = 6 ‘False 5 > 6 ‘False 5 >= 6 ‘False 5 < 6 ‘True 5 <= 6
‘True 5 <> 6
‘True |
Działanie Wynik 5 + 6
‘11 5 – 6
‘-1 5 * 6 ‘30 5 / 6
‘0.8333[3] 5 ^ 6
‘15625 32 \ 10 ‘3 32 Mod 10 ‘2 |
||||
2) Operatory arytmetyczne: + dodawanie – odejmowanie * mnożenie / dzielenie ^ potęgowanie \ dzielenie
całkowite MOD reszta z dzielenia
całkowitego |
||||||||
Działanie Wynik “Ala ma” + “kota” ->
“Ala makota” “Jan “ + “Kowalski” ->
“Jan Kowalski” “Wynik = “ + “2.5” ->
“Wynik = 2.5” “Wynik = “ & 2.5 ->
“Wynik = 2,5” “(X > Y) : “ & (5 > 6) -> “(X
> Y) : False” |
||||||||
3) Operatory łączenia tekstów: + łączy dwa teksty & wymusza łączenie tekstu z innym typem danych |
||||||||
4 |
Wyrażenie |
ZWF [operator ZWF operator ZWF ...] gdzie: ZWF – zmienna lub wartość lub funkcja operator – operator inny niż logiczny |
DIM K As INTEGER, X As
SINGLE, S As STRING X = 12.6 K = 8 S = “Ala ma kota” Wyrażenie: Wartość: (K ^ 2) MOD 5 ‘ 4 ((X * 2) – K – 1.2) / K * (K – 6) ‘ 4 LEFT(S, 7) & K & MID(S, 7, 4) + “ów” “Ala ma 8 kotów” |
|
||||
5 |
Operatory logiczne |
NOT()
zaprzeczenie () AND ()
koniunkcja () OR ()
alternatywa |
NOT(12 <= 9.87)
‘True NOT(12 <> 9.87)
‘False (12 <= 9.87) AND (12
<> 9.87)
‘False (9.87 < 12) AND (12
<> 9.87)
‘True (12 <= 9.87) OR (12
<> 9.87)
‘True (12 <= 9.87) OR NOT(12
<> 9.87)
‘False |
|
||||
6 |
Wyrażenie logiczne (Warunek) |
1) pojedynczy: wyrażenie operatorP wyrażenie gdzie: wyrażenie – opisano wcześniej operatorP – operator porównawczy |
DIM K As INTEGER, X As
SINGLE, B As BOOLEAN K = 10 X = 10.5 B = True Wyrażenie logiczne (warunek): Wartość: K = 1
False K <= X
True NOT(B)
False STR(K) + “.5” = 10.5
False STR(K) + “.5” = “10.5” True (K = 10) AND (X = 10)
False (K = 10) OR (X = 10)
True NOT(X <= 10) AND (K =
10) True |
|||||
2) złożony: (warunek1) operatorL (warunek2) … gdzie: warunek1, warunek2 – warunki pojedyncze operatorL – operator logiczny |
||||||||
7 |
Instrukcja warunkowa |
IF warunek1 THEN ciąg
instrukcji [ELSEIF warunek2 THEN ciąg
instrukcji] [ELSE ciąg
instrukcji] END IF |
IF X > 0 THEN ZNAK_x = 1 ELSEIF X = 0 THEN ZNAK_x = 0 ELSE ZNAK_x = (-1) END IF |
IF (X > 0) OR (Y > 0)
THEN Tekst =“jedna z liczb jest dodatnia” END IF |
|
|||
8 |
Instrukcja wyboru |
SELECT CASE parametr CASE wartość1 ciąg
instrukcji [CASE wartość2 ciąg instrukcji] [………………… ……………….] [CASE ELSE ciąg instrukcji] END SELECT |
SELECT CASE X CASE IS < 0 Tekst = “liczba
ujemna” CASE 0 Tekst = “zero” CASE 1 To 9 Tekst = “cyfra” CASE ELSE Tekst = “liczba większa niż 9” END SELECT |
|
||||
9 |
Pętla FOR |
FOR licznik = wp TO wk [STEP wartość] ciąg
instrukcji NEXT licznik wp-wartość początkowa wk-wartość końcowa wartość – liczba całkowita dodatnia |
tabliczka mnożenia FOR i = 1 TO 10 FOR j = 1 TO
10 CELLS(i, j) = i
* j NEXT j NEXT i |
sumowanie el. nieparz. SUMA = 0 FOR j = 1 TO 30 STEP 2 SUMA = SUMA + A(j) NEXT j |
|
|||
10 |
Pętla DO/LOOP |
DO [WHILE/UNTIL warunek] ciąg
instrukcji LOOP [WHILE/UNTIL warunek] |
ile liter “a” w tekście S ile = 0 poz = INSTR(S, “a”) DO WHILE poz <> 0 ile = ile + 1 poz = INSTR(poz,
S, “a”) LOOP |
f-cja Y dla X z
przedziału (X1, X2) z krokiem DX X = X1 Wiersz = 1 DO Y = X ^ 2 + (3 *
X) – 5 CELLS(Wiersz, 1)
= Y X = X + DX Wiersz = Wiersz +
1 LOOP UNTIL X > X2 |
|
|||
11 |
Wbudowane funkcje liczbowe |
S As STRING X As DOUBLE STR(X) -zamienia liczbę na tekst SIN(X), COS(X), TAN(X) f-cje trygonom. (X – kąt w radianach) ATN(X) -arcus
tangens – wynik w rad. SQR(X)
-pierwiastek kwadratowy (X>=0) ABS(X) -wartość
bezwzględna SGN(X) (-1 dla
X<0, 0 dla X=0, 1 dla X>0) FIX(X) -zwraca
część całkowitą z X INT(X) -jw ale
ujemne zaokrągla w dół RND -losuje liczbę
rzeczywistą <0, 1> LOG(X) -logarytm
naturalny z X EXP(X) -odwrotność
LOG(X) |
STR(10)
“10” STR(10.856) “10.856” SIN(30) -0.98803 SIN(30 * 3.1416 / 180) 0.5 TAN(45 * 3.1416 /180) 1 ATN(1)
0.78539 ATN(1) * 180 / 3.1416 45 SQR(9) 3 ABS(-3.98)
3.98 SGN(-3.98)
-1 FIX(99.8)
99 FIX(-99.8) -99 INT(99.8)
99 INT(-99.8)
-100 |
|
||||
12 |
Wbudowane funkcje tekstowe |
S, S1 As STRING K, L As INTEGER VAL(S) -zamienia
tekst na liczbę LEN(S) -długość
tekstu/liczba znaków LEFT(S, L)
-wycina L pierwszych znaków RIGHT(S, L)
-wycina L ostatnich znaków MID(S, K, L)
-wycina L znaków z poz. K INSTR(S, S1) -szuka pozycji S1 w S INSTR(K, S, S1) -jw ale zaczyna od poz K TRIM(S) -obcina spacje na pocz. i końcu LCASE(S) -zamienia na małe litery UCASE(S) -zamienia na wielkie litery |
VAL(“.083”)
0.083 VAL(“0,23”) 0 VAL(“2 razy”) 2 VAL(“razy 2”) 0 LEN(“ tekst “) 7 LEFT(“ tekst “, 3) “ te” RIGHT(“ tekst “,
3) “st ” MID(“ tekst ”, 3, 4) “ekst” INSTR(“ tekst ”, “t”) 2 INSTR(3, “ tekst ”, “t”) 6 INSTR(“ tekst “, “w”) 0 TRIM(“ tekst ”) “tekst” LCASE(“ teKst ”) “ tekst ” UCASE(“ tEkSt ”) “ TEKST ” |
|
||||
13 |
MsgBox |
1) Jako procedura: MsgBox tekst1,
ikona+przyciski, tekst2 2) Jako funkcja: …=MsgBox(tekst1, ikona+przyciski, tekst2) tekst1 – komunikat pojawiający się w
oknie tekst2 – tytuł okienka ikona: vbInformation – ikonka
informacyjna vbQuestion
– znak zapytania vbExclamation
– wykrzyknik vbCritical
– znak krytycznego błędu przyciski: vbOKOnly – tylko OK (można pominąć vbOKCancel – OK/Anuluj vbYesNo – Tak/Nie vbYesNoCancel – Tak/Nie/Anuluj vbAbortRetryIgnore – Przerwij/Ponów/Zignoruj |
MsgBox “Wyjątek krytyczny”, vbCritical+vbOKOnly,
“Kalkulator” Wynik = MsgBox(“Zakończyć program?”, vbQuestion+vbYesNo,
“Kalkulator”)
1
OK 2
Anuluj lub X 3
Przerwij 4
Ponów próbę 5
Zignoruj 6
Tak 7
Nie |
|||||
14 |
InputBox |
… = InputBox(komunikat) |
X1 = InputBox(“Podaj X1:”) |
|
||||
15 |
Procedura |
deklaracja SUB nazwa(parametry) ciąg instrukcji END SUB deklaracja – rodzaj deklaracji procedury
(zasięg działania): Private –
widoczna tylko w części kodu, w
której jest deklarowana; Public –
widoczna w całym programie; nazwa – procedurę wywołuje się za
pomocą zadeklarowanej nazwy; parametry – zmienne podawane przy
wywołaniu procedury. |
Procedura bez parametrów, uruchamia się automatycznie po kliknięciu przycisku “CommandButton1”: Private Sub
CommandButton1_Click() CommandButton2.Enabled = True End Sub ‘ta procedura wywołuje się automatycznie Procedura zamienia tekst na wielkie litery i wyświetla w formularzu
“F1” w polu tekstowym o nazwie
“TextBox2”: Public Sub Wyswietl(tekst) F1.TextBox2.Text = UCase(tekst) End Sub ‘tą procedurę wywołuje się jako instrukcję np.: Wyswietl(S)
‘gdzie S jest zmienną typu String Wyswietl(“przykładowy tekst”) |
|
||||
16 |
Funkcja |
dekl. FUNCTION nazwa(parametry) As typ ciąg instrukcji nazwa = wynik END FUNCTION dekl. – rodzaj deklaracji (patrz wyżej) nazwa, parametry – patrz wyżej wynik – nazwie funkcji musi być przypisane jakieś
wyrażenie obliczające wynik
działania funkcji związany z jej typem. |
Funkcja losująca liczbę całkowitą z przedziału <GrD,
GrG>: Public Function Losowa(GrD,
GrG As Integer) As Integer Losowa = Int(Rnd * (GrG – GrD)) + GrD End Function ‘wywołanie np.: Liczba_Losowa = Losowa(-5, 20) Funkcja zamieniająca pierwszą literę podanego słowa na
wielką, a pozostałe na małe: Private Function
Pierwsza_Duza(X) As String Dim D As Integer D = Len(X) Pierwsza_Duza =
UCase(Left(X, 1)) + LCase(Right(X, D)) End Function ‘wywołanie np.: Imie = Pierwsza_Duza(Imie) |
|
||||
|
Autor: Tomasz Szewczuk