352 - Katedra automatizační         techniky a řízeníTechnické výpočty   Ing. David Fojtík, Ph.D.        A922, kl. 4193
Prostředí jazykaVisual Basic for Application     a struktura makra
Editor Microsoft Visual Basic for Application      • Okna se zobrazují        prostřednictvím nabídky View
Editor Microsoft Visual Basic for Application                • Okno projekt Okno projekt     – Obsahuje objektový pohled n...
Editor Microsoft Visual Basic for Application                  • Okno vlastností                    – Obsah se mění v závi...
Editor Microsoft Visual Basic for Application                          Okno kódu• Okno kódu– zobrazí se po  dvojkliku na  ...
Editor Microsoft Visual Basic for Application      Modře se zobrazují                             Rychlý přesun na makro  ...
Struktura makra - subrutiny         • Ohraničení makra - subrutiny            – Sub NazevMakra()           – začátek      ...
Historie Visual Basicu          aneb trocha historie nikoho nezabije• 1985 Microsoft uvedl OS Windows 1.0   – Windows se n...
Základní prvky jazykaVisual Basic for Application
Příkazy, subrutiny a argumenty                                         Argument subrutiny                   Sub Main()    ...
Konstanty• Číselné   – celé číslo                            10   – reálné číslo (vždy desetinná tečka)   3.14   – celé čí...
Výrazy                  Sub Main()               Výraz (jednoduchá početní                      D = 3^2-4*2*0.2           ...
Příkazy dialogů (funkce) MsgBox() a ImputBox() Sub Main()     MsgBox "Ahoj světe", vbInformation, "Pozdrav" End Sub• Bvěžn...
Proměnné a datové typy
Datově neurčité proměnné (variant)                 Sub Main()                  Cislo1 = 10   Proměnné       Cislo2 = 10   ...
Kde vzniká problém?Pravidla• Každá nová proměnná je implicitně vynulována. U typu variant je   hodnota Empty (prázdná)• St...
Deklarace proměnných a direktiva           Option Explicit• Direktiva Option    Explicit   – Uvádí se vždy na začátku     ...
Základní Datové typy Visual Basicu 6• Číselné datové typy slouží pro uchování numerických hodnot:     – Celočíselné datové...
Uchování hodnot v počítači Bit/Byte• Bit, pouze dvě hodnoty 0/1, realizuje se    –  Zapnuto/vypnuto – svítí/nesvítí       ...
Reálná čísla dle standardu IEEE 754   aneb vždy je dobré vědět něco navíc                                  10 ,625      … ...
Historie bitového zápisu informací         aneb trocha historie nikoho nezabije• 1956 Werner Buchholz, zavedl pojem       ...
Výjimky• Přetečení Overflow   – Vždy když se program     pokusí uložit do proměnné     hodnotu mimo         Option Explici...
Základní operátory Visual Basic=     Přiřazení, přiřadí hodnotu určenou pravým výrazem do      proměnné vlevo od operátoru...
Příklad• Řešení kvadratické rovnice                                ax2 bx c           0  (výpočet reálných kořenů)    1.  ...
??? kontrolní otázky ???• Jaký význam mají komentáře kódu?• Co jsou klíčová slova a jaká tvoří ohraničení makra?• Co jsou ...
352 - Katedra automatizační techniky a řízeníIng. David Fojtík, Ph.D.     A922, kl. 4193
Upcoming SlideShare
Loading in …5
×

Tv 06

4,108 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,108
On SlideShare
0
From Embeds
0
Number of Embeds
2,842
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tv 06

  1. 1. 352 - Katedra automatizační techniky a řízeníTechnické výpočty Ing. David Fojtík, Ph.D. A922, kl. 4193
  2. 2. Prostředí jazykaVisual Basic for Application a struktura makra
  3. 3. Editor Microsoft Visual Basic for Application • Okna se zobrazují prostřednictvím nabídky View
  4. 4. Editor Microsoft Visual Basic for Application • Okno projekt Okno projekt – Obsahuje objektový pohled na otevřené soubory (v MS Excelu Sešity) – Každý soubor je projektem VBAProject – Název souboru je v závorkách • Skupiny VBA projektu (souboru) – Skupina „Microsoft Excel Objects“  Obsahuje seznam listů a samotný dokument – Skupina „Modules“  Obsahuje seznam Modulů - úložiště pro makra,  Skupina se zobrazí pouze je-li v souboru nějaké makro – Další možné skupiny  Forms – uživatelské dialogy  Class Moduless – uživatelské třídy  Zobrazí se po přidání dialogu, nebo uživatelské třídy do souboru – Přidání objektu: pravým tlačítkem myši, v kontextovém menu zvolit „Insert“ po rozbalení vybrat typ objektu.
  5. 5. Editor Microsoft Visual Basic for Application • Okno vlastností – Obsah se mění v závislosti na výběru objektu v okně VBAProject – Zobrazují se vlastnosti vybraného objektu – Seznam vlastností může být seřazenOkno vlastností abecedně (záložka Alphabetic) nebo podle kategorií (záložka Categorized) – Vlastnost „(Name)“ se používá k internímu pojmenování objektů. – Vlastnost „Name“ se používá k uživatelskému pojmenování objektů. – Ostatní vlastnosti jsou závislé na typu vybraného objektu – Další možné skupiny
  6. 6. Editor Microsoft Visual Basic for Application Okno kódu• Okno kódu– zobrazí se po dvojkliku na objekt v okně VBAProject obvykle nad modulem– Obsahuje kód maker – textový zápis– Barvy textu kódu se mění automaticky
  7. 7. Editor Microsoft Visual Basic for Application Modře se zobrazují Rychlý přesun na makro klíčová slova Zeleně se zobrazují komentáře (začínají apostrofem) Zapíše-li se nesmysl je vyvoláno hlášení a problémový text zčervenáČerně sezobrazujeběžný kód Přepínač: Procedure View -vždy je vidět pouze jedno makro Full Module View – jsou vidět všechny makra
  8. 8. Struktura makra - subrutiny • Ohraničení makra - subrutiny – Sub NazevMakra() – začátek – End Sub – konec • Název makra - identifikátor – Nesmí obsahovat mezery – Nesmí začínat číslicí – Nesmí být shodný s klíčovými slovy – Nedoporučuje se česká diakritika • Komentáře – Nemají na funkci makra žádný vliv – Označení apostrofem ‘ nebo slovem Rem – Pouze jednořádkové konec řádku = konec komentáře • Příkazy – Jsou jednotlivé povely algoritmu – Primárně jsou ohraničeny řádky jeden řádek = jeden příkaz • Odsazení a prázdné řádky – Nemají na funkci makra žádný vliv – Jde o přehlednost kódu – doporučuje se
  9. 9. Historie Visual Basicu aneb trocha historie nikoho nezabije• 1985 Microsoft uvedl OS Windows 1.0 – Windows se na trhu nedaří – Hlavními problémy je nedostatek aplikací – Nové nevznikají protože je ve Windows komplikované programování• 1988 Alan Cooper vytvořil visuální programovací jazyk „Ruby“ – Předvedl jej Billu Gatesovi. – Microsoft tuto technologii ihned zakoupil.• 1988-1991 Microsoft implementuje Visual technologii do svého programovacího jazyka QBasic• 1991 uvedení MS Visual Basic 1.0 též VBA Alan Cooper – 1992, VB2 Duchovní otec jazyka Visual Basic – 1993, VB3 – 1996, VB4 – 1997, VB5 – 1998, VB6• 2001, VB. NET
  10. 10. Základní prvky jazykaVisual Basic for Application
  11. 11. Příkazy, subrutiny a argumenty Argument subrutiny Sub Main() MsgBox "Ahoj světe" Příkaz – volání subrutiny (funkce) End Sub Název subrutiny (funkce)• Příkazem rozumíme jeden samostatný povel algoritmu – Standardně je ohraničený řádkem – Může být stanoven:  voláním subrutiny nebo funkce,  určení výrazu,  klíčovým slovem,  kombinací.• Volání subrutiny – Uvedením názvu a všech povinných argumentů• Argumenty (prostředí VBA pomáhá zobrazováním platných seznamů, a rychlou nápovědou) – Povinné – musí být zadány, oddělují se čárkami – Nepovinné – mohou se vynechat, použije se implicitní hodnota. V nápovědě jsou označeny [hranatými závorkami]• Rychlá nápověda se automaticky zobrazí po zapsání mezery nebo závorky nebo čárky za správným názvem funkce. Také ikonou:
  12. 12. Konstanty• Číselné – celé číslo 10 – reálné číslo (vždy desetinná tečka) 3.14 – celé číslo v hexadecimálním kódu &H10• Řetězcové (text) – vždy jsou ohraničeny uvozovkami "Ahoj, jak se máš"• Logické – má pouze dvě hodnoty  Pravda (interně -1) True  Nepravda (interně 0) False
  13. 13. Výrazy Sub Main() Výraz (jednoduchá početní D = 3^2-4*2*0.2 End Sub operace)• Výrazem rozumíme operaci jejíž výsledkem je jedna hodnota – Může být formátu:  početní operace např. 3+2*10,  logické operace např. a>=b,  řetězcové (textové) operace např. "Petr" & " " & "Pavel",  Kombinace např. "Máslo – cena: " & 100 * DPH & ",- Kč"• Výrazy jsou často součástí argumentu funkcí Sub Main() MsgBox 10 + 10 Sečte a oznámí výsledek End Sub Sub Main() MsgBox "10 + 10 = " & 10 + 10 End Sub
  14. 14. Příkazy dialogů (funkce) MsgBox() a ImputBox() Sub Main() MsgBox "Ahoj světe", vbInformation, "Pozdrav" End Sub• Bvěžná syntaxe fc. MsgBox() – bez navracení hodnotyMsgBox prompt[, buttons] [, title] [, helpfile, context] – promp zobrazovaný text (povinný) závorky Pozor na – buttons přidání ikony nebo tlačítek (nepovinný) být • U subrutin nesmí – title text v titulku (nepovinný) funkcí musí být • U – helpfile, context přidání vlastní nápovědy (nepovinné) Sub Main() ZadanaHodnota = InputBox("Zadej číslo", "Vstup", 12) End Sub• Syntaxe funkce InputBox()[Val =] InputBox(prompt[,title][,default][,xpos][, ypos] [,helpfile, context]),helpfile,context]) – promp text výzvy (povinný) – title text v titulku (nepovinný) – default implicitní předefinovaná hodnota (nepovinná) – xpos, ypos souřadnice pozice dialogu (nepovinná) – helpfile, context přidání vlastní nápovědy (nepovinné)
  15. 15. Proměnné a datové typy
  16. 16. Datově neurčité proměnné (variant) Sub Main() Cislo1 = 10 Proměnné Cislo2 = 10 MsgBox Cislo1 & " + " & Cislo2 & " = " & Cislo1 + Cislo2 End Sub• Proměnná je symbolická reprezentace hodnoty, kterou nabude až během činnosti programu • Proměnná je jednoznačně určena názvem (identifikátorem) a umístěním • Zjednodušení ve Visual Basicu for Application (VB také do verze 6): • Nemusí být předem deklarována • Nemusí být stanoven její datový typ • Zjednodušení však přinášející následující problémy Sub Main() Cislo1 = 10 Při překlepu Cislo2 = 10 MsgBox Cislo1 & " + " & Cilo2 & " = " & Cislo1 + Cislo2 End Sub Sub Main() Při uživatelském vstupu Cislo1 = InputBox("Zadej číslo 1") (datový typ variant) Cislo2 = InputBox("Zadej číslo 2") MsgBox Cislo1 & " + " & Cislo2 & " = " & Cislo1 + Cislo2 End Sub
  17. 17. Kde vzniká problém?Pravidla• Každá nová proměnná je implicitně vynulována. U typu variant je hodnota Empty (prázdná)• Standardně není uvedena direktiva Option Explicit, to znamená, že veškeré neznámé identifikátory, které se objeví v příkazech a výrazech jsou chápány jako proměnné typu variant Sub Main() Cislo1 = 10 První výskyt identifikátoru => prázdná variant proměnná Cislo2 = 10 MsgBox Cislo1 & " + " & Cilo2 & " = " & Cislo1 + Cislo2 End SubPravidla• Datový typ Varian si uchovává hodnotu ve formátu, v jakém ji obdrží.• Funkce InputBox() vrací řetězec (text) tzn. datový typ String• Operátor + má dva významy: součet čísel a spojení textů Sub Main() Při uživatelském vstupu Sub Main() Cislo1 = InputBox("Zadej číslo 1") (datový typ variant) MsgBox 10 + 10 20 Cislo2 = InputBox("Zadej číslo 2") MsgBox "10" + 10 20 MsgBox Cislo1 & " + " & Cislo2 & " = " & Cislo1 + Cislo2 MsgBox "10" + "10" "1010" End Sub End Sub
  18. 18. Deklarace proměnných a direktiva Option Explicit• Direktiva Option Explicit – Uvádí se vždy na začátku modulu – Zapíná povinnost deklarovat proměnnou dříve než se použije. – Každá neznámý identifikátor se chápe jako chyba• Deklarace – Uvádí se nejpozději před použitím proměnné Option Explicit – Zkrácená Syntaxe Sub Main() Dim Cislo1 As Integer Dim IDProměnné Dim Cislo2 As Integer proměnná je pak Cislo1 = InputBox("Zadej číslo 1") Cislo2 = InputBox("Zadej číslo 2") typu variant MsgBox Cislo1 & " + " & Cislo2 & " = " & Cislo1 + Cislo2 – Plná Syntaxe End Sub Dim IDProměnné As DatovýTyp
  19. 19. Základní Datové typy Visual Basicu 6• Číselné datové typy slouží pro uchování numerických hodnot: – Celočíselné datové typy • Byte, velikost 1 byte (8 bitů), pouze kladné hodnoty 0 ÷ 255 • Interger velikost 2 byte (16 bitů), rozsah -32,768 to 32,767 • Long velikost 4 byte (32 bitů), rozsah -2,147,483,648 ÷ 2,147,483,647 – Reálné datové typy • Single 4 byte, přesnost 7 cifer, ±3.402823E38 ÷ ±1.401298E-45 • Double 8 byte, přesnost 15, ±1.79769313486231E308 ÷ ±4.94065645841247E-324 • Currency 8 byte, přesnost 15-4, ±922,337,203,685,477.5808 – Speciální typ Decimal 12 byte, přesnost i rozsah 28 cifer• Řetězcový datový typ String – Standardně proměnná velikost řetězce (textu) – Je možné nastavit i pevnou velikost – Dim znak As String *1 – Kódování Unicode• Datový typ Date pro uchování Datumu a času• Datový typ Boolean pro uchování logické hodnoty True/False• Speciální datové typy – Uživatelský datový typ Type, výčtový typ Enum• Objektové datové typy – Slouží k uchování referencí na objekty, Neomezené množství = každý programátor si může vytvořit svoje
  20. 20. Uchování hodnot v počítači Bit/Byte• Bit, pouze dvě hodnoty 0/1, realizuje se – Zapnuto/vypnuto – svítí/nesvítí • Bitové operace součtu – Změna napětí (např. TTL 0 = V) dále 0 0 + 0/5 0 – Změna frekvence 0 + 1 = 1 dále 0 – Změna magnetické polarizace 0 dále 1 1 + 1 = atd.• Byte, velikost 8 bitů,+primárně dálejim vyjadřuje 1 0 + 1 = 0 se 1 celé číslo • Přímý bezznaménkový+ 1 + 1 = 1Doplňkový kód 1 kód dále 1 0000 0000 • Příklad součtu čísel 0000 0 0000 0 0000 0001 1o Přímý kód 0000 0001 1 0000 0010 2 0000 0011 0000 3 0010 2 … + 0000 0111 7 0111 1111 127 0111 1111 127 1000 0000 128 0000 1010 100010 0000 -128 1000 0001 129 1000 0001 -127 1000 0010 130 Doplňkový kód o 1000 0010 -126 … 0000 0101 5 1111 1100 252 1111 1101 + 1111-3 1100 -4 1111 1101 253 0000 0010 1111 2 1101 -3 1111 1110 254 1111 1110 -2 1111 1111 255 1111 1111 -1
  21. 21. Reálná čísla dle standardu IEEE 754 aneb vždy je dobré vědět něco navíc 10 ,625 … 0 0 0 1 0 1 0 1 0 1 0 0 0 … +3 + - 127 + 3 = 130 … 0 0 0 1 0 1 0 1 0 1 0 0 0 … 0,25 + 0,0625 + 0,015625 01000001001010100000000000000000 S E = 130 M = 0,328125 (-1)S · 2E-127 · 1,M = 23 · 1,328125 = 10,625
  22. 22. Historie bitového zápisu informací aneb trocha historie nikoho nezabije• 1956 Werner Buchholz, zavedl pojem A .- N -. B O byte při práci na počítači IBM Stretch. -... --- C -.-. P .--. Zpočátku tento termín popisoval D -.. Q --.- skupinu 1–6 bitů, přechod na E . R .-. F ..-. S ... osmibitový byte se udál ke konci roku. G --. T - kalkulátor Osmibitový bajt je dnes standardem. H .... U ..- Vannenara Bushe• 1931 (počáte 0. generace počítačů) CH ---- I .. V W ...- .-- Vannenar Bush vyvinul kalkulátor pro J .--- X -..- řešení komplexních diferenciálních K -.- Y -.-- L .-.. Z --.. rovnic M -- -.• 1854 - Booleova algebra (George S. Boole)• 1838 Morse uvedl telegrafický kód „Morseova abeceda.• Kouřové signály, bubnování Samuel Finley Breese Morse• DNA
  23. 23. Výjimky• Přetečení Overflow – Vždy když se program pokusí uložit do proměnné hodnotu mimo Option Explicit rozsah jejího Sub Main() datového typu Dim Cislo1 As Byte Dim Cislo2 As Byte – Také když výsledek Cislo1 = InputBox("Zadej číslo 1") výrazu přesahuje Cislo2 = InputBox("Zadej číslo 2") velikost proměnné End Sub Cislo1 & " + " & Cislo2 MsgBox & " = " & Cislo1 + Cislo2• Nesoulad typů type mismatch – Vždy když se program pokusí uložit do proměnné hodnotu která nemůže být konvertována na datový typ proměnné Option Explicit – Např. Sub Main() Dim Cislo1 As Byte slovo Deset nelze Dim Cislo2 As Byte převést na číslo Cislo1 = InputBox("Zadej číslo 1") Cislo2 = InputBox("Zadej číslo 2") MsgBox Cislo1 & " + " & Cislo2 & " = " & Cislo1 + Cislo2 End Sub
  24. 24. Základní operátory Visual Basic= Přiřazení, přiřadí hodnotu určenou pravým výrazem do proměnné vlevo od operátoru Cislo = 10 ‘10+ součet dvou čísel nebo spojení dvou textů Cislo = 10 + 20 ‘30- Rozdíl hodnot nebo změna znaménka Cislo = -10 – 20 ‘-30* Násobení Cislo = 3 * 3 ‘9 Priorita operátorů/ Reálné dělění () Priorita Cislo = 10 / 3 ‘3.33333333 * / Mod Celočíselné dělění + - Cislo = 10 3 ‘3 = přiřazeníMod Zbytek po celočíselném dělení Cislo = 10 Mod 3 ‘1^ Umocnění/Odmocnění Cislo = 10 ^ 2 ‘100 Cislo = 27 ^ (1/3) ‘3& Spojování textů CeleJmeno = "James" & " Bond" ‘"James Bond"
  25. 25. Příklad• Řešení kvadratické rovnice ax2 bx c 0 (výpočet reálných kořenů) 1. Načtení koeficientů a,b,c D b 2 4ac 2. Výpočet diskriminantu D b D 3. Výpočet kořenů x1 a x2 x1, 2 4. Oznámení výsledků 2aSub Main() Dim D As Double Diskriminant Dim a As Double, b As Double, c As Double Koeficienty kvadraticke rovnice Dim x1 As Double, x2 As Double Hledane reseniZiskani koeficientu rovnice a = InputBox("Zadej koeficient a:", "Ax^2 + Bx + C") b = InputBox("Zadej koeficient b:", "Ax^2 + Bx + C") c = InputBox("Zadej koeficient c:", "Ax^2 + Bx + C")Vypocet diskriminantu D = b ^ 2 - 4 * a * cVypocet korenu rovnice x1 = (-b + Sqr(D)) / (2 * a) x2 = (-b – D^(1/2)) / (2 * a)Vypis vysledku MsgBox "x1 = " & x1 & vbCrLf & "x2 = " & x2, , _ "Řešení rovnice: " & a & "x^2 + " & b & "x + " & cEnd Sub
  26. 26. ??? kontrolní otázky ???• Jaký význam mají komentáře kódu?• Co jsou klíčová slova a jaká tvoří ohraničení makra?• Co jsou povinné a volitelné argumenty a jak je poznáme?• K čemu slouží direktiva Option Explicit?• Jaké jsou celočíselné datové typy ve VB a v čem se liší?• Ve kterém datovém typu bude hodnota 123456789 uchována přesněni Long, Single?• Co znamená výjimka přetečení (overflow) a kdy vzniká?• Co znamená výjimka nesoulad typů (type mismatch)?• Jakým způsobem se realizuje 3. odmocnina čísla?• Jaký bude výsledek výrazu 3 + 10 / 2 *(3 +2) Mod 5?
  27. 27. 352 - Katedra automatizační techniky a řízeníIng. David Fojtík, Ph.D. A922, kl. 4193

×