Michał Pazdanowski
Michał Pazdanowski
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 blokowy schemat blokowy , ,
Kodowanie algorytmu, Kodowanie algorytmu,
Testowanie. Testowanie.
Sformułowanie problemu Sformułowanie problemu
Precyzyjny
Precyzyjny 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.
Algorytm Algorytm
procedura obliczeniowa procedura obliczeniowa → → skończony ciąg skończony ciąg operacji elementarnych,
operacji elementarnych,
przetwarza przetwarza dane wejściowe dane wejściowe w w wyniki wyniki , ,
dotyczy klasy problemów podobnych, dotyczy klasy problemów podobnych,
zależy od metody rozwiązania problemu. zależy od metody rozwiązania problemu.
Algorytm Algorytm
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ść.
Zapis algorytmu Zapis algorytmu
język potoczny, język potoczny,
język matematyczny, język matematyczny,
schemat blokowy, schemat blokowy,
języki algorytmiczne. języki algorytmiczne.
Złożoność obliczeniowa Złożoność obliczeniowa
czasowa czasowa – – czas potrzebny na wykonanie czas potrzebny na wykonanie zadania,
zadania,
pamięciowa pamię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ść pesymistyczna pesymistyczna i i oczekiwana oczekiwana . .
Klasy czynności Klasy czynności
arytmetyczne, arytmetyczne,
logiczne, logiczne,
organizacyjne, organizacyjne,
wejścia, wejścia,
wyjścia. wyjścia.
Schemat blokowy i kodowanie Schemat 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.
Schemat blokowy Schemat blokowy
PN PN – – 75/E 75/E - - 01226 01226 Sieć bloków
Sieć bloków
TakTak NieNie
??
++-*/-*/ We/We/WyWy STOPSTOP
START START
11
11 arytmetyczne
arytmetyczne logicznelogiczne wejściewejście wyjście wyjście
pomocnicze pomocnicze
Schemat blokowy Schemat blokowy
liniowy
liniowy iteracyjnyiteracyjny rozgałęzionyrozgałęziony złożonyzłożony
Testowanie Testowanie
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.
Języki programowania Ję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.
Programowanie obiektowe Programowanie obiektowe
Struktura
Struktura → → tablica uporządkowana przez tablica uporządkowana przez umieszczenie jej elementów w nazwanych umieszczenie jej elementów w nazwanych
polach, polach, Klasa
Klasa → → 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, Obiekt
Obiekt → → zmienna utworzona zgodnie z opisem zmienna utworzona zgodnie z opisem podanym przez klasę,
podanym przez klasę, Metoda
Metoda → → funkcja przeznaczona do obsługi danej funkcja przeznaczona do obsługi danej klasy obiektów.
klasy obiektów.
Visual Basic Visual Basic
Zastosowanie:
Zastosowanie:
makroinstrukcje makroinstrukcje
komponentów pakietu komponentów pakietu
MSOffice MSOffice, ,
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:
??
Visual Basic Visual Basic
wykonywanie działań wykonywanie działań → → kod kod Visual Basic, Visual Basic,
kod kod → → przechowywany w przechowywany w modułach modułach : :
–– wraz z arkuszami wraz z arkuszami .XLS.XLS,,
–– edycja przy pomocy edytora edycja przy pomocy edytora VisualBasicVisualBasic,,
moduł moduł → → zawiera zawiera funkcje funkcje i i procedury procedury . .
SubSub Test()Test()
Iloczyn = 2*6 Iloczyn = 2*6
MsgBox
MsgBox „Iloczyn” & Iloczyn„Iloczyn” & Iloczyn End Sub
End Sub
Function
Function Suma(A1,A2) As Suma(A1,A2) As DoubleDouble Suma=
Suma=Sqr(A1*A1+A2*A2)Sqr(A1*A1+A2*A2) End Function
End Function
Visual Basic Visual Basic
operacje 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::
Application
Application ((excelexcel),), Workbook
Workbook (skoroszyt),(skoroszyt), Worksheet
Worksheet (arkusz),(arkusz), Range
Range (zakres),(zakres), Pivot Table
Pivot Table (tabela przestawna),(tabela przestawna), Chart
Chart (wykres),(wykres), Command
Command Bar (pasek narzędzi).Bar (pasek narzędzi).
Visual Basic Visual Basic
obiekty wyższego rzędu obiekty wyższego rzędu → → kontenery kontenery obiektów obiektów niższego rzędu:
niższego rzędu:
Application
Application..WorkbooksWorkbooks(1)(1) Application
Application..WorkbooksWorkbooks(1)(1)..WorksheetsWorksheets(1)(1) Application
Application..WorkbooksWorkbooks(1)(1)..WorksheetsWorksheets(1)(1)..CellsCells(2,2)(2,2)..ValueValue
lokalizacja obiektu w hierarchii lokalizacja obiektu w hierarchii → → ścieżka ścieżka : :
Visual Basic Visual Basic
cechy obiektów cechy obiektów → → właściwości właściwości : : odwołanie: nazwa_obiektu
odwołanie: nazwa_obiektu właściwość właściwość
działania na obiekcie działania na obiekcie → → metody metody : : odwołanie: nazwa_obiektu
odwołanie: nazwa_obiektu metoda metoda
standardowe konstrukcje języków standardowe konstrukcje języków programowania:
programowania:
tablice, pętle, struktury.
tablice, pętle, struktury.
. .
. .
Visual Basic Visual Basic
Lista obiektów, ich metod i właściwości:
Lista obiektów, ich metod i właściwości:
Excel Excel → → Tools Tools → → Macro Macro → → VisualBasic VisualBasic Editor
Editor
VisualBasic Editor VisualBasic Editor → → View View → → Object Object Browser
Browser
wybrać obiekt wybrać obiekt → → Excel Excel lub lub VisualBasic VisualBasic (VBA).
(VBA).
Typy instrukcji Typy 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.
Symbole języka Symbole języka
litery litery → → A … Z A … Z
cyfry cyfry → → 0 … 9 0 … 9
znaki specjalne: znaki specjalne:
+ + - - / / * * ^ ^ . .
= = ( ) ( ) < > < >
, , “ “ ‘ ‘ ! ! [ ] [ ]
&
&
Literały Literały
bajt: bajt: 2 2 12 12 32 32
całkowite: całkowite: - - 7 7 21 21 121 121
rzeczywiste: rzeczywiste: 17.123 23.7E+2 17.123 23.7E+2
podwójnej precyzji: podwójnej precyzji: 15.3D+04 15.3D+04
logiczne: logiczne: TRUE FALSE TRUE FALSE
tekstowe: tekstowe: ”ALA MA ASA” ”ALA MA ASA”
Zakres Zakres
BYTE BYTE
INTEGER INTEGER
LONG LONG
SINGLE SINGLE - - /+ /+
DOUBLE DOUBLE - - /+ /+
2147483647 2147483647 - - 2147483648 2147483648 ÷ ÷
- - 32768 32768 ÷ ÷ 32767 32767 0 0 ÷ ÷ 255 255
4.94 4.94 *10 *10 ÷ ÷ 1.79*10 1.79*10 1. 1. 40 40 *10 *10
--4545÷ ÷ 3.40*10 3.40*10
3838--332424 330808
Zakres Zakres
1. 1. 40 40 *10 *10
--4545- - 3.40*10 3.40*10
3838- - 1. 1. 40 40 *10 *10
-45-453.40*10 3.40*10
38380 ! 0 !
0 0
4.94 4.94 *10 *10
--324324- - 1.79 1.79 *10 *10
308308- - 4.94 4.94 *10 *10
--3243241.79 1.79 *10 *10
3083080 ! 0 !
0 0
SINGLE SINGLE
DOUBLE DOUBLE
Zmienne proste Zmienne proste
identyfikacja identyfikacja → → nazwa, nazwa,
typ typ → → zakres zmienności, zakres zmienności,
deklaracja typu deklaracja typu → → określenie typu: określenie typu:
Dim Dim A A As As Integer Integer Dim Dim J J As As Double Double
Dim Dim TT TT As As Boolean Boolean
Dim Dim MsgTxt MsgTxt As As String String
Dim Dim Theta Theta As As Variant Variant
Zmienne indeksowane Zmienne 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.
Zmienne indeksowane Zmienne indeksowane
DEKLARACJE DEKLARACJE
DimDim 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
-1-1
55
A A
B B
Zmienne indeksowane Zmienne indeksowane
ODWOŁANIE ODWOŁANIE A( A( I I , , J J ) ) B( B( - - 1 1 ) )
A( A( 3*C+J 3*C+J , , 6 6 - - 4*W 4*W ) ) → → C C , , J J , , W W typu typu Integer Integer lub lub Long Long
pamię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 kolumny numer kolumny
numer wiersza numer wiersza
Funkcje standardowe Funkcje standardowe
Int(X)Int(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) znakznak sin(x) sin(x) coscos(x)(x)
tg(x)tg(x) xx½½
Funkcje standardowe Funkcje standardowe
ZMIANA TYPU ZMIANA TYPU
Cbool(W)Cbool(W)
CbyteCbyte(W)(W)
CDblCDbl(W)(W)
CSngCSng(W)(W)
CInt(W)CInt(W)
CLngCLng(W)(W)
CStrCStr(W)(W)
CVarCVar(W)(W)
TEKSTOWE TEKSTOWE
ChrChr(W)(W)
LeftLeft((txttxt,L),L)
RightRight((txttxt,L),L)
Len(Len(txttxt))
Ltrim(Ltrim(txttxt))
RtrimRtrim((txttxt))
TrimTrim((txttxt))
MidMid((txttxt,P,L),P,L)
Wyrażenie arytmetyczne Wyraż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 ( ) ( ) . .
Wyrażenie arytmetyczne Wyrażenie arytmetyczne
Kolejność obliczania wartości Kolejność obliczania wartości
log( log( X X ) ) + + AS AS * * 4.1 4.1 - - X12 X12 ^ ^ 2 2 / / 2.1E 2.1E - - 11 11 + + ( ( 3.14 3.14 + + Y Y ) ) / / 0.3 0.3
11 44 33 22
55 66
77
88
99 X = A/B*C
X = A/B*C →→ X = A/(B*C)
X = A/(B*C)→→ szybciej (1 dzielenie)szybciej (1 dzielenie) X = A/B/C
X = A/B/C →→ wolniej (2 dzielenia)wolniej (2 dzielenia)
AA
BB *C*C AA BB**CC
Wyrażenie arytmetyczne Wyrażenie arytmetyczne
typ typ
przykłady przykłady
II
^^ + + -- / */ *
RR DPDP II RR DPDP RR RR DPDP DPDP DPDP DPDP II
RR DPDP
AA BB AA^^BB II
RR DPDP
II RR II RR II RR
II RR RR RR DPDP DPDP
2 W SIN(P) A
2 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 →→ AA
BB **CC AA BB**CC
Wyrażenie logiczne Wyrażenie logiczne
proste 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..
Operatory Operatory
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.
Wyrażenie logiczne Wyrażenie logiczne
Przykłady Przykłady
DimDim C C As Single, D As Single, D As Single, X As Single, X As Single, As Single, YY As SingleAs Single DimDim A A As As BooleanBoolean, B , B As As BooleanBoolean
DimDim W1 As W1 As Boolean, W2 Boolean, W2 As As BooleanBoolean, W3 , W3 As As BooleanBoolean TRUE FALSE C
TRUE FALSE C = = DD W1 W1 AND AND W2 W2 OR W3OR W3 C C >= >= D D OR OR A A AND AND BB A A OR OR B B AND NOT AND NOT X X = = YY A A OR OR (B (B AND AND ( ( NOT NOT (X (X == Y)))Y)))
Wyrażenie logiczne Wyrażenie logiczne
Kolejność obliczania wartości Kolejność obliczania wartości
NOT NOT I I > > 0 0 AND AND I + 2 I + 2 > > 0 0 OR OR TRUE TRUE
11 22
44 33
55
66
77
Instrukcja podstawienia Instrukcja podstawienia
nazwa zmiennej
nazwa zmiennej = = wyrażenie arytmetyczne wyrażenie arytmetyczne nazwa zmiennej
nazwa zmiennej = = wyrażenie logiczne wyrażenie logiczne
W W = = 71.345 71.345
ETA ETA = = ETA+Z*(J+7)*2 ETA+Z*(J+7)*2
SEC SEC = = W+SQR(SEC+A) W+SQR(SEC+A)
Instrukcje sterujące Instrukcje 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.
GO TO GO TO
bezwarunkowe GO TObezwarunkowe GO TO Go To
Go To etet
… … …
… … … etet::
Go To Go To alaala
… … …
… … … Go To Go To alaala
… … …
… … … alaala::
IF IF
logiczne IFlogiczne IF
IfIf wyr. log.wyr. log. ThenThen instr. instr. uwuw..
??
TT NN
… … …
… … …
IfIf A < 0. A < 0. ThenThen A = A = --AA
IF IF
logiczne IFlogiczne IF
IfIf wyr. log.wyr. log. ThenThen
… … …
… … … ElseElse
… … …
… … … End If End If
… … …
… … …
IfIf A > B A > B ThenThen
A = A + 2. * B A = A + 2. * B ElseElse
A = A
A = A -- 2. * B2. * B End If
End If
??
TT NN
FOR FOR
realizacja cyklu FORrealizacja cyklu FOR
ForFor ii = = w1w1 To To w2w2 Step Step w3w3
… … …
… … … NextNext
… … …
… … … S = 1
S = 1
For I = 1 To N Step 1 For I = 1 To N Step 1
S = S * I S = S * I NextNext
?? TT
NN
DO DO
realizacja cyklu DOrealizacja cyklu DO Do Do WhileWhile wyr. log.wyr. log.
… … …
… … … LoopLoop
?? TT
NN
… … …
… … … A = 10 A = 10 B = B = --2020
Do Do WhileWhile A > BA > B A = A +
A = A + Abs(B)Abs(B) LoopLoop
DO DO
realizacja cyklu DOrealizacja cyklu DO DoDo
… … …
… … …
Loop While
Loop While wyr. log.wyr. log.
?? TT
NN
… … …
… … … A = 10 A = 10 B = B = --2020 DoDo
A = A +
A = A + Abs(B)Abs(B) Loop While
Loop While A > BA > B
DO DO
realizacja cyklu DOrealizacja cyklu DO Do Do UntilUntil wyr. log.wyr. log.
… … …
… … … LoopLoop
?? NN
TT
… … …
… … … A = 10 A = 10 B = B = --2020
Do Do UntilUntil A > BA > B A = A +
A = A + Abs(B)Abs(B) LoopLoop
DO DO
realizacja cyklu DOrealizacja cyklu DO DoDo
… … …
… … … Loop Until
Loop Until wyr. log.wyr. log.
?? NN
TT
… … …
… … … A = 10 A = 10 B = B = --2020 DoDo
A = A +
A = A + Abs(B)Abs(B) Loop Until
Loop Until A > BA > B
CASE CASE
struktura CASEstruktura CASE Select Case
Select Case wyr.wyr.
CaseCase aa
… … …
… … … CaseCase b to cb to c
… … …
… … … Case Else Case Else
… … …
… … … End Select End Select
… … …
… … … Select Case Select Case II CaseCase --22
I = I = AbsAbs(I)(I) CaseCase 4 To 64 To 6
I = I = SqrSqr(I)(I) Case Else Case Else Debug
Debug..PrintPrint II End Select
End Select
WITH WITH
struktura WITHstruktura WITH WithWith obiektobiekt
… … …
… … … End With End With
… … …
… … …
With Selection With Selection
Font.
Font.BoldBold = TRUE= TRUE Font.
Font.ItalicItalic = FALSE= FALSE WrapText
WrapText = FALSE= FALSE End With
End With
On On Error Error
obsługa błędówobsługa błędów On 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 Sub Exit Sub
Errors Errors::
MsgBox
MsgBox ”Błąd”, _ ”Błąd”, _ vbOKOnly
vbOKOnly,”Błąd _ ,”Błąd _ wykonania”
wykonania”
End Sub End Sub
Wymiana informacji Wymiana informacji
komórki arkusza, komórki arkusza,
pliki, pliki,
funkcje funkcje InputBox InputBox , , MsgBox MsgBox , ,
formularze użytkownika. formularze użytkownika.
Format Format
funkcja FORMAT:funkcja FORMAT:
Format
Format ((ww,”,”ss”)”) wynik
wynik →→ łańcuch łańcuch znaków tekstowych, znaków tekstowych,
ww -- wyrażenie do wyrażenie do sformatowania, sformatowania,
ss -- specyfikacjaspecyfikacja formatu:
formatu:
»» opis pola,opis pola,
»» znaki znaki , . # 0 %, . # 0 %..
Format Format
, , - - separator tysięcy, separator tysięcy,
. . - - separator części dziesiętnej, separator części dziesiętnej,
# # - - pozycje opcjonalne, pozycje opcjonalne,
0 0 - - 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”)
Format Format
KK = = --12451245 , , LL = = 12 12 , R1, R1 == --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
Komórki arkusza Komórki arkusza
Cells
Cells((II,,JJ).).ValueValue
… … …
… … …
X = X = CellsCells(8,2).(8,2).ValueValue Cells
Cells(5,1).(5,1).ValueValue = Y= Y
… … …
… … …
II
JJ
Cells
Cells(I,J)(I,J)
Pliki Pliki
→→
11 22 33 554 4 66 .. .. ..
REKORDY REKORDY
→→
11 22 33 5544 66 .. .. ..
ZNACZNIK DOSTĘPUZNACZNIK DOSTĘPU
ZNACZNIK DOSTĘPUZNACZNIK DOSTĘPU
Pliki Pliki
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.
Otwarcie Otwarcie
OpenOpen ś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:
Append
Append//BinaryBinary//InputInput//OutputOutput//RandomRandom dostęp
dostęp -- dozwolone operacje: dozwolone operacje:
ReadRead/Write Read Write/Write Read Write numer
numer -- numer urządzenia (od numer urządzenia (od 11 do do 512512),), rekord
rekord -- długość rekordu w bajtach.długość rekordu w bajtach.
Zamknięcie Zamknięcie
Close
Close ##numernumer numer
numer -- numer urządzenia wejścia/wyjścia.numer urządzenia wejścia/wyjścia.
Instrukcje we/wy Instrukcje we/wy
wejściewejście Input
Input ##pp,, ll
wyjściewyjście Print
Print ##pp,, ll Write
Write ##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,, ...
Instrukcje we/wy Instrukcje we/wy
Przykład Przykład
Dim MsgTxt
Dim MsgTxt As As String String DimDim Liczba As Liczba As LongLong
Input
Input #4, MsgTxt#4, MsgTxt, Liczba, Liczba Print
Print #2, #2, MsgTxtMsgTxt, , MsgTxtMsgTxt Write
Write #5, Liczba#5, Liczba Write
Write #6, ”Ala ma kota”#6, ”Ala ma kota”
Pliki Pliki
Przykład Przykład
… … …
… … …
OpenOpen ”Plik” For ”Plik” For OutputOutput As #1) As #1) For I=1 To 100
For I=1 To 100 Write
Write #1 A(I)#1 A(I) NextNext
Close
Close #1#1
… … …
… … …
Funkcje we/wy Funkcje we/wy
InputBox
InputBox (” (” Opis Opis ”,” ”,” Nagłówek Nagłówek ”, ”, Type Type := # := # ) )
Funkcje we/wy Funkcje we/wy
Typ ( Typ (##):):
00 -- formuła MSformuła MS-Excel-Excel 11 -- liczbaliczba
22 -- łańcuch znakówłańcuch znaków
44 -- 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.
Funkcje we/wy Funkcje we/wy
MsgBox
MsgBox (” (” Tekst Tekst ”, ”, Przyciski Przyciski ,” ,” Nagłówek Nagłówek ”) ”)
Funkcje we/wy Funkcje we/wy
Przyciski = Przyciski =
00 11 22 33 44 55
Przyciski = Przyciski =
1616 3232 4848 6464
Formularze użytkownika Formularze użytkownika
formularz użytkownika, formularz użytkownika,
formanty formanty Active Active - - X, X,
obsługa zdarzeń, obsługa zdarzeń,
procedury użytkownika (typu procedury użytkownika (typu Private Private ). ).
Formularz użytkownika
Formularz użytkownika
Formularz użytkownika Formularz użytkownika
UserForm UserForm # #
metody: metody:
–– CopyCopy –– CutCut –– ShowShow –– HideHide –– LoadLoad –– UnloadUnload
własności: własności:
–– CaptionCaption –– EnabledEnabled –– VisibleVisible –– HeightHeight –– WidthWidth –– LeftLeft –– TopTop
Formularz użytkownika Formularz 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,
przewijanie przewijanie
Formanty
Formanty Active Active - - X X
Label Label # #
zdarzenia: zdarzenia:
–– ClickClick
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– CaptionCaption –– EnabledEnabled –– FontFont
–– TextAlignTextAlign
Formanty
Formanty Active Active - - X X
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
Formanty
Formanty Active Active - - X X
TextBox TextBox # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– EnabledEnabled –– FontFont
–– TextAlignTextAlign –– TextLengthTextLength –– ValueValue
Formanty
Formanty Active Active - - X X
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,
przewijanie przewijanie
Formanty
Formanty Active Active - - X X
ComboBox ComboBox # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– ColumnColumn –– EnabledEnabled –– FontFont
–– ListList
–– TextAlignTextAlign –– TextLengthTextLength –– ValueValue
Formanty
Formanty Active Active - - X X
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
Formanty
Formanty Active Active - - X X
ListBox ListBox # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– EnabledEnabled –– FontFont
–– ListList
–– TextAlignTextAlign –– TextLenthTextLenth –– ValueValue
Formanty
Formanty Active Active - - X X
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
Formanty
Formanty Active Active - - X X
ToggleButton ToggleButton # #
zdarzenia: zdarzenia:
–– ClickClick
–– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– CaptionCaption –– EnabledEnabled –– FontFont
–– TextAlignTextAlign –– ValueValue
Formanty
Formanty Active Active - - X X
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,
pozycja pozycja
Formanty
Formanty Active Active - - X X
CommandButton CommandButton # #
zdarzenia: zdarzenia:
–– ClickClick
–– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– CaptionCaption –– EnabledEnabled –– FontFont
Formanty
Formanty Active Active - - X X
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
Formanty
Formanty Active Active - - X X
Frame Frame # #
zdarzenia: zdarzenia:
–– ClickClick
–– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– CaptionCaption –– ConrolsConrols –– EnabledEnabled –– FontFont
Formanty
Formanty Active Active - - X X
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,
przewijanie przewijanie
Formanty
Formanty Active Active - - X X
MultiPage MultiPage # #
zdarzenia: zdarzenia:
–– ClickClick
–– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– EnabledEnabled –– FontFont
–– PagesPages –– ValueValue
Formanty
Formanty Active Active - - X X
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ładki zakładki
Formanty
Formanty Active Active - - X X
ScrollBar ScrollBar # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp –– ScrollScroll
własności: własności:
–– DelayDelay –– EnabledEnabled –– MaxMax
–– MinMin
–– SmallChangeSmallChange –– ValueValue
Formanty
Formanty Active Active - - X X
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,
przewijanie przewijanie
Formanty
Formanty Active Active - - X X
SpinButton SpinButton # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– SpinDownSpinDown –– SpinUpSpinUp
własności: własności:
–– DelayDelay –– EnabledEnabled –– MaxMax
–– MinMin
–– SmallChangeSmallChange –– ValueValue
Formanty
Formanty Active Active - - X X
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
Formanty
Formanty Active Active - - X X
Image Image # #
zdarzenia: zdarzenia:
–– ClickClick
–– DblClickDblClick
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– EnabledEnabled
Formanty
Formanty Active Active - - X X
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,
pozycja pozycja
Formanty
Formanty Active Active - - X X
RefEdit RefEdit # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– CancelCancel –– DefaultDefault –– EnabledEnabled –– FontFont
–– HeightHeight –– WidthWidth –– ValueValue
Formanty
Formanty Active Active - - X X
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,
przewijanie przewijanie
Formanty
Formanty Active Active - - X X
CheckBox CheckBox # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– AlignmentAlignment –– CaptionCaption –– EnabledEnabled –– FontFont
–– TextAlignTextAlign –– ValueValue
Formanty
Formanty Active Active - - X X
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,
pozycja pozycja
Formanty
Formanty Active Active - - X X
OptionButton OptionButton # #
zdarzenia: zdarzenia:
–– ChangeChange –– KeyDownKeyDown –– KeyPressKeyPress –– KeyUpKeyUp
–– MouseDownMouseDown –– MouseMoveMouseMove –– MouseUpMouseUp
własności: własności:
–– AlignmentAlignment –– CaptionCaption –– EnabledEnabled –– FontFont
–– TextAlignTextAlign –– ValueValue
Formanty
Formanty Active Active - - X X
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,
pozycja pozycja
Formularze użytkownika Formularze użytkownika
Przykład Przykład
… … …
… … …
UserForm1.Show UserForm1.Show
X0 = UserForm1.TextBox1.Value X0 = UserForm1.TextBox1.Value Y0 = UserForm1.TextBox2.Value Y0 = UserForm1.TextBox2.Value
R = UserForm1.TextBox3.Value R = UserForm1.TextBox3.Value N = UserForm1.TextBox4.Value N = UserForm1.TextBox4.Value
… … …
… … …
Formularze użytkownika Formularze użytkownika
Przykład Przykład
Private 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.Hide
UserForm4.Hide End Sub
End Sub
Wybrane metody Wybrane metody
Range
Range .Sort( .Sort( Klucz1 Klucz1 , , Porządek1 Porządek1 , , Klucz2 Klucz2 , , Typ Typ , , Porządek2
Porządek2 , , Klucz3 Klucz3 , , Porządek3 Porządek3 , , Nagłówek
Nagłówek , , Rozmiar Rozmiar , , Orientacja Orientacja ) )
Klucz
Klucz -- podstawa sortowania (wiersz lub kolumna)podstawa sortowania (wiersz lub kolumna) Porządek
Porządek -- kolejność sortowania (kolejność sortowania (xlAscendingxlAscending lub lub xlDescending
xlDescending))
TypTyp -- tylko dla tabel przestawnychtylko dla tabel przestawnych Nagłówek
Nagłówek -- czy jest nagłówek (czy jest nagłówek (xlYesxlYes, , xlNoxlNo, , xlGuessxlGuess)) Rozmiar
Rozmiar -- rozróżniać duże litery (rozróżniać duże litery (TrueTrue, , False)False) Orientacja
Orientacja-- kierunek sortowania (kierunek sortowania (xlSortRowsxlSortRows, , xlSortColumns
xlSortColumns))
Wybrane metody Wybrane metody
Application
Application . . FindFile FindFile
Wybrane metody Wybrane metody
Application
Application . . GetOpenFilename GetOpenFilename
Wybrane metody Wybrane metody
Application
Application . . GetOpenFilename GetOpenFilename ( ( Filtr Filtr , , Indeks Indeks , , Tytuł
Tytuł , , Wiele Wiele ) )
Filtr
Filtr -- kryterium wyboru plików (kryterium wyboru plików (””All FilesAll Files (*.*), (*.*),
*.*”*.*”)) Indeks
Indeks -- 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)) Wiele
Wiele -- możliwość wyboru wielu plików (możliwość wyboru wielu plików (TrueTrue, , False
False))
Wybrane metody Wybrane metody
Application
Application . . GetSaveAsFilename GetSaveAsFilename
Wybrane metody Wybrane metody
Application
Application . . GetSaveAsFilename GetSaveAsFilename ( ( Nazwa Nazwa , , Filtr
Filtr , , Indeks Indeks , , Tytuł Tytuł ) )
Nazwa
Nazwa -- sugerowana nazwa pliku(sugerowana nazwa pliku(”Book1.”Book1.xlsxls””)) Filtr
Filtr -- kryterium wyboru plików (kryterium wyboru plików (”All Files”All Files (*.*), (*.*),
*.*”*.*”)) Indeks
Indeks -- 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 (Save)Save)
segmentsegment FUNCTIONFUNCTION Function
Function nazwa (nazwa (arg1arg1,, arg2arg2,, ...)) AsAs typ typ
… … …
… … … nazwa
nazwa == wyrażeniewyrażenie
… … …
… … … Exit Function Exit Function
… … …
… … … nazwa
nazwa == wyrażeniewyrażenie
… … …
… … … End Function End Function
Segmenty kodu
Segmenty kodu
nazwa jednoznaczna w module nazwa jednoznaczna w module
wymiana informacji wymiana informacji → → parametry parametry + + nazwa nazwa
zgodność parametrów co do: zgodność parametrów co do:
–– liczbyliczby –– typutypu
–– kolejnościkolejności
FFunctionunction AbsolAbsol((ArgArg)) As As LongLong If Arg
If Arg >= 0 >= 0 ThenThen Absol
Absol = = ArgArg ElseElse
Absol
Absol = = --ArgArg End If
End If
EEnd Functionnd Function
WabsWabs==AbsolAbsol(W)(W)
nagłówek nagłówek
wywołanie wywołanie podstawienie podstawienie podstawienie podstawienie
Funkcja
Funkcja
segment SUBROUTINEsegment SUBROUTINE SubSub nazwa (nazwa (arg1arg1,, arg2arg2,, ...) )
… … …
… … … Exit Sub Exit Sub
… … …
… … … End Sub End Sub