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

vbAbortRetryIgnorePrzerwij/Ponów/Zignoruj

 

MsgBox “Wyjątek krytyczny”, vbCritical+vbOKOnly, “Kalkulator”

 

Wynik = MsgBox(“Zakończyć program?”, vbQuestion+vbYesNo, “Kalkulator”)

Wynik    Wciśnięty przycisk

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