Organizacje materiały pomocnicze [ prezentacja dr Kaczmarka 2010]
Materiały pomocnicze cz. 4
Transcript of Materiały pomocnicze cz. 4
Technologia InformacyjnaTechnologia Informacyjna
Michał PazdanowskiMichał Pazdanowski
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 22
Etapy przygotowania obliczeńEtapy przygotowania obliczeń
Sformułowanie problemu,Sformułowanie problemu,Przygotowanie algorytmu rozwiązania,Przygotowanie algorytmu rozwiązania,Zapis algorytmu Zapis algorytmu →→ schemat blokowyschemat blokowy,,Kodowanie algorytmu,Kodowanie algorytmu,Testowanie.Testowanie.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 33
Sformułowanie problemuSformułowanie problemu
PrecyzyjnyPrecyzyjny opis zagadnienia:opis zagadnienia:co chcemy uzyskać,co chcemy uzyskać,niezbędne dane,niezbędne dane,tok postępowania prowadzącego do wyniku,tok postępowania prowadzącego do wyniku,opracowanie wyników.opracowanie wyników.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 44
AlgorytmAlgorytm
procedura obliczeniowaprocedura obliczeniowa →→ skończony ciąg skończony ciąg operacji elementarnych,operacji elementarnych,przetwarza przetwarza dane wejściowedane wejściowe w w wynikiwyniki,,dotyczy klasy problemów podobnych,dotyczy klasy problemów podobnych,zależy od metody rozwiązania problemu.zależy od metody rozwiązania problemu.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 55
AlgorytmAlgorytm
poprawny,poprawny,precyzyjny,precyzyjny,przejrzysty,przejrzysty,efektywny,efektywny,wykorzystujący:wykorzystujący:–– biblioteki procedur standardowych,biblioteki procedur standardowych,–– możliwości komputera możliwości komputera →→ wieloprocesorowość.wieloprocesorowość.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 66
Zapis algorytmuZapis algorytmu
język potoczny,język potoczny,język matematyczny,język matematyczny,schemat blokowy,schemat blokowy,języki algorytmiczne.języki algorytmiczne.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 77
Złożoność obliczeniowaZłożoność obliczeniowa
czasowaczasowa –– czas potrzebny na wykonanie czas potrzebny na wykonanie zadania,zadania,pamięciowapamięciowa –– ilość pamięci RAM ilość pamięci RAM potrzebnej na wykonanie zadania,potrzebnej na wykonanie zadania,cel szacowania:cel szacowania:–– określenie ilości zasobów potrzebnych do określenie ilości zasobów potrzebnych do
rozwiązania problemu,rozwiązania problemu,–– skalowanie niezbędnych zasobów w funkcji skalowanie niezbędnych zasobów w funkcji
rozmiaru danych,rozmiaru danych,złożoność złożoność pesymistycznapesymistyczna i i oczekiwanaoczekiwana..
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 99
Klasy czynnościKlasy czynności
arytmetyczne,arytmetyczne,logiczne,logiczne,organizacyjne,organizacyjne,wejścia,wejścia,wyjścia.wyjścia.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1010
Schemat blokowy i kodowanieSchemat blokowy i kodowanie
etap pomocniczy,etap pomocniczy,ułatwienie kodowania,ułatwienie kodowania,kontrola poprawności:kontrola poprawności:–– algorytmu,algorytmu,–– programu;programu;
standard języka,standard języka,kompilator,kompilator,dokumentacja.dokumentacja.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1111
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1212
Schemat blokowySchemat blokowy
liniowyliniowy iteracyjnyiteracyjny rozgałęzionyrozgałęziony złożonyzłożony
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1313
TestowanieTestowanie
błędy:błędy:–– formalne formalne →→ niezgodność ze standardem, niezgodność ze standardem, –– algorytmu algorytmu →→ problem inny niż zadany,problem inny niż zadany,–– wykonania wykonania →→ błędne dane,błędne dane,
eliminacja:eliminacja:–– formalne formalne →→ kompilator,kompilator,–– algorytmu algorytmu →→ testy,testy,–– wykonania wykonania →→ programowanie defensywne.programowanie defensywne.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1414
Języki programowaniaJęzyki programowania
liniowe liniowe →→ BASIC,BASIC,proceduralne proceduralne →→ FORTRAN,FORTRAN,z grupowaniem danych z grupowaniem danych →→ PASCAL, C,PASCAL, C,obiektowo zorientowane obiektowo zorientowane →→ C++,C++,obiektowe obiektowe → → Visual Basic.Visual Basic.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1515
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.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1616
Visual BasicVisual Basic
Zastosowanie:Zastosowanie:makroinstrukcje makroinstrukcje komponentów pakietu komponentów pakietu MSOfficeMSOffice, , nietypowe funkcje nietypowe funkcje arkuszowe arkuszowe 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:??
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1717
Visual BasicVisual Basic
wykonywanie działań wykonywanie działań →→ kodkod Visual Basic,Visual Basic,kod kod →→ przechowywany w przechowywany w modułachmodułach::–– wraz z arkuszami wraz z arkuszami .XLS.XLS,,–– edycja przy pomocy edytora edycja 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
FunctionFunction Suma(A1,A2) As Suma(A1,A2) As DoubleDoubleSuma=Suma=SqrSqr(A1*A1+A2*A2)(A1*A1+A2*A2)
End FunctionEnd Function
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1818
Visual BasicVisual Basicoperacje na operacje na obiektachobiektach::–– skoroszyty, arkusze, zakresy, wykresy,skoroszyty, arkusze, zakresy, wykresy,
obiekty identyczne obiekty identyczne →→ kolekcje kolekcje (obiekty):(obiekty):–– WorksheetsWorksheets → → wszystkie arkusze skoroszytu,wszystkie arkusze skoroszytu,–– ChartsCharts → → wszystkie wykresy skoroszytu,wszystkie wykresy skoroszytu,
obiekty tworzą strukturę hierarchiczną obiekty tworzą strukturę hierarchiczną →→ klasyklasy::ApplicationApplication ((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).
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 1919
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::
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2020
Visual BasicVisual Basic
cechy obiektów cechy obiektów → → właściwościwłaściwości::odwołanie: nazwa_obiektuodwołanie: nazwa_obiektu właściwośćwłaściwość
działania na obiekcie działania na obiekcie → → metodymetody::odwołanie: nazwa_obiektuodwołanie: nazwa_obiektu metodametoda
standardowe konstrukcje języków standardowe konstrukcje języków programowania:programowania:
tablice, pętle, struktury. tablice, pętle, struktury.
..
..
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2121
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 lub lub VisualBasicVisualBasic(VBA).(VBA).
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2222
Typy instrukcjiTypy instrukcji
arytmetyczna, arytmetyczna, sterująca sterująca →→ zmiana sekwencji wykonania,zmiana sekwencji wykonania,wejścia/wyjścia wejścia/wyjścia →→ przesłanie z/do pamięci,przesłanie z/do pamięci,odwołanie do podprogramu,odwołanie do podprogramu,deklaracja deklaracja →→ informacja dla kompilatora.informacja dla kompilatora.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2323
Symbole językaSymbole języka
literylitery →→ A … ZA … Zcyfrycyfry →→ 0 … 90 … 9znaki specjalne:znaki specjalne:
++ -- // ** ^̂
..
==( )( ) < >< >
,, ““ ‘‘ !! [ ][ ]&&
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2424
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”
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2525
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2626
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2727
Zmienne prosteZmienne prosteidentyfikacja identyfikacja →→ nazwa,nazwa,typ typ →→ zakres zmienności,zakres zmienności,deklaracja typu deklaracja typu →→ określenie typu:określenie typu:
DimDim A A As As IntegerIntegerDimDim J J As As DoubleDoubleDimDim TT TT As As BooleanBooleanDim Dim MsgTxtMsgTxt As As StringStringDim Dim ThetaTheta As As VariantVariant
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2828
Zmienne indeksowaneZmienne indeksowane
uporządkowany zbiór elementów uporządkowany zbiór elementów →→ tablica,tablica,uporządkowanie uporządkowanie →→ indeksy,indeksy,zmienna indeksowana zmienna indeksowana →→ element tablicy,element tablicy,deklaracja deklaracja →→ typ, rozmiary i zakres indeksów,typ, rozmiary i zakres indeksów,indeks indeks →→ stała, zmienna, wyrażenie całkowite.stała, zmienna, wyrażenie całkowite.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 2929
Zmienne indeksowaneZmienne indeksowane
DEKLARACJEDEKLARACJEDimDim A (A (1 to 101 to 10, , 1 to 121 to 12) ) As As IntegerInteger
DimDim B (B (--1 to 51 to 5)) As SingleAs Single
11
1010
11 1212
--11
55
AA
BB
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3030
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 typu typu IntegerInteger lub lub 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 0.numeracja elementów automatycznie od 0.
numer kolumnynumer kolumny
numer wierszanumer wiersza
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3131
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½½
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3232
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)
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3333
Wyrażenie arytmetyczneWyrażenie arytmetyczne
proste proste →→ stała, zmienna, funkcja,stała, zmienna, funkcja,złożone złożone →→ proste z nawiasami i operatorami,proste z nawiasami i operatorami,kolejność wyznaczania wartości:kolejność wyznaczania wartości:–– wyrażenia składowe, funkcje,wyraż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 prawejprawej,,zmiana kolejności zmiana kolejności →→ nawiasy nawiasy ( )( )..
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3434
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3535
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3636
Wyrażenie logiczneWyrażenie logiczneproste proste →→ stała, zmienna i funkcja logiczna, relacja,stała, zmienna i funkcja logiczna, relacja,złożone złożone →→ proste z nawiasami i operatorami,proste z nawiasami i operatorami,kolejność wyznaczania wartości:kolejność wyznaczania wartości:–– wyrażenia arytmetyczne w relacjach,wyrażenia arytmetyczne w relacjach,–– operatory relacji, funkcje logiczne, nawiasy,operatory relacji, funkcje logiczne, nawiasy,–– NOTNOT →→ negacje,negacje,–– ANDAND →→ koniunkcje,koniunkcje,–– OROR →→ alternatywy,alternatywy,–– XORXOR →→ alternatywy wykluczające,alternatywy wykluczające,–– EQVEQV →→ równoważności,równoważności,–– IMPIMP →→ implikacje,implikacje,
wynik wynik →→ TRUETRUE lub lub FALSEFALSE..
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3737
OperatoryOperatory
Logiczne:Logiczne:NOTNOT negacja,negacja,ANDAND koniunkcja,koniunkcja,OROR alternatywa,alternatywa,XORXOR alternatywa alternatywa
wykluczająca,wykluczająca,EQVEQV równoważność,równoważność,IMPIMP implikacja;implikacja;
Relacji:Relacji:== równy,równy,<><> różny,różny,
<< mniejszy,mniejszy,<=<= mniejszy lub równy,mniejszy lub równy,>> większy,większy,>=>= większy lub równy.większy lub równy.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3838
Wyrażenie logiczneWyrażenie logicznePrzykładyPrzykłady
DimDim C C As SingleAs Single, D , D As SingleAs Single, X , X As Single, As Single, YY As SingleAs SingleDimDim A A As As BooleanBoolean, B , B As As BooleanBooleanDimDim W1 W1 As As BooleanBoolean, W2 , W2 As As BooleanBoolean, W3 , W3 As As 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)))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 3939
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4040
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)
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4141
Instrukcje sterująceInstrukcje sterujące
zmiana kolejności wykonywania instrukcji,zmiana kolejności wykonywania instrukcji,etykieta:etykieta:–– zaczyna się od litery, kończy zaczyna się od litery, kończy ::–– od pierwszej kolumny,od pierwszej kolumny,–– nie każda instrukcja musi ją mieć,nie każda instrukcja musi ją mieć,
typ:typ:–– bezwarunkowe,bezwarunkowe,–– uwarunkowane.uwarunkowane.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4242
GO TOGO TO
bezwarunkowe GO TObezwarunkowe GO TOGo ToGo To etet… … …… … …
etet::
Go To Go To alaala… … …… … …Go To Go To alaala… … …… … …alaala::
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4343
IFIF
logiczne IFlogiczne IFIfIf wyr. log.wyr. log. ThenThen instrinstr. . uwuw..
??TT NN
… … …… … …IfIf A < 0. A < 0. ThenThen A = A = --AA
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4444
IFIF
logiczne IFlogiczne IFIfIf wyr. log.wyr. log. ThenThen… … …… … …ElseElse… … …… … …End IfEnd If
… … …… … …IfIf A > B A > B ThenThen
A = A + 2. * BA = A + 2. * BElseElse
A = A A = A -- 2. * B2. * BEnd IfEnd If
??TT NN
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4545
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4646
DODO
realizacja cyklu DOrealizacja cyklu DODo Do WhileWhile wyr. log.wyr. log.… … …… … …LoopLoop
??
TT
NN
… … …… … …A = 10A = 10B = B = --2020Do Do WhileWhile A > BA > B
A = A + A = A + AbsAbs(B)(B)LoopLoop
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4747
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4848
DODO
realizacja cyklu DOrealizacja cyklu DODo Do UntilUntil wyr. log.wyr. log.… … …… … …LoopLoop
??
NN
TT
… … …… … …A = 10A = 10B = B = --2020Do Do UntilUntil A > BA > B
A = A + A = A + AbsAbs(B)(B)LoopLoop
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 4949
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5050
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5151
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5252
On On ErrorError
obsługa błędówobsługa błędówOn On Error GoToError GoTo etet… … …… … …etet::
On On ErrorError Resume Resume NextNext
On On Error GoToError GoTo 00
… … …… … …On On Error GoTo ErrorsError GoTo Errors… … …… … …Exit SubExit SubErrorsErrors::
MsgBoxMsgBox ”Błąd”, _ ”Błąd”, _ vbOKOnlyvbOKOnly,”Błąd _ ,”Błąd _ wykonania”wykonania”
End SubEnd Sub
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5353
Wymiana informacjiWymiana informacji
komórki arkusza,komórki arkusza,pliki,pliki,funkcje funkcje InputBoxInputBox, , MsgBoxMsgBox,,formularze użytkownika.formularze użytkownika.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5454
FormatFormat
funkcja FORMAT:funkcja FORMAT:FormatFormat ((ww,”,”ss”)”)wynik wynik →→ łańcuch łańcuch znaków tekstowych,znaków tekstowych,
ww -- wyrażenie do wyrażenie do sformatowania,sformatowania,
ss -- specyfikacjaspecyfikacjaformatu:formatu:»» opis pola,opis pola,»» znaki znaki , . # 0 %, . # 0 %..
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5555
FormatFormat,, -- separator tysięcy,separator tysięcy,.. -- separator części dziesiętnej,separator części dziesiętnej,## -- pozycje opcjonalne,pozycje opcjonalne,00 -- pozycje obligatoryjne,pozycje obligatoryjne,%%-- wynik w procentach:wynik 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”)
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5656
FormatFormatKK = = --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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5757
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)
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5858
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 5959
PlikiPliki
zapis:zapis:–– sformatowany,sformatowany,–– niesformatowany,niesformatowany,
dostęp:dostęp:–– sekwencyjny,sekwencyjny,–– bezpośredniego dostępu,bezpośredniego dostępu,
rekord:rekord:–– stałej długości,stałej długości,–– zmiennej długości,zmiennej długości,
operacje:operacje:–– otwarcie,otwarcie,–– zamknięcie,zamknięcie,–– przewijanie,przewijanie,–– zapis/odczyt.zapis/odczyt.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6060
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ępu,nazwa pliku z pełną ścieżką dostępu,trybtryb -- tryb pracy: tryb pracy:
AppendAppend//BinaryBinary//InputInput//OutputOutput//RandomRandomdostępdostęp -- dozwolone operacje: dozwolone operacje:
ReadRead//Write Read WriteWrite Read Writenumernumer -- numer urządzenia (od numer urządzenia (od 11 do do 512512),),rekordrekord -- długość rekordu w bajtach.długość rekordu w bajtach.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6161
ZamknięcieZamknięcie
CloseClose ##numernumer
numernumer -- numer urządzenia wejścia/wyjścia.numer urządzenia wejścia/wyjścia.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6262
Instrukcje we/wyInstrukcje we/wy
wejściewejścieInputInput ##pp,, llwyjściewyjściePrintPrint ##pp,, llWriteWrite ##pp,, ll
pp numer pliku numer pliku wejścia/wyjścia,wejścia/wyjścia,
ll lista wejścia/wyjścia:lista wejścia/wyjścia:w1w1,, w2w2,, w3w3,, ......
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6363
Instrukcje we/wyInstrukcje we/wy
PrzykładPrzykładDim MsgTxtDim MsgTxt As As String String DimDim Liczba As Liczba As LongLongInputInput #4, #4, MsgTxtMsgTxt, Liczba, LiczbaPrintPrint #2, #2, MsgTxtMsgTxt, , MsgTxtMsgTxtWriteWrite #5, Liczba#5, LiczbaWriteWrite #6, ”Ala ma kota”#6, ”Ala ma kota”
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6464
PlikiPlikiPrzykł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… … …… … …
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6565
Funkcje we/wyFunkcje we/wy
InputBoxInputBox(”(”OpisOpis”,””,”NagłówekNagłówek”,”,TypeType:= #:= #))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6666
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 lub lub FalseFalse))88 -- zakres komórek (obiekt zakres 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.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6767
Funkcje we/wyFunkcje we/wy
MsgBoxMsgBox(”(”TekstTekst”,”,PrzyciskiPrzyciski,”,”NagłówekNagłówek”)”)
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6868
Funkcje we/wyFunkcje we/wy
Przyciski =Przyciski =00
11
22
33
44
55
Przyciski =Przyciski =1616
3232
4848
6464
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 6969
Formularze użytkownikaFormularze użytkownika
formularz użytkownika,formularz użytkownika,formanty formanty ActiveActive--X,X,obsługa zdarzeń,obsługa zdarzeń,procedury użytkownika (typu procedury użytkownika (typu PrivatePrivate).).
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7070
Formularz użytkownikaFormularz użytkownika
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7171
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7272
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7373
Formanty Formanty ActiveActive--XX
LabelLabel##zdarzenia:zdarzenia:–– ClickClick–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7474
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7575
Formanty Formanty ActiveActive--XX
TextBoxTextBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– TextLengthTextLength–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7676
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycja,pozycja,przewijanieprzewijanie
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7777
Formanty Formanty 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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7878
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 7979
Formanty Formanty ActiveActive--XX
ListBoxListBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled–– FontFont–– ListList–– TextAlignTextAlign–– TextLenthTextLenth–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8080
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8181
Formanty Formanty ActiveActive--XX
ToggleButtonToggleButton##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8282
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8383
Formanty Formanty ActiveActive--XX
CommandButtonCommandButton##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– EnabledEnabled–– FontFont
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8484
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8585
Formanty Formanty ActiveActive--XX
FrameFrame##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– CaptionCaption–– ConrolsConrols–– EnabledEnabled–– FontFont
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8686
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycja,pozycja,przewijanieprzewijanie
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8787
Formanty Formanty ActiveActive--XX
MultiPageMultiPage##zdarzenia:zdarzenia:–– ClickClick–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled–– FontFont–– PagesPages–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8888
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,czcionka,czcionka,różne,różne,pozycja,pozycja,zakładkizakładki
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 8989
Formanty Formanty ActiveActive--XX
ScrollBarScrollBar##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– ScrollScroll
własności:własności:–– DelayDelay–– EnabledEnabled–– MaxMax–– MinMin–– SmallChangeSmallChange–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9090
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,różne,różne,pozycja,pozycja,przewijanieprzewijanie
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9191
Formanty Formanty ActiveActive--XX
SpinButtonSpinButton##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– SpinDownSpinDown–– SpinUpSpinUp
własności:własności:–– DelayDelay–– EnabledEnabled–– MaxMax–– MinMin–– SmallChangeSmallChange–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9292
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9393
Formanty Formanty ActiveActive--XX
ImageImage##zdarzenia:zdarzenia:–– ClickClick–– DblClickDblClick–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– EnabledEnabled
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9494
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,różne,różne,obrazek,obrazek,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9595
Formanty Formanty 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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9696
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,pozycja,pozycja,przewijanieprzewijanie
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9797
Formanty Formanty ActiveActive--XX
CheckBoxCheckBox##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– AlignmentAlignment–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9898
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 9999
Formanty Formanty ActiveActive--XX
OptionButtonOptionButton##zdarzenia:zdarzenia:–– ChangeChange–– KeyDownKeyDown–– KeyPressKeyPress–– KeyUpKeyUp–– MouseDownMouseDown–– MouseMoveMouseMove–– MouseUpMouseUp
własności:własności:–– AlignmentAlignment–– CaptionCaption–– EnabledEnabled–– FontFont–– TextAlignTextAlign–– ValueValue
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 100100
Formanty Formanty ActiveActive--XX
Lista własności formantu Lista własności formantu według kategorii:według kategorii:
wygląd,wygląd,zachowanie,zachowanie,dane,dane,czcionka,czcionka,różne,różne,obrazek,obrazek,pozycjapozycja
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 101101
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… … …… … …
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 102102
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 103103
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 lub lub
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))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 104104
Wybrane metodyWybrane metody
ApplicationApplication..FindFileFindFile
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 105105
Wybrane metodyWybrane metody
ApplicationApplication..GetOpenFilenameGetOpenFilename
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 106106
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))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 107107
Wybrane metodyWybrane metody
ApplicationApplication..GetSaveAsFilenameGetSaveAsFilename
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 108108
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))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 109109
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 110110
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 111111
segment SUBROUTINEsegment SUBROUTINE
SubSub nazwa nazwa ((arg1arg1,, arg2arg2,, ......) ) … … …… … …
Exit SubExit Sub… … …… … …
End SubEnd Sub
Segmenty koduSegmenty kodu
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 112112
ProceduraProceduranazwa jednoznaczna w module,nazwa jednoznaczna w module,wymiana informacji wymiana informacji →→ parametryparametry,,zgodność parametrów co do:zgodność parametrów co do:–– liczby,liczby,–– typu,typu,–– kolejności.kolejnoś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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 113113
Excel Excel ObjectsObjects →→ obiekty Excela:obiekty Excela:Sheet1Sheet1Sheet2Sheet2… … …… … …
FormsForms →→ dialogi użytkownika:dialogi użytkownika:Dialog1Dialog1Dialog2Dialog2… … …… … …
ModulesModules →→ funkcje i procedury:funkcje i procedury:Module1Module1Module2Module2… … …… … …
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 114114
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 115115
Struktura modułuStruktura modułu
opcje,opcje,deklaracje typudeklaracje typuzmiennych modułu,zmiennych modułu,segmenty segmenty FunctionFunction::deklaracje typu zmiennych deklaracje typu zmiennych lokalnych,lokalnych,kod funkcji,kod funkcji,
segmenty segmenty SubSub::deklaracje typu zmiennych deklaracje typu zmiennych lokalnych,lokalnych,kod procedur.kod procedur.
Option ExplicitOption ExplicitOption BaseOption Base 00DimDim X as X as BooleanBoolean… … …… … …SubSub Ala(X)Ala(X)DimDim Y As Y As Boolean Boolean … … …… … …FunctionFunction Eta(X) As Eta(X) As LongLong
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 116116
GrafikaGrafika
XX
YY
(0,0)(0,0)
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 117117
Grafika Grafika -- kolekcja kolekcja ShapesShapes
krzywa krzywa 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… … …… … …
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 118118
Grafika Grafika -- kolekcja kolekcja 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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 119119
Grafika Grafika -- kolekcja kolekcja 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… … …… … …
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 120120
Grafika Grafika -- kolekcja kolekcja 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ść
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 121121
Grafika Grafika -- kolekcja kolekcja 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ść
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 122122
Grafika Grafika -- kolekcja kolekcja 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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 123123
Grafika Grafika -- kolekcja kolekcja 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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 124124
Grafika Grafika -- obiekt obiekt ShapeShape
metody:metody:–– CopyCopy -- kopiuj,kopiuj,–– CutCut -- wytnij,wytnij,–– DeleteDelete -- usuń,usuń,–– FlipFlip -- odbij,odbij,–– GroupGroup -- połącz,połącz,–– UngroupUngroup -- rozbij,rozbij,–– ZOrderZOrder -- kolejność kolejność
wyświetlania,wyświetlania,
własności:własności:–– HeightHeight -- wysokość,wysokość,–– WidthWidth -- szerokość,szerokość,–– VisibleVisible -- widoczność,widoczność,–– NameName -- nazwa,nazwa,–– FillFill -- wypełnienie,wypełnienie,–– ZOrderPositionZOrderPosition
-- pozycja w pozycja w koko--lejności wyświetlania.lejności wyświetlania.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 125125
Grafika Grafika –– metoda metoda FlipFlip
..FlipFlip((msoFlipVerticalmsoFlipVertical))..FlipFlip((msoFlipHorizontalmsoFlipHorizontal))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 126126
Grafika Grafika –– metoda metoda GroupGroup
Uwaga:Uwaga:grupa jest traktowana jak jeden obiekt,grupa jest traktowana jak jeden obiekt,zmienia liczbę obiektów w kolekcji zmienia liczbę obiektów w kolekcji ShapesShapes,,zmienia indeksy obiektów w kolekcji.zmienia indeksy obiektów w kolekcji.
⇒⇒
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 127127
Grafika Grafika –– metoda metoda UngroupUngroup
Uwaga:Uwaga:wykonalna tylko dla obiektów utworzonych wykonalna tylko dla obiektów utworzonych metodą metodą GroupGroup,,zmienia liczbę obiektów w kolekcji zmienia liczbę obiektów w kolekcji ShapesShapes,,zmienia indeksy obiektów w kolekcji.zmienia indeksy obiektów w kolekcji.
⇐⇐
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 128128
Grafika Grafika –– metoda metoda IncrementRotationIncrementRotation
..IncrementRotationIncrementRotation ––15.15...IncrementRotationIncrementRotation ––15.15. ..IncrementRotationIncrementRotation ––15.15.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 129129
Grafika Grafika –– własność własność RotationRotation
..RotationRotation = = --45.45...RotationRotation = = --15.15. ..RotationRotation = = --30.30.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 130130
Grafika Grafika –– metoda metoda ZOrderZOrder1
23
45
67
23
4
15
67
12
3
74
56
12
3
54
67
12
4
35
67
..ZOrderZOrder((msoBringToFrontmsoBringToFront))
..ZOrderZOrder((msoSendBackwardmsoSendBackward))
..ZOrderZOrder((msoBringForwardmsoBringForward))
..ZOrderZOrder((msoSendToBackmsoSendToBack))
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 131131
Grafika Grafika –– funkcja funkcja RGBRGB
… … …… … …R = 128R = 128G = 128G = 128B = 255B = 255SheetsSheets(1).(1).ShapesShapes(1).(1).ColorColor = =
RGB(R,G,B)RGB(R,G,B)… … …… … …
kolorkolorRGB (R, RGB (R, GG, , BB))RRed ed = 0 = 0 ÷÷ 255,255,GGreen reen = 0 = 0 ÷÷ 255,255,BBlue lue = 0 = 0 ÷÷ 255;255;
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 132132
Grafika Grafika –– funkcja funkcja RGBRGB
Czarny Czarny –– RGB(0,0,0),RGB(0,0,0),Niebieski Niebieski –– RGB(0,0,255),RGB(0,0,255),Zielony Zielony –– RGB(0,255,0),RGB(0,255,0),Czerwony Czerwony –– RGB(255,0,0),RGB(255,0,0),Turkusowy Turkusowy –– RGB(0,255,255),RGB(0,255,255),Purpurowy Purpurowy –– RGB(255,0,255),RGB(255,0,255),Żółty Żółty –– RGB(255,255,0),RGB(255,255,0),Biały Biały –– RGB(255,255,255),RGB(255,255,255),
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 133133
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 134134
GrafikaGrafikaPrzykładPrzykład
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 135135
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 136136
GrafikaGrafikaPrzykładPrzykład
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 137137
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
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 138138
PodsumowaniePodsumowanie
Etapy przygotowania obliczeń,Etapy przygotowania obliczeń,Programowanie obiektowe,Programowanie obiektowe,Języki programowania,Języki programowania,Język Visual Basic.Język Visual Basic.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 139139
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 kodu.Segmenty kodu.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 140140
PodsumowaniePodsumowanie
Język Visual Basic:Język Visual Basic:Formularze użytkownika,Formularze użytkownika,Formanty Formanty ActiveActive--X (obsługa zdarzeń),X (obsługa zdarzeń),Grafika (kolekcja Grafika (kolekcja ShapesShapes),),Tworzenie i uruchamianie programu.Tworzenie i uruchamianie programu.
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 141141
PodsumowaniePodsumowanie
wykonywanie działańwykonywanie działań →→ kod kod VisualBasicVisualBasic,,przechowywanie przechowywanie →→ modułymoduły::–– wraz z skoroszytami XLS,wraz z skoroszytami XLS,–– edycja przy pomocy Edytora edycja przy pomocy Edytora
VisualBasicVisualBasic,,moduł moduł →→ funkcjefunkcje i i proceduryprocedury,,przedmiot 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, ...
3 marca 20103 marca 2010 Michał PazdanowskiMichał Pazdanowski 142142
BibliografiaBibliografia
1.1. „Microsoft Visual Basic „Microsoft Visual Basic User ManualUser Manual”, ”, Microsoft Microsoft CorpCorp. 2000.. 2000.
2.2. „Programowanie Excel 2000 Visual Basic”, „Programowanie Excel 2000 Visual Basic”, John WalkenbachJohn Walkenbach, , RmRm, 2000., 2000.
3.3. „Visual Basic nie tylko dla orłów”, „Visual Basic nie tylko dla orłów”, Greg PerryGreg Perry, , IntersoftlandIntersoftland, 1995. , 1995.
4.4. „Visual Basic 6 to proste”, „Visual Basic 6 to proste”, Stephen MorrisStephen Morris, , RmRm, , 2002.2002.
5.5. „Visual Basic 6 w 21 dni”, „Visual Basic 6 w 21 dni”, Greg PerryGreg Perry, , RmRm, , 1999. 1999.