Wprowadzenie do
programowania
Struktury Danych
1
Zmienne
reprezentują - dane, czyli zbiór
informacji, które są analizowane i
przetwarzane przez program
Pojęcie zmiennej obejmuje:
nazwÄ™ zmiennej
wartość aktualną
typ zmiennej
" Zmienna to obiekt, którego wartość
mo\e się zmieniać podczas działania
programu i który jest identyfikowany
przez nazwÄ™ symbolicznÄ…
identyfikator
" Ka\da zmienna ma przypisany jeden ze
zdefiniowanych typów, czyli zbiorów
wartości które mo\e przyjmować.
Fizycznie zmienna odpowiada pewnej
lokalizacji w pamięci komputera
2
Konwencja nadawania nazw
" muszą zaczynać się od litery
" nie mogą zawierać znaków
specjalnych (znaki działań
arytmetycznych, separatory, spacje)
" nie mogą być identyczne ze słowami
kluczowymi
" nie mogą być dłu\sze od 256 znaków
Deklaracje zmiennych
Deklaracja informuje system o u\ywaniu określonych danych
Trzy sposoby określenia typu zmiennych w systemie
Visual Basic
" jawny (Explicit)
zmienne deklarowane w deklaracji Dim
Dim nazwa_zmiennej [ As określenie_typu]
" niejawny (Implicit)
polega na dołączeniu do nazwy odpowiedniego
przyrostka
" domyślny (Default)
domyślnie uniwersalny typ Variant jest
przypisywany zmiennej, gdy nie zadeklarowano
typu w sposób jawny lub niejawny
3
Aby wymusić jawne deklarowanie wszystkich
zmiennych nale\y w sekcji Declarations ka\dego
modułu umieścić dyrektywę:
Option Explicit
lub z menu Tools wybrać kartę Editor i zaznaczyć
opcjÄ™ Require Variable Declarations
Podstawowe typy zmiennych
Variant typ domyślny, gdy w deklaracji nie
określono typu zmiennej
(mo\e reprezentować wiele ró\nych typów)
Dane numeryczne -16 bajtów zakres jak Double
Dane tekstowe -22 bajty + długość łańcucha
Integer całkowite (przyrostek % w nazwach)
2 bajty zakres 32 768 do 32 767
Long całkowite długie (przyrostek & w nazwach)
4 bajty -2 147 483 648 do 2 147 483 647
Byte całkowite - zakres 0 do 255
4
Single rzeczywiste (przyrostek ! w nazwach)
4 bajty zakres Ä…3.40E38 (7cyfr znaczÄ…cych)
rozdzielczość 1.401298E-45
Double rzeczywiste podwójnej precyzji
(przyrostek # w nazwach)
8 bajtów zakres -1.79E308 (15 cyfr znaczących)
rozdzielczość 4.94E-324
Currency dane typu waluta
(przyrostek @ w nazwach)
8 bajtów skalowane do 15 cyfr przed
i 4 po przecinku
Boolean logiczne 2 bajty
True lub False
String łańcuchy tekstowe (przyrostek $)
Aańcuchy o zmiennej dług 10 bajtów
+ długość
Aańcuchy o stałej dług długość łańcucha
Date dane typu data 8 bajtów
Object zawierają odnośniki do obiektów
np. komponentów wizualnych - 4 bajty
5
zakresy zmiennych poziomy zakresów
zmienne poziomu procedury oraz zmienne
statyczne
deklarowane wewnÄ…trz procedury (zmienne lokalne)
Dim Zm1 as Integer
Static Zm4 as Integer
Static deklaruje zmienną, której wartość zachowywana
jest po zakończeniu procedury
zmienne poziomu formy lub modułu
deklarowane w sekcji Declarations modułu lub formy są
dostępne dla wszystkich procedur w obrębie modułu i
zachowują swe wartości przez cały czas działania aplikacji.
Równowa\ne deklaracje Dim lub Private
Dim Zm6 as Boolean
Private Zm7 as Long
zmienne globalne
zmienne deklarowane w sekcji Declarations na
początku dowolnego modułu za pomocą słowa
Public są dostępne we wszystkich innych modułach
w obrębie aplikacji
Public Zm8 as Date
Zalecić mo\na umieszczenie wszystkich zmiennych
globalnych w jednym wybranym module
6
Efekt przesłaniania zmiennych globalnych przez zmienne lokalne
Module1
Public A as String
Form1 Form2
Dim B as Integer
Dim C as Date
Sub Proc1 ()
Sub Proc3 ()
Dim X as Double
Dim D as Integer
Dim Y as Long
Dim X as Long
...
...
End Sub
...
End Sub
Sub Proc2 ()
Static Z as Long
Dim B as Double
...
End Sub
Deklarowanie stałych
wartości powtarzające się w treści programu i nie
zmieniające się w trakcie działania programu
[Public|Private] Const NazwaStałej = wyra\enie
Const c =299792.458
Const c_kwadrat = c * c
Je\eli stała deklarowana jest w sekcji Declarations
modułu to:
Public deklaruje stałą globalną
Private ogranicza zasięg stałej do procedur
znajdujÄ…cych w danym module.
7
Tablice
" Stosowane do zgrupowania zmiennych
" SÄ… zbiorem zmiennych tego samego typu
danych reprezentowanym przez pojedynczÄ…
nazwÄ™
" W celu wybrania pojedynczej składowej
(elementu tablicy) nazwę tablicy uzupełnia się
tzw. indeksem (wskazujÄ…cym pozycjÄ™ w
tablicy)
swobodny dostęp do danych
" Składowe tablicy mogą być wybrane w dowolnej
kolejności i są jednakowo dostępne
" Indeks mo\e być obliczany w trakcie realizacji algorytmu,
a jego wynik decyduje o tym, który element tablicy
zostanie wybrany
NAZWA TABLICY
INDEKS
WARTOŚĆ
Num (0) = 5
5 8 12 18 20
Num(0) Num(1) Num(2) Num(3) Num(4)
Num
8
Wprowadzanie danych do tablicy
Tablica trójwymiarowa o nazwie FR
Tablica jednowymiarowa o Tablica dwuwymiarowa WZN1
nazwie Tab i indeksach 0 do 4 indeksy 0 do 6 oraz 0 do 4 indeksy 0 do 4; 0 do 4; 0 do 3)
4
6
4 TAB(4)
5 3
3 TAB(3)
4
2
2
TAB(2) 3
1
2
1
TAB(1)
1 0
0
TAB(0)
0
0 4
0 1 2 3
1
0 3 4
1 2
2
3
dana WZN1(1,3)
dana
FR(2,3,2)
Dim Tab(4) As String
Public WZN1(6,4) As Integer
Dim FR(4,4,3) As Double
9
DANE
Deklaracje
Dim Numery_ID (20) As Integer
deklaruje tablicę 21 liczb całkowitych (jeśli nie podano dolnej granicy
indeksów to przyjmowana jest wartość równa 0)
Public Komunikaty (0 To 20) As String
deklaruje tablicę globalną 21 elementów typu napisowego (numerowane
od 0 do 20)
Dim Tab (3, 4) As Double
dwuwymiarowa - 20 elementów (elementy numerowane od 0 do 3 i od 0
do 4)
Zapis wyra\eń arytmetycznych i logicznych
Wyra\enie arytmetyczne jest formułą zło\oną z
argumentów oraz operatorów. Argumentami mogą
być stałe, zmienne oraz inne wyra\enia ujęte w
nawiasach
Operatory arytmetyczne:
^ potęgowanie
- zmiana znaku
* / mno\enie, dzielenie
\ dzielenie całkowite
MOD reszta z dzielenia
+ - dodawanie, odejmowanie
10
Przykłady u\ycia operatorów dzielenia
całkowitego oraz funkcji modulo:
7 \ 2 = 3 23 \ 10 = 2
7 Mod 4 = 3 14 Mod 3 = 2
Poprawnie zapisane wyra\enia arytmetyczne:
a + b * 1.23E-4.56
c * ( -d ) + 3.45 ^ ( - 4 )
Przykłady błędnie zapisanych wyra\eń
arytmetycznych:
(n+m)(k+l) opuszczony znak mno\enia
5a-6c opuszczony znak operacji
(5a nie mo\e być nazwą)
x/((a+b)*(c-d) niezgodność nawiasów
Operatory logiczne:
NOT negacja logiczna
AND iloczyn logiczny
OR suma logiczna
XOR nierównowa\ność
IMP implikacja
EQW równowa\ność
Operatory relacyjne:
> < <>
<= >= =
Wynikiem relacji jest jedna z dwóch wartości logicznych (typ
Boolean): Prawda (True) lub Fałsz (False)
Operatory relacyjne mają ni\szy priorytet od operatorów
arytmetycznych i logicznych
11
Standardowe funkcje algebraiczne:
Abs(x) wartość bezwzględna (|x|)
Atn(x) arctangens, wynik w przedziale (-p/2, p/2)
Cos(x) cosinus, argument w radianach
Exp(x) ex
Fix(x) część całkowita wartości x
Int(x) część całkowita wartości x nie większa od x
Log(x) logarytm naturalny x
SGN(x) funkcja signum
(-1 gdy x<0, 0 gdy x=0, 1 gdy x>0)
Rnd wartość przypadkowa z przedziału (0,1)
Sin(x) sinus, argument w radianach
Sqrt(x) pierwiastek kwadratowy, x e" 0
Tan(x) tangens, argument w radianach
Funkcje w module Math wywołanie y=math.abs(x)
Instrukcja podstawienia
Operacja wykonywana za pomocÄ… tej
instrukcji oznacza określenie wartości danej
zmiennej
zmienna = wyra\enie
x = 5.0
suma = x + y
wart = "OK"
12
Przykład: Wyznaczyć maksymalny zasięg rzutu
dane: v0, Ä… x=(v02sin2 Ä…)/g .
Dane typu tekstowego
zmienne tekstowe reprezentowane przez nazwÄ™ zmiennej
stałe tekstowe czyli napisy ujęte w znaki cudzysłowu
Standardowe funkcje tekstowe:
Asc(znak) Kod ASCII znaku
Chr(n) Znak odpowiadający danej wartości kodu ASCII
Date Bie\Ä…ca data w postaci tekstowej
Left(str,n) Wybór n znaków z lewej strony łańcucha str
Len(str) Liczba znaków w łańcuchu tekstowym
Mid(str, start, n) Zwraca n znaków z str począwszy od start
Now Aktualny czas i data
Right(str, n) Wybór n znaków z prawej strony łańcucha
Time Aktualny czas w postaci tekstowej
Timer Zwraca liczbę sekund od północy
Konwersja danych numerycznych i tekstowych
Str(x) Przekształca liczbę x na łańcuch tekstowy
Val(str) Zwraca wartość liczbową, która reprezentuje str
13
Funkcja Format
przekształca wartości liczbowych w ciągi tekstowe z jednoczesnym
formatowaniem wyglÄ…du tego ciÄ…gu
pozwala np.: na zdeklarowanie dokładności wyprowadzanych danych
Format(wyra\enie, wyra\enie formatujÄ…ce)
wyra\enie - dowolne poprawnie określone wyra\enie
przedstawiające wartość liczbową (czas lub datę)
wyra\enie formatujące - format wyświetlania wartości określony
za pomocą znaków specjalnych lub jeden z tzw.
formatów nazwanych (zdefiniowanych przez VB)
(0) oznacza miejsce rezerwowane na cyfrę dziesiętną;
(#) rezerwuje miejsce na cyfrę dziesiętną podobnie jak symbol
"0", ale zera początkowe i zera końcowe w części
ułamkowej nie są wyświetlane
Np. S_x = Format(x, #0.00 )
Przykłady wyra\eń formatujących:
Wynik = Format(459.4, "0000.00 ) ' Wynik: "0459.40
Wynik = Format(459,4, "####.## ) ' Wynik: "459.4
Wynik= Format(Now, h:m:s ) Wynik: "17:4:32
Wynik= Format(Now, d/m/yyyy ) Wynik: "7/2/2000
Wykorzystana w przykładzie funkcja Now zwraca wartość określającą
bie\Ä…cÄ… datÄ™ i godzinÄ™ pobranÄ… z zegara systemowego.
14
Instrukcje warunkowe
pozwalają na zapis algorytmów, w których działania
uwarunkowane są spełnieniem określonych warunków
IF IF
Nie
Nie
Warunek Warunek
THEN
Tak
Tak
THEN ELSE
Instrukcja 1
Instrukcja 1 Instrukcja 2
Instrukcja 2 Instrukcja 3
opis rozgałęzień w algorytmach za pomocą
If...Then...Else
wersja jednowierszowa:
If warunek Then instrukcja1 [Else instrukcja2]
wersja blokowa:
If warunek1 Then
[blok instrukcji 1]
[ElseIf warunek2 Then
[blok instrukcji 2] ]
[Else [blok instrukcji n] ]
End If
15
Ograniczenia zwiÄ…zane z formatowaniem tekstu
instrukcji if
(z uwagi na brak znacznika końca instrukcji )
" instrukcja blokowa If musi być pierwszą instrukcją w
wierszu
" po słowie kluczowym Then w wierszu mo\e występować
tylko komentarz
Klauzule Else i ElseIf sÄ… nieobowiÄ…zkowe
W składni instrukcji If mo\e wystąpić dowolnie wiele klauzul
ElseIf, \adna z nich jednak nie mo\e się pojawić po klauzuli
Else
Przykład
d"1, <
Å„Å‚
xy- 2 dla x y 2
zaprojektować aplikację
ôÅ‚
+ d"1, e"
f(x,y)= x y dla x y 2
òÅ‚
obliczającą wartość funkcji określonej
ôÅ‚2x + y dla x >1
za pomocą następującej formuły:
ół
Private Sub cmdOblicz_Click()
Dim x, y, f As Double ' deklaracja zmiennych
Dim S_fun As String
x = Val(pole_x.Text) ' pobiera i konwertuje
y = Val(pole_y.Text) ' liczby
If x <= 1 Then
If y < 2 Then
f = x * y - 2
Else: f = x + y
End If
Else: f = 2 * x + y
End If
S_fun = Format(f, "#0.00")
pole_f.Caption = S_fun
End Sub
16
Algorytm rozwiązywania równania kwadratowego
Dane: Współczynniki a, b, c równania ax2+bx+c
Wyniki: Pierwiastki równania lub komunikat o braku rozwiązań
krok 1 Je\eli a=0 to wypisz komunikat, \e równanie nie jest
równaniem kwadratowym i zakończ algorytm
krok 2 Oblicz wartość wyró\nika "=b2-4ac
krok 3 Je\eli "<0 to równanie nie ma pierwiastków
rzeczywistych i zakończ algorytm
krok 4 Je\eli "=0, to oblicz oba pierwiastki z tego samego
wzoru: x1=x2= -b/a, wypisz ich zawartość i zakończ
algorytm
krok 5 {">0} oblicz pierwiastki x1= (-b-"")/(2a) oraz x2= (-
b+"")/(2a), wypisz ich zawartość i zakończ algorytm
Check Box - Pole Wyboru
- wskazuje, czy pewna opcja ma być włączona, czy wyłączona
- pola te działają niezale\nie od siebie i u\ytkownik mo\e
wybrać dowolną liczbę pól
Właściwości Pola wyboru:
" Caption tekst wypisywany obok pola
" Value wskazuje czy pole zostało wybrane
wartości:
wybrane - 1 lub vbChecked
nie wybrane - 0 lub vbunchecked
niedostępne - 2 lub vbGrayed
Zdarzenia rozpoznawane:
" Click kliknięcie myszą (zawartość pola zmieniana
jest automatycznie)
17
Option Button - Przycisk opcji
" pozwalają zaprogramować zestaw dwóch lub więcej opcji, z
których mo\na wybrać tylko jedną
" powinny zawsze działać w grupie
" wybór jednej opcji wyłącza wszystkie pozostałe opcje grupy
Grupowanie - przez przeciągnięcie ich do wnętrza kontenera
- Frame (Ramka), PictureBox (Pole Obrazu) lub forma
" Właściwości przycisków opcji (Option Button):
" Caption tekst wypisywany obok przycisku,
" Value wskazuje na wybranie przycisku (Prawda -True)
" Rozpoznawane zdarzenia:
- Click kliknięcie myszą, własność Value jest zmienia
automatycznie przez system
Tablice komponentów
" grupujÄ… komponenty wykonujÄ…ce podobne funkcje (np.
przyciski opcji)
" funkcje definiowane dla pojedynczego komponentu sÄ…
dostępne dla elementów tablicy wskazywanych za
pomocą indeksów
" definiowanie odpowiednich procedur kompleksowo dla
całej tablicy
Tworzenie tablic komponentów :
" Tworzony jest pojedynczy komponent i
definiowane są jego właściwości a reszta
kopiowana
" tworzone sÄ… indywidualnie komponenty o tych
samych nazwach
18
Wyszukiwarka
Podobne podstrony:
inf rak mutginf kolo1inf stos) 4Inf Lab07inf 13 gim jezyk niemieckiinf dodatkpodstawowe infinf lista2inf stos w 4inf GSiAKOL2b inf 2015 2016dzInf ISS1?5 INF Fizyka6 Projektowanie Systemˇw Inf encrwięcej podobnych podstron