Upload
dinhmien
View
224
Download
0
Embed Size (px)
Citation preview
Podstawy InformatykiPodstawy Informatyki
MichałMichał PazdanowskiPazdanowski
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 22
Etapy przygotowania obliczeńEtapy przygotowania obliczeń
Sformułowanie problemuSformułowanie problemuPrzygotowanie algorytmu rozwiązaniaPrzygotowanie algorytmu rozwiązaniaZapis algorytmu Zapis algorytmu →→ schemat blokowyschemat blokowyKodowanie algorytmuKodowanie algorytmuTestowanieTestowanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 33
Sformułowanie problemuSformułowanie problemu
PrecyzyjnyPrecyzyjny matematyczny opis zagadnienia:matematyczny opis zagadnienia:co chcemy uzyskaćco chcemy uzyskaćtok postępowania prowadzącego do wynikutok postępowania prowadzącego do wynikuniezbędne daneniezbędne daneopracowanie wynikówopracowanie wyników
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 44
AlgorytmAlgorytm
skończony ciąg operacji elementarnychskończony ciąg operacji elementarnychdotyczy klasy problemów podobnychdotyczy klasy problemów podobnychzależy od metody rozwiązania problemuzależy od metody rozwiązania problemu
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 55
AlgorytmAlgorytm
poprawnypoprawnyprecyzyjnyprecyzyjnyprzejrzystyprzejrzystyefektywnyefektywnywykorzystujący:wykorzystujący:–– biblioteki procedur standardowychbiblioteki procedur standardowych–– możliwości komputera możliwości komputera →→ wieloprocesorowośćwieloprocesorowość
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 66
Zapis algorytmuZapis algorytmu
język potocznyjęzyk potocznyjęzyk matematycznyjęzyk matematycznyschemat blokowyschemat blokowyjęzyki algorytmicznejęzyki algorytmiczne
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 77
Klasy czynnościKlasy czynności
arytmetycznearytmetycznelogicznelogiczneorganizacyjneorganizacyjnewejściawejściawyjściawyjścia
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 88
Schemat blokowy i kodowanieSchemat blokowy i kodowanie
etap pomocniczyetap pomocniczyułatwienie kodowaniaułatwienie kodowaniakontrola poprawności:kontrola poprawności:–– algorytmualgorytmu–– programuprogramu
standard językastandard językakompilatorkompilatordokumentacjadokumentacja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 99
Schemat blokowySchemat blokowyPN PN –– 75/E 75/E -- 0122601226
Sieć blokówSieć bloków
TakTak NieNie??++--*/*/ We/We/WyWy STOPSTOP
STARTSTART
11
11
arytmetycznearytmetyczne logicznelogiczne wejściewejściewyjściewyjście
pomocniczepomocnicze
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1010
Schemat blokowySchemat blokowy
liniowyliniowy iteracyjnyiteracyjny rozgałęzionyrozgałęziony złożonyzłożony
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1111
TestowanieTestowanie
błędy:błędy:–– formalne formalne →→ niezgodność ze standardem niezgodność ze standardem –– algorytmu algorytmu →→ problem inny niż zadanyproblem inny niż zadany–– wykonania wykonania →→ błędne danebłędne dane
eliminacja:eliminacja:–– formalne formalne →→ kompilatorkompilator–– algorytmu algorytmu →→ testytesty–– wykonania wykonania →→ programowanie defensywneprogramowanie defensywne
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1212
Języki programowaniaJęzyki programowania
liniowe liniowe →→ BASICBASICproceduralne proceduralne →→ FORTRANFORTRANz grupowaniem danych z grupowaniem danych →→ PASCAL, CPASCAL, Cobiektowo zorientowane obiektowo zorientowane →→ C++C++obiektowe obiektowe → → Visual BasicVisual Basic
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1313
Programowanie obiektoweProgramowanie obiektowe
StrukturaStruktura →→ tablica uporządkowana przez tablica uporządkowana przez umieszczenie jej elementów w nazwanych umieszczenie jej elementów w nazwanych polach,polach,
KlasaKlasa →→ struktura wraz z zestawem operatorów i struktura wraz z zestawem operatorów i funkcji dostosowanych do jej obsługi,funkcji dostosowanych do jej obsługi,
ObiektObiekt →→ zmienna utworzona zgodnie z opisem zmienna utworzona zgodnie z opisem podanym przez klasę,podanym przez klasę,
MetodaMetoda →→ funkcja przeznaczona do obsługi danej funkcja przeznaczona do obsługi danej klasy obiektów,klasy obiektów,
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1414
Visual BasicVisual Basic
Zastosowanie:Zastosowanie:makroinstrukcje makroinstrukcje komponentów pakietukomponentów pakietuMSOfficeMSOffice, , nietypowe funkcje nietypowe funkcje arkuszowearkuszowe MSExcelMSExcel,,proste problemy proste problemy obliczeniowe obliczeniowe
Zalety:Zalety:dostępność,dostępność,użyteczność,użyteczność,otoczenie programowe,otoczenie programowe,prostota języka,prostota języka,
Wady:Wady:??
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1515
Visual BasicVisual Basic
wykonywanie działań wykonywanie działań →→ kodkod Visual BasicVisual Basickod kod →→ przechowywany w przechowywany w modułachmodułach::–– wraz z arkuszami wraz z arkuszami .XLS.XLS,,–– edycja przy pomocy edytoraedycja przy pomocy edytora VisualBasicVisualBasic,,
moduł moduł →→ zawiera zawiera funkcjefunkcje i i proceduryprocedury
SubSub Test()Test()Iloczyn = 2*6Iloczyn = 2*6MsgBoxMsgBox „Iloczyn” & Iloczyn„Iloczyn” & Iloczyn
End SubEnd Sub
FuntionFuntion Suma(A1,A2) As Suma(A1,A2) As DoubleDoubleSuma=Suma=SqrSqr(A1*A1+A2*A2)(A1*A1+A2*A2)
End FunctionEnd Function
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1616
Visual BasicVisual Basicoperacje na operacje na obiektachobiektach–– skoroszyty, arkusze, zakresy, wykresyskoroszyty, arkusze, zakresy, wykresy
obiekty identyczne obiekty identyczne →→ kolekcje kolekcje (obiekty)(obiekty)–– WorksheetsWorksheets → → wszystkie arkusze skoroszytuwszystkie arkusze skoroszytu–– ChartsCharts → → wszystkie wykresy skoroszytuwszystkie wykresy skoroszytu
obiekty tworzą strukturę hierarchiczną obiekty tworzą strukturę hierarchiczną →→ klasyklasyApplicationApplication ((excelexcel))
WorkbookWorkbook (skoroszyt)(skoroszyt)WorksheetWorksheet (arkusz)(arkusz)
RangeRange (zakres)(zakres)Pivot TablePivot Table (tabela przestawna)(tabela przestawna)
Chart Chart (wykres)(wykres)CommandCommand Bar Bar (pasek narzędzi)(pasek narzędzi)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1717
Visual BasicVisual Basic
obiekty wyższego rzędu obiekty wyższego rzędu →→ kontenerykontenery obiektów obiektów niższego rzędu:niższego rzędu:ApplicationApplication..WorkbooksWorkbooks(1)(1)ApplicationApplication..WorkbooksWorkbooks(1)(1)..WorksheetsWorksheets(1)(1)ApplicationApplication..WorkbooksWorkbooks(1)(1)..WorksheetsWorksheets(1)(1)..CellsCells(2,2)(2,2)..ValueValue
lokalizacja obiektu w hierarchii lokalizacja obiektu w hierarchii → → ścieżkaścieżka
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1818
Visual BasicVisual Basic
cechy obiektów cechy obiektów → → właściwościwłaściwościodwołanie: nazwa_obiektuodwołanie: nazwa_obiektu właściwośćwłaściwość
działania na obiekcie działania na obiekcie → → metodymetodyodwołanie: nazwa_obiektuodwołanie: nazwa_obiektu metodametoda
standardowe konstrukcje języków standardowe konstrukcje języków programowaniaprogramowania
tablice, pętle, struktury tablice, pętle, struktury
..
..
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 1919
Visual BasicVisual Basic
Lista obiektów, ich metod i właściwości:Lista obiektów, ich metod i właściwości:Excel Excel →→ ToolsTools →→ MacroMacro →→ VisualBasic VisualBasic EditorEditorVisualBasic EditorVisualBasic Editor →→ ViewView →→ Object Object BrowserBrowserwybrać obiekt wybrać obiekt →→ ExcelExcel lublub VisualBasicVisualBasic(VBA)(VBA)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2020
Typy instrukcjiTypy instrukcji
arytmetyczna arytmetyczna sterująca sterująca →→ zmiana sekwencji wykonaniazmiana sekwencji wykonaniawejścia/wyjścia wejścia/wyjścia →→ przesłanie z/do pamięciprzesłanie z/do pamięciodwołanie do podprogramuodwołanie do podprogramudeklaracja deklaracja →→ informacja dla kompilatorainformacja dla kompilatora
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2121
Symbole językaSymbole języka
literylitery →→ A … ZA … Zcyfrycyfry →→ 0 … 90 … 9znaki specjalne:znaki specjalne:
++ -- // ** ^̂
..
==( )( ) < >< >
,, ““ ‘‘ !! [ ][ ]&&
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2222
LiterałyLiterały
bajt:bajt: 22 12 12 3232całkowite:całkowite: --77 2121 121121rzeczywiste:rzeczywiste: 17.123 23.7E+217.123 23.7E+2podwójnej precyzji:podwójnej precyzji: 15.3D+0415.3D+04logiczne:logiczne: TRUE FALSETRUE FALSEtekstowe:tekstowe: ”ALA MA ASA””ALA MA ASA”
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2323
ZakresZakres
BYTEBYTEINTEGERINTEGERLONGLONGSINGLE SINGLE --/+/+DOUBLE DOUBLE --/+/+
21474836472147483647--2147483648 2147483648 ÷÷--32768 32768 ÷÷ 3276732767
00 ÷÷ 255255
4.944.94*10 *10 ÷÷ 1.79*101.79*101.1.4040*10 *10 ÷÷ 3.40*103.40*10--4545 3838
--332424 330808
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2424
ZakresZakres
1.1.4040*10*10--4545--3.40*103.40*103838 3.40*103.40*103838--1.1.4040*10*10--4545
0 !0 !
00
4.944.94*10*10--324324--1.791.79*10*10330808 1.791.79*10*10330808--4.944.94*10*10--324324
0 !0 !
00
SINGLESINGLE
DOUBLEDOUBLE
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2525
Zmienne prosteZmienne proste
identyfikacja identyfikacja →→ nazwanazwatyp typ →→ zakres zmiennościzakres zmiennoścideklaracja typu deklaracja typu →→ określenie typuokreślenie typu
DimDim A A AsAs IntegerIntegerDimDim J J AsAs DoubleDoubleDimDim TT TT AsAs BooleanBooleanDim Dim MsgTxtMsgTxt AsAs StringStringDim Dim ThetaTheta AsAs VariantVariant
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2626
Zmienne indeksowaneZmienne indeksowane
uporządkowany zbiór elementów uporządkowany zbiór elementów →→ tablicatablicauporządkowanie uporządkowanie →→ indeksyindeksyzmienna indeksowana zmienna indeksowana →→ element tablicyelement tablicydeklaracja deklaracja →→ typ, rozmiary i zakres indeksówtyp, rozmiary i zakres indeksówindeks indeks →→ stała, zmienna, wyrażenie całkowitestała, zmienna, wyrażenie całkowite
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2727
Zmienne indeksowaneZmienne indeksowane
DEKLARACJEDEKLARACJEDimDim A (A (1 to 101 to 10, , 1 to 121 to 12) ) AsAs IntegerInteger
DimDim B (B (--1 to 51 to 5)) As SingleAs Single
11
1010
11 1212
--11
55
AA
BB
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2828
Zmienne indeksowaneZmienne indeksowane
ODWOŁANIEODWOŁANIEA(A(II, , JJ)) B(B(--11))
A(A(3*C+J3*C+J, , 66--4*W4*W) ) →→ CC, , JJ, , WW typutypu IntegerInteger lublub LongLongpamiętanie w porządku leksykograficznym,pamiętanie w porządku leksykograficznym,maksimum 60 wskaźników,maksimum 60 wskaźników,numeracja elementów automatycznie od 0numeracja elementów automatycznie od 0
numer kolumnynumer kolumny
numer wierszanumer wiersza
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 2929
Funkcje standardoweFunkcje standardowe
IntInt(X)(X)FixFix(X)(X)
AbsAbs(X)(X)ExpExp(X)(X)Log(X)Log(X)SgnSgn(X)(X)Sin(X)Sin(X)Cos(X)Cos(X)Tan(X)Tan(X)SqrSqr(X)(X)
|x||x|eexx
lnln(x)(x)znakznaksin(x)sin(x)coscos(x)(x)tgtg(x)(x)xx½½
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3030
Funkcje standardoweFunkcje standardowe
ZMIANA TYPUZMIANA TYPUCboolCbool(W)(W)CbyteCbyte(W)(W)CDblCDbl(W)(W)CSngCSng(W)(W)CIntCInt(W)(W)CLngCLng(W)(W)CStrCStr(W)(W)CVarCVar(W)(W)
TEKSTOWETEKSTOWEChrChr(W)(W)LeftLeft((txttxt,L),L)RightRight((txttxt,L),L)Len(Len(txttxt))LtrimLtrim((txttxt))RtrimRtrim((txttxt))TrimTrim((txttxt))MidMid((txttxt,P,L),P,L)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3131
Wyrażenie arytmetyczneWyrażenie arytmetyczne
proste proste →→ stała, zmienna, funkcjastała, zmienna, funkcjazłożone złożone →→ proste z nawiasami i operatoramiproste z nawiasami i operatoramikolejność wyznaczania wartości:kolejność wyznaczania wartości:–– wyrażenia składowe, funkcjewyrażenia składowe, funkcje–– operacje:operacje:
»» ^̂ →→ potęgowanie,potęgowanie,»» * /* / →→ mnożenie, dzielenie,mnożenie, dzielenie,»» + + -- →→ dodawanie, odejmowanie.dodawanie, odejmowanie.
–– przy równym priorytecie przy równym priorytecie →→ od od lewejlewej do do prawejprawejzmiana kolejności zmiana kolejności →→ nawiasy nawiasy ( )( )
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3232
Wyrażenie arytmetyczneWyrażenie arytmetyczneKolejność obliczania wartościKolejność obliczania wartości
log(log(XX))++ASAS**4.14.1--X12X12^̂22//2.1E2.1E--1111++((3.143.14++YY))//0.30.311 223344
55 667788
99
X = A/B*CX = A/B*C →→
X = A/(B*C)X = A/(B*C)→→ szybciej (1 dzielenie)szybciej (1 dzielenie)X = A/B/CX = A/B/C →→ wolniej (2 dzielenia)wolniej (2 dzielenia)
AABB
**CC
AABB**CC
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3333
Wyrażenie arytmetyczneWyrażenie arytmetycznetyptyp
przykładyprzykłady
II^̂+ + -- / */ *
RR DPDPII RR DPDPRR RR DPDP
DPDP DPDP DPDP
IIRR
DPDP
AA BB AA^̂BBIIRR
DPDP
IIRR
IIRR
IIRR
IIRR
RRRR
DPDPDPDP
2 W SIN(P) A2 W SIN(P) A--7.3 5.77.3 5.7**ZZ^̂3 (X3 (X--Y)Y)//(V(V++W)W)^̂33
AA//BB**CC →→ AABB
**CC AABB**CC
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3434
Wyrażenie logiczneWyrażenie logiczneproste proste →→ stała, zmienna i funkcja logiczna, relacjastała, zmienna i funkcja logiczna, relacjazłożone złożone →→ proste z nawiasami i operatoramiproste z nawiasami i operatoramikolejność wyznaczania wartości:kolejność wyznaczania wartości:–– wyrażenia arytmetyczne w relacjachwyrażenia arytmetyczne w relacjach–– operatory relacji, funkcje logiczne, nawiasyoperatory relacji, funkcje logiczne, nawiasy–– NOTNOT →→ negacjenegacje–– ANDAND →→ koniunkcjekoniunkcje–– OROR →→ alternatywyalternatywy–– XORXOR →→ alternatywy wykluczającealternatywy wykluczające–– EQVEQV →→ równoważnościrównoważności–– IMPIMP →→ implikacjeimplikacje
wynik wynik →→ TRUETRUE lub lub FALSEFALSE
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3535
OperatoryOperatory
Logiczne:Logiczne:NOTNOT negacjanegacjaANDAND koniunkcjakoniunkcjaOROR alternatywaalternatywaXORXOR alternatywa alternatywa
wykluczającawykluczającaEQVEQV równoważnośćrównoważnośćIMPIMP implikacjaimplikacja
Relacji:Relacji:== równyrówny<><> różnyróżny
<< mniejszymniejszy<=<= mniejszy lub równymniejszy lub równy>> większywiększy>=>= większy lub równywiększy lub równy
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3636
Wyrażenie logiczneWyrażenie logiczne
PrzykładyPrzykładyDimDim C C As SingleAs Single, D , D As SingleAs Single, X , X As Single, Y As SingleAs Single, Y As SingleDimDim A A AsAs BooleanBoolean, B , B AsAs BooleanBooleanDimDim W1 W1 AsAs BooleanBoolean, W2 , W2 AsAs BooleanBoolean, W3 , W3 AsAs BooleanBoolean
TRUE FALSE C TRUE FALSE C = = DDW1 W1 AND AND W2 W2 OR OR W3W3C C >= >= D D OR OR A A AND AND BB
A A OR OR B B AND NOT AND NOT X X = = YYA A OR OR (B (B AND AND ( ( NOT NOT (X (X == Y)))Y)))
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3737
Wyrażenie logiczneWyrażenie logiczne
Kolejność obliczania wartościKolejność obliczania wartości
NOTNOT I I >> 0 0 ANDAND I + 2 I + 2 >> 0 0 OROR TRUETRUE11 22
443355
6677
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3838
Instrukcja podstawieniaInstrukcja podstawienia
nazwa zmiennejnazwa zmiennej == wyrażenie arytmetycznewyrażenie arytmetycznenazwa zmiennejnazwa zmiennej == wyrażenie logicznewyrażenie logiczne
WW == 71.34571.345ETAETA == ETA+Z*(J+7)*2ETA+Z*(J+7)*2SECSEC == W+SQR(SEC+A)W+SQR(SEC+A)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 3939
Instrukcje sterująceInstrukcje sterujące
zmiana kolejności wykonywania instrukcjizmiana kolejności wykonywania instrukcjietykieta:etykieta:–– zaczyna się od litery, kończy zaczyna się od litery, kończy ::–– od pierwszej kolumnyod pierwszej kolumny–– nie każda instrukcja musi ją miećnie każda instrukcja musi ją mieć
typ:typ:–– bezwarunkowebezwarunkowe–– uwarunkowaneuwarunkowane
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4040
GO TOGO TO
bezwarunkowe GO TObezwarunkowe GO TOGo ToGo To etet… … …… … …
etet::
Go ToGo To alaala… … …… … …Go ToGo To alaala… … …… … …alaala::
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4141
IFIF
logiczne IFlogiczne IFIfIf wyr. log.wyr. log. ThenThen instrinstr.. uwuw..
??TT NN
… … …… … …IfIf A < 0.A < 0. ThenThen A = A = --AA
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4242
IFIF
logiczne IFlogiczne IFIfIf wyr. log.wyr. log. ThenThen… … …… … …ElseElse… … …… … …End IfEnd If
… … …… … …IfIf A > BA > B ThenThen
A = A + 2. * BA = A + 2. * BElseElse
A = A A = A -- 2. * B2. * BEnd IfEnd If
??TT NN
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4343
FORFOR
realizacja cyklu FORrealizacja cyklu FORForFor ii = = w1w1 To To w2w2 Step Step w3w3… … …… … …NextNext
… … …… … …S = 1S = 1For I = 1 To N Step 1For I = 1 To N Step 1
S = S * IS = S * INextNext
??
TT
NN
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4444
DODO
realizacja cyklu DOrealizacja cyklu DODoDo WhileWhile wyr. log.wyr. log.… … …… … …LoopLoop
??
TT
NN
… … …… … …A = 10A = 10B = B = --2020DoDo WhileWhile A > BA > B
A = A +A = A + AbsAbs(B)(B)LoopLoop
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4545
DODO
realizacja cyklu DOrealizacja cyklu DODoDo… … …… … …Loop WhileLoop While wyr. log.wyr. log.
??
TT
NN
… … …… … …A = 10A = 10B = B = --2020DoDo
A = A +A = A + AbsAbs(B)(B)Loop WhileLoop While A > BA > B
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4646
DODO
realizacja cyklu DOrealizacja cyklu DODoDo UntilUntil wyr. log.wyr. log.… … …… … …LoopLoop
??
NN
TT
… … …… … …A = 10A = 10B = B = --2020DoDo UntilUntil A > BA > B
A = A +A = A + AbsAbs(B)(B)LoopLoop
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4747
DODO
realizacja cyklu DOrealizacja cyklu DODoDo… … …… … …Loop UntilLoop Until wyr. log.wyr. log.
??
NN
TT
… … …… … …A = 10A = 10B = B = --2020DoDo
A = A +A = A + AbsAbs(B)(B)Loop UntilLoop Until A > BA > B
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4848
CASECASE
struktura CASEstruktura CASESelect CaseSelect Case wyr.wyr.CaseCase aa… … …… … …CaseCase b to cb to c… … …… … …Case ElseCase Else… … …… … …End SelectEnd Select
… … …… … …Select CaseSelect Case IICaseCase --22
I =I = AbsAbs(I)(I)CaseCase 4 To 64 To 6
I =I = SqrSqr(I)(I)Case ElseCase Else
DebugDebug..PrintPrint IIEnd SelectEnd Select
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 4949
WITHWITH
struktura WITHstruktura WITHWithWith obiektobiekt… … …… … …End WithEnd With
… … …… … …With SelectionWith Selection
Font.Font.BoldBold = TRUE= TRUEFont.Font.ItalicItalic = FALSE= FALSEWrapTextWrapText = FALSE= FALSE
End WithEnd With
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5050
OnOn ErrorError
obsługa błędówobsługa błędówOnOn Error GoToError GoTo etet… … …… … …etet::
OnOn ErrorError ResumeResume NextNext
OnOn Error GoToError GoTo 00
… … …… … …OnOn Error GoTo ErrorsError GoTo Errors… … …… … …Exit SubExit SubErrorsErrors::
MsgBoxMsgBox ”Błąd”, _”Błąd”, _vbOKOnlyvbOKOnly,”Błąd _ ,”Błąd _ wykonania”wykonania”
End SubEnd Sub
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5151
Wymiana informacjiWymiana informacji
komórki arkuszakomórki arkuszaplikiplikifunkcjefunkcje InputBoxInputBox,, MsgBoxMsgBoxformularze użytkownikaformularze użytkownika
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5252
FormatFormat
funkcja FORMATfunkcja FORMATFormatFormat ((ww,”,”ss”)”)wynik wynik →→ łańcuch łańcuch znaków tekstowychznaków tekstowych
ww -- wyrażenie do wyrażenie do sformatowaniasformatowania
ss -- specyfikacjaspecyfikacjaformatu:formatu:»» opis polaopis pola»» znaki znaki , . # 0 %, . # 0 %
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5353
FormatFormat,, -- separator tysięcyseparator tysięcy.. -- separator części dziesiętnejseparator części dziesiętnej## -- pozycje opcjonalnepozycje opcjonalne00 -- pozycje obligatoryjnepozycje obligatoryjne%%-- wynik w procentachwynik w procentach
Format(4,”0.00%”)Format(4,”0.00%”)Format(3432.211,”#,##0.00”)Format(3432.211,”#,##0.00”)Format(227.1,”#0.00”)Format(227.1,”#0.00”)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5454
FormatFormat
KK = = --12451245 , , LL = = 12 12 , , R1R1 == --4233.289784233.28978
TxtTxt = Format(= Format(KK,”,”#,##0.00#,##0.00”)”)TxtTxt = = --1,245.001,245.00
TxtTxt = Format(= Format(LL,”,”#,##0.0%#,##0.0%”)”)TxtTxt = = 1,200.0%1,200.0%
TxtTxt = Format(= Format(R1R1,”,”#0.00#0.00”)”)TxtTxt = = --4233.294233.29
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5555
Komórki arkuszaKomórki arkusza
CellsCells((II,,JJ).).ValueValue
… … …… … …X =X = CellsCells(8,2).(8,2).ValueValueCellsCells(5,1).(5,1).ValueValue = Y= Y… … …… … …
II
JJ
CellsCells(I,J)(I,J)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5656
PlikiPliki
→→
112233
5544
66......
REKORDYREKORDY
→→
112233
5544
66......
ZNA
CZN
IK D
OST
ĘPU
ZNA
CZN
IK D
OST
ĘPU
ZNA
CZN
IK D
OST
ĘPU
ZNA
CZN
IK D
OST
ĘPU
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5757
PlikiPliki
zapis:zapis:–– sformatowanysformatowany–– niesformatowanyniesformatowany
dostęp:dostęp:–– sekwencyjnysekwencyjny–– bezpośredniego dostępubezpośredniego dostępu
rekord:rekord:–– stałej długościstałej długości–– zmiennej długościzmiennej długości
operacje:operacje:–– otwarcieotwarcie–– zamknięciezamknięcie–– przewijanieprzewijanie–– zapis/odczytzapis/odczyt
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5858
OtwarcieOtwarcieOpenOpen ścieżka ścieżka For For trybtryb Access Access dostępdostęp AsAs ##numer numer
LenLen rekordrekord
ścieżkaścieżka -- nazwa pliku z pełną ścieżką dostępunazwa pliku z pełną ścieżką dostęputrybtryb -- tryb pracytryb pracy
AppendAppend//BinaryBinary//InputInput//OutputOutput//RandomRandomdostępdostęp -- dozwolone operacjedozwolone operacje
ReadRead//Write Read WriteWrite Read Writenumernumer -- numer urządzenia (od numer urządzenia (od 11 do do 512512))rekordrekord -- długość rekordu w bajtachdługość rekordu w bajtach
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 5959
ZamknięcieZamknięcie
CloseClose ##numernumer
numernumer -- numer urządzenia wejścia/wyjścianumer urządzenia wejścia/wyjścia
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6060
Instrukcje we/wyInstrukcje we/wy
wejściewejścieInputInput ##pp,, llwyjściewyjściePrintPrint ##pp,, llWriteWrite ##pp,, ll
pp numer pliku numer pliku wejścia/wyjściawejścia/wyjścia
ll lista wejścia/wyjścialista wejścia/wyjściaw1w1,, w2w2,, w3w3,, ......
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6161
Instrukcje we/wyInstrukcje we/wy
PrzykładPrzykładDim MsgTxtDim MsgTxt AsAs String String DimDim Liczba AsLiczba As LongLongInputInput #4,#4, MsgTxtMsgTxt, Liczba, LiczbaPrintPrint #2,#2, MsgTxtMsgTxt,, MsgTxtMsgTxtWriteWrite #5, Liczba#5, LiczbaWriteWrite #6, ”Ala ma kota”#6, ”Ala ma kota”
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6262
PlikiPliki
PrzykładPrzykład… … …… … …OpenOpen ”Plik” For”Plik” For OutputOutput As #1) As #1) For I=1 To 100For I=1 To 100
WriteWrite #1 A(I)#1 A(I)NextNextCloseClose #1#1… … …… … …
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6363
Funkcje we/wyFunkcje we/wy
InputBoxInputBox(”(”OpisOpis”,””,”NagłówekNagłówek”,”,TypeType:= #:= #))
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6464
Funkcje we/wyFunkcje we/wy
Typ (Typ (##):):00 -- formuła MSformuła MS--ExcelExcel11 -- liczbaliczba22 -- łańcuch znakówłańcuch znaków44 -- stała logiczna (stała logiczna (TrueTrue lublub FalseFalse))88 -- zakres komórek (obiektzakres komórek (obiekt RangeRange))
1616 -- wartość błędna (np. wartość błędna (np. #N/A#N/A))6464 -- tablica wartościtablica wartości
Dopuszcza się sumowanie powyższych wartości.Dopuszcza się sumowanie powyższych wartości.
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6565
Funkcje we/wyFunkcje we/wy
MsgBoxMsgBox(”(”TekstTekst”,”,PrzyciskiPrzyciski,”,”NagłówekNagłówek”)”)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6666
Funkcje we/wyFunkcje we/wy
Przyciski =Przyciski =00
11
22
33
44
55
Przyciski =Przyciski =1616
3232
4848
6464
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6767
Formularze użytkownikaFormularze użytkownika
formularz użytkownikaformularz użytkownikaformantyformanty ActiveActive--XXobsługa zdarzeńobsługa zdarzeńprocedury użytkownika (typuprocedury użytkownika (typu PrivatePrivate))
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6868
Formularz użytkownikaFormularz użytkownika
UserFormUserForm##metody:metody:–– CopyCopy–– CutCut–– ShowShow–– HideHide–– LoadLoad–– UnloadUnload
własności:własności:–– CaptionCaption–– EnabledEnabled–– VisibleVisible–– HeightHeight–– WidthWidth–– LeftLeft–– TopTop
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 6969
Formularz użytkownikaFormularz użytkownika
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycja,pozycja,przewijanieprzewijanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7070
FormantyFormanty ActiveActive--XX
LabelLabel##zdarzenia:zdarzenia:–– ClickClick–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7171
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7272
FormantyFormanty ActiveActive--XX
TextBoxTextBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– TextLengthTextLength–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7373
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycja,pozycja,przewijanieprzewijanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7474
FormantyFormanty ActiveActive--XX
ComboBoxComboBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– ColumnColumn–– EnabledEnabled–– FontFont–– ListList–– TextAlignTextAlign–– TextLengthTextLength–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7575
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7676
FormantyFormanty ActiveActive--XX
ListBoxListBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled–– FontFont–– ListList–– TextAlignTextAlign–– TextLenthTextLenth–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7777
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7878
FormantyFormanty ActiveActive--XX
ToggleButtonToggleButton##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 7979
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8080
FormantyFormanty ActiveActive--XX
CommandButtonCommandButton##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– EnabledEnabled–– FontFont
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8181
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8282
FormantyFormanty ActiveActive--XX
FrameFrame##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– ConrolsConrols–– EnabledEnabled–– FontFont
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8383
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycja,pozycja,przewijanieprzewijanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8484
FormantyFormanty ActiveActive--XX
MultiPageMultiPage##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled–– FontFont–– PagesPages–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8585
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,pozycja,pozycja,zakładkizakładki
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8686
FormantyFormanty ActiveActive--XX
ScrollBarScrollBar##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– ScrollScroll
własności:własności:–– DelayDelay–– EnabledEnabled–– MaxMax–– MinMin–– SmallChangeSmallChange–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8787
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,różne,różne,pozycja,pozycja,przewijanieprzewijanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8888
FormantyFormanty ActiveActive--XX
SpinButtonSpinButton##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– SpinDownSpinDown–– SpinUpSpinUp
własności:własności:–– DelayDelay–– EnabledEnabled–– MaxMax–– MinMin–– SmallChangeSmallChange–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 8989
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9090
FormantyFormanty ActiveActive--XX
ImageImage##zdarzenia:zdarzenia:–– ClickClick–– DblClickDblClick–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9191
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,różne,różne,obrazek,obrazek,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9292
FormantyFormanty ActiveActive--XX
RefEditRefEdit##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CancelCancel–– DefaultDefault–– EnabledEnabled–– FontFont–– HeightHeight–– WidthWidth–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9393
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycja,pozycja,przewijanieprzewijanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9494
FormantyFormanty ActiveActive--XX
CheckBoxCheckBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– AlignmentAlignment–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9595
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9696
FormantyFormanty ActiveActive--XX
OptionButtonOptionButton##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– AlignmentAlignment–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– ValueValue
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9797
FormantyFormanty ActiveActive--XX
Lista własności formularza Lista własności formularza według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9898
Formularze użytkownikaFormularze użytkownikaPrzykładPrzykład
… … …… … …UserForm1.ShowUserForm1.ShowX0 = UserForm1.TextBox1.ValueX0 = UserForm1.TextBox1.ValueY0 = UserForm1.TextBox2.ValueY0 = UserForm1.TextBox2.ValueR = UserForm1.TextBox3.ValueR = UserForm1.TextBox3.ValueN = UserForm1.TextBox4.ValueN = UserForm1.TextBox4.Value… … …… … …
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 9999
Formularze użytkownikaFormularze użytkownika
PrzykładPrzykładPrivate Sub CommandButton1_Click()Private Sub CommandButton1_Click()
If Not IsNumeric(TextBox1.Value) Then TextBox1.Value = If Not IsNumeric(TextBox1.Value) Then TextBox1.Value = ””20200”0”If Not IsNumeric(TextBox2.Value) Then TextBox2.Value = If Not IsNumeric(TextBox2.Value) Then TextBox2.Value = ””20200”0”If Not IsNumeric(TextBox3.Value) Then TextBox3.Value = If Not IsNumeric(TextBox3.Value) Then TextBox3.Value = ””1010””If Not IsNumeric(TextBox4.Value) Then TextBox4.Value = If Not IsNumeric(TextBox4.Value) Then TextBox4.Value = ””33””UserForm4.HideUserForm4.Hide
End SubEnd Sub
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 100100
Wybrane metodyWybrane metodyRangeRange.Sort(.Sort(Klucz1Klucz1, , Porządek1Porządek1, , Klucz2Klucz2, , TypTyp, ,
Porządek2Porządek2, , Klucz3Klucz3, , Porządek3Porządek3, , NagłówekNagłówek, , RozmiarRozmiar, , OrientacjaOrientacja))
KluczKlucz -- podstawa sortowania (wiersz lub kolumna)podstawa sortowania (wiersz lub kolumna)PorządekPorządek -- kolejność sortowania (kolejność sortowania (xlAscendingxlAscending lublub
xlDescendingxlDescending))TypTyp -- tylko dla tabel przestawnychtylko dla tabel przestawnychNagłówekNagłówek -- czy jest nagłówek (czy jest nagłówek (xlYesxlYes,, xlNoxlNo,, xlGuessxlGuess))RozmiarRozmiar -- rozróżniać duże litery (rozróżniać duże litery (TrueTrue,, FalseFalse))OrientacjaOrientacja -- kierunek sortowania (kierunek sortowania (xlSortRowsxlSortRows,,
xlSortColumnsxlSortColumns))
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 101101
Wybrane metodyWybrane metody
ApplicationApplication..FindFileFindFile
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 102102
Wybrane metodyWybrane metody
ApplicationApplication..GetOpenFilenameGetOpenFilename
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 103103
Wybrane metodyWybrane metody
ApplicationApplication..GetOpenFilenameGetOpenFilename((FiltrFiltr, , IndeksIndeks, , TytułTytuł, , WieleWiele))
FiltrFiltr -- kryterium wyboru plików (kryterium wyboru plików (””All FilesAll Files (*.*), (*.*), *.*”*.*”))
IndeksIndeks -- wskaźnik do kryteriów wyboru plików wskaźnik do kryteriów wyboru plików (gdy więcej niż jedno)(gdy więcej niż jedno)
TytułTytuł -- nagłówek okna dialogu (nagłówek okna dialogu (OpenOpen))WieleWiele -- możliwość wyboru wielu plików (możliwość wyboru wielu plików (TrueTrue,,
FalseFalse))
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 104104
Wybrane metodyWybrane metody
ApplicationApplication..GetSaveAsFilenameGetSaveAsFilename
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 105105
Wybrane metodyWybrane metody
ApplicationApplication..GetSaveAsFilenameGetSaveAsFilename((NazwaNazwa, , FiltrFiltr, , IndeksIndeks, , TytułTytuł))
NazwaNazwa -- sugerowana nazwa pliku(sugerowana nazwa pliku(”Book1.”Book1.xlsxls””))FiltrFiltr -- kryterium wyboru plików (kryterium wyboru plików (””All FilesAll Files (*.*), (*.*),
*.*”*.*”))IndeksIndeks -- wskaźnik do kryteriów wyboru plików wskaźnik do kryteriów wyboru plików
(gdy więcej niż jedno)(gdy więcej niż jedno)TytułTytuł -- nagłówek okna dialogu (nagłówek okna dialogu (SaveSave))
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 106106
segmentsegment FUNCTIONFUNCTION
FunctionFunction nazwa nazwa ((arg1arg1,, arg2arg2,, ......)) AsAs typ typ … … …… … …nazwa nazwa == wyrażeniewyrażenie… … …… … …
Exit FunctionExit Function… … …… … …nazwa nazwa == wyrażeniewyrażenie… … …… … …
End FunctionEnd Function
Segmenty koduSegmenty kodu
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 107107
nazwa jednoznaczna w modulenazwa jednoznaczna w modulewymiana informacji wymiana informacji →→ parametryparametry ++ nazwanazwazgodność parametrów co do:zgodność parametrów co do:–– liczbyliczby–– typutypu–– kolejnościkolejności
FFunctionunction AbsolAbsol((ArgArg)) As As LongLongIf ArgIf Arg >= 0 >= 0 ThenThen
AbsolAbsol = = ArgArgElseElse
AbsolAbsol = = --ArgArgEnd IfEnd If
EEnd Functionnd FunctionWabsWabs==AbsolAbsol(W)(W)
nagłóweknagłówek
wywołaniewywołanie
podstawieniepodstawienie
podstawieniepodstawienie
FunkcjaFunkcja
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 108108
segment SUBROUTINEsegment SUBROUTINE
SubSub nazwa nazwa ((arg1arg1,, arg2arg2,, ......) ) … … …… … …
Exit SubExit Sub… … …… … …
End SubEnd Sub
Segmenty koduSegmenty kodu
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 109109
ProceduraProcedura
nazwa jednoznaczna w modulenazwa jednoznaczna w modulewymiana informacji wymiana informacji →→ parametryparametryzgodność parametrów co do:zgodność parametrów co do:–– liczbyliczby–– typutypu–– kolejnościkolejności
SSubub QuadQuad((XX,,YY))Y = X*X*X*XY = X*X*X*X
EEnd Subnd Sub
CCallall QuadQuad((WW,,W4W4))DebugDebug..PrintPrint W4W4
nagłóweknagłówek
wywołaniewywołanie
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 110110
ExcelExcel ObjectsObjects →→ obiekty Excelaobiekty ExcelaSheet1Sheet1Sheet2Sheet2… … …… … …
FormsForms →→ dialogi użytkownikadialogi użytkownikaDialog1Dialog1Dialog2Dialog2… … …… … …
ModulesModules →→ funkcje i proceduryfunkcje i proceduryModule1Module1Module2Module2… … …… … …
Struktura projektuStruktura projektu
procedury obsługi zdarzeń procedury obsługi zdarzeń na arkuszachna arkuszach
procedury obsługi zdarzeń procedury obsługi zdarzeń w dialogach użytkownikaw dialogach użytkownika
funkcje i procedury funkcje i procedury użytkownika użytkownika
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 111111
Struktura projektuStruktura projektu
Obiekty Excela:Obiekty Excela:prywatne procedury obsługi zdarzeń prywatne procedury obsługi zdarzeń na arkuszach i skoroszyciena arkuszach i skoroszycie
Formularze użytkownika:Formularze użytkownika:prywatne procedury obsługi zdarzeń prywatne procedury obsługi zdarzeń na formularzach użytkownikana formularzach użytkownika
Moduły:Moduły:pozostałe procedurypozostałe procedury
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 112112
Struktura modułuStruktura modułu
opcjeopcjedeklaracje typudeklaracje typuzmiennych modułuzmiennych modułusegmentysegmenty FunctionFunctiondeklaracje typu zmiennych deklaracje typu zmiennych lokalnychlokalnychkod funkcjikod funkcji
segmentysegmenty SubSubdeklaracje typu zmiennych deklaracje typu zmiennych lokalnychlokalnychkod procedurkod procedur
Option ExplicitOption ExplicitOption BaseOption Base 00DimDim X asX as BooleanBoolean… … …… … …SubSub Ala(X)Ala(X)DimDim Y AsY As BooleanBoolean… … …… … …FunctionFunction Eta(X) AsEta(X) As LongLong
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 113113
GrafikaGrafika
XX
YY
(0,0)(0,0)
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 114114
Grafika Grafika -- kolekcjakolekcja ShapesShapes
krzywakrzywa BezieraBezieraAddCurveAddCurve macierzmacierz
X1X1 Y1Y1
X2X2 Y2Y2
X3X3 Y3Y3
X4X4 Y4Y4
XX
YY11
22
33
44
… … …… … …DimDim A (1 to 4, 1 to 2) As SingleA (1 to 4, 1 to 2) As SingleA(1,1) = X1A(1,1) = X1A(1,2) = Y1A(1,2) = Y1… … …… … …A(4,2) = Y4A(4,2) = Y4SheetsSheets(1).(1).ShapesShapes..AddCurveAddCurve AA… … …… … …
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 115115
Grafika Grafika -- kolekcjakolekcja ShapesShapes
łamanałamanaAddPolylineAddPolyline macierzmacierz
… … …… … …DimDim A (1 to 5, 1 to 2) As SingleA (1 to 5, 1 to 2) As SingleA(1,1) = X1A(1,1) = X1A(1,2) = Y1A(1,2) = Y1… … …… … …A(5,2) = Y5A(5,2) = Y5SheetsSheets(1).(1).ShapesShapes..AddPolylineAddPolyline AA… … …… … …
XX
YY11
22
33
44
55
X1X1 Y1Y1
X2X2 Y2Y2
X3X3 Y3Y3
X4X4 Y4Y4
X5X5 Y5Y5
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 116116
Grafika Grafika -- kolekcjakolekcja ShapesShapes
odcinekodcinekAddLineAddLine x1x1,,y1y1,,x2x2,,y2y2
XX
YY11
22
… … …… … …xpoczxpocz = X1= X1ypoczypocz = Y1= Y1xkoncxkonc = X2= X2ykoncykonc = Y2= Y2SheetsSheets(1).(1).ShapesShapes..AddLine AddLine
xpoczxpocz, , ypoczypocz, , xkoncxkonc, , ykoncykonc… … …… … …
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 117117
Grafika Grafika -- kolekcjakolekcja ShapesShapes
etykietaetykietaAddLabelAddLabel oo,,xx,,yy,,ww,,hh
… … …… … …orient = 1orient = 1x = X1x = X1y = Y1y = Y1w = 100w = 100h = 30h = 30SheetsSheets(1).(1).ShapesShapes..AddLabelAddLabel
orient, x, y, w, horient, x, y, w, h… … …… … …
XX
YY
11
hh
ww
oo –– orientacja (1 do 6)orientacja (1 do 6)ww –– szerokośćszerokośćhh –– wysokośćwysokość
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 118118
Grafika Grafika -- kolekcjakolekcja ShapesShapes
okno tekstoweokno tekstoweAddTextboxAddTextbox oo,,xx,,yy,,ww,,hh
… … …… … …orient = 1orient = 1x = X1x = X1y = Y1y = Y1w = 100w = 100h = 30h = 30SheetsSheets(1).(1).ShapesShapes..AddTextBoxAddTextBox
orient, x, y, w, horient, x, y, w, h… … …… … …
XX
YY
11
hh
ww
oo –– orientacja (1 do 6)orientacja (1 do 6)ww –– szerokośćszerokośćhh –– wysokośćwysokość
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 119119
Grafika Grafika -- kolekcjakolekcja ShapesShapes
obiekt graficznyobiekt graficznyAddShapeAddShape tt,,xx,,yy,,ww,,hh
… … …… … …type type = 93= 93x = X1x = X1y = Y1y = Y1w = 100w = 100h = 100h = 100SheetsSheets(1).(1).ShapesShapes..AddShape AddShape
typetype, x, y, w, h, x, y, w, h… … …… … …
tt –– typ (1 do 138)typ (1 do 138)ww –– szerokośćszerokośćhh –– wysokośćwysokość
XX
YY
11
hh
ww
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 120120
Grafika Grafika -- kolekcjakolekcja ShapesShapes
własności:własności:–– CountCount -- liczba obiektów w kolekcjiliczba obiektów w kolekcji–– RangeRange -- podzbiór obiektów w kolekcjipodzbiór obiektów w kolekcji
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 121121
Grafika Grafika -- obiektobiekt ShapeShape
metodymetody–– ApplyApply -- zastosujzastosuj–– CopyCopy -- kopiujkopiuj–– CutCut -- wytnijwytnij–– DeleteDelete -- usuńusuń–– FlipFlip -- odbijodbij–– UngroupUngroup -- rozbijrozbij–– ZOrderZOrder -- kolejność kolejność
wyświetlaniawyświetlania
własnościwłasności–– HeightHeight -- wysokośćwysokość–– WidthWidth -- szerokośćszerokość–– VisibleVisible -- widocznośćwidoczność–– NameName -- nazwanazwa–– FillFill -- wypełnieniewypełnienie–– ZOrderPositionZOrderPosition
-- pozycja w pozycja w koko--lejności wyświetlanialejności wyświetlania
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 122122
GrafikaGrafikaPrzykładPrzykład
With SheetsWith Sheets(1).(1).ShapesShapes..AddTextBoxAddTextBox(1,50,50,100,30)(1,50,50,100,30)..NameName = ”Text1”= ”Text1”..LineLine..VisibleVisible == msoTruemsoTrue..FillFill..VisibleVisible == msoTruemsoTrue..FillFill..ForeColorForeColor.RGB = RGB(192,192,0).RGB = RGB(192,192,0)WithWith ..TextFrameTextFrame
..CharactersCharacters..TextText = ”Liczba królików”= ”Liczba królików”
..HorizontalAlignmentHorizontalAlignment == xlHalignCenterxlHalignCenter
..VerticalAlignmentVerticalAlignment == xlValignCenterxlValignCenter
..CharactersCharacters.Font..Font.BoldBold == TrueTrueEnd WithEnd With
End WithEnd With
obramowanieobramowanie
w pioniew pionie
wypełnieniewypełnienie
w poziomiew poziomie
półgrubypółgruby
kolor wypełnieniakolor wypełnienia
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 123123
GrafikaGrafikaPrzykładPrzykład
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 124124
GrafikaGrafikaPrzykładPrzykład
For J = 0 To 5 Step 1For J = 0 To 5 Step 1I = JI = JIf J > 2 Then I = 5 If J > 2 Then I = 5 -- JJWith Sheets(1).Shapes.AddShape(93,10+J*40,10+I*40,40,40)With Sheets(1).Shapes.AddShape(93,10+J*40,10+I*40,40,40)
.Name = .Name = ””StarStar”” & J& J
.Line.Visible = msoTrue.Line.Visible = msoTrue
.Fill.Visible = msoTrue.Fill.Visible = msoTrue
.Fill.ForeColor.RGB = RGB(0,51*J,255.Fill.ForeColor.RGB = RGB(0,51*J,255--51*J)51*J)
.Adjustments.Item(1) = CSng(I) / 10.Adjustments.Item(1) = CSng(I) / 10End WithEnd With
Next JNext J
obramowanieobramowaniewypełnieniewypełnienie
położenie kontrolkipołożenie kontrolki
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 125125
GrafikaGrafikaPrzykładPrzykład
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 126126
Tworzenie programuTworzenie programuEDYCJAEDYCJA
KOMPILACJAKOMPILACJA
LINKOWANIELINKOWANIE
TESTYTESTY
BŁĘDYBŁĘDYTAKTAK
NIENIE
BŁĘDYBŁĘDYTAKTAK
NIENIE
ToolsTools →→ MacroMacro →→ VBEditorVBEditor
w trakcie wykonywaniaw trakcie wykonywania
w trakcie wykonywaniaw trakcie wykonywania
algorytmualgorytmu
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 127127
PodsumowaniePodsumowanie
Etapy przygotowania obliczeń,Etapy przygotowania obliczeń,Programowanie obiektowe,Programowanie obiektowe,Języki programowania,Języki programowania,Język Visual BasicJęzyk Visual Basic
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 128128
PodsumowaniePodsumowanie
Język Visual Basic:Język Visual Basic:Symbole języka,Symbole języka,Zmienne proste i złożone,Zmienne proste i złożone,Wyrażenia arytmetyczne i logiczne,Wyrażenia arytmetyczne i logiczne,Podstawowe struktury,Podstawowe struktury,Operacje wejścia/wyjścia,Operacje wejścia/wyjścia,Segmenty koduSegmenty kodu
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 129129
PodsumowaniePodsumowanie
Język Visual Basic:Język Visual Basic:Formularze użytkownika,Formularze użytkownika,FormantyFormanty ActiveActive--X (obsługa zdarzeń),X (obsługa zdarzeń),Grafika (kolekcjaGrafika (kolekcja ShapesShapes),),Tworzenie i uruchamianie programuTworzenie i uruchamianie programu
Michał Pazdanowski 2006Michał Pazdanowski 200630 grudnia 200630 grudnia 2006 130130
PodsumowaniePodsumowanie
wykonywanie działańwykonywanie działań →→ kodkod VisualBasicVisualBasicprzechowywanie przechowywanie →→ modułymoduły–– wraz z skoroszytami XLS,wraz z skoroszytami XLS,–– edycja przy pomocy Edytoraedycja przy pomocy Edytora
VisualBasicVisualBasic,,moduł moduł →→ funkcjefunkcje i i proceduryproceduryprzedmiot działaniaprzedmiot działania →→ obiektyobiekty::–– ponad 100 klas obiektów w Excelu,ponad 100 klas obiektów w Excelu,–– skoroszyty, arkusze, zakresy, wykresy, ...skoroszyty, arkusze, zakresy, wykresy, ...