Programování pro (Arc)GIS I KMA/AGI. Karel Jedlička

Podobné dokumenty
Tematický celek 03 - Cvičné příklady

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Visual Basic for Applications

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

2. Entity, Architecture, Process

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Skripty základy VB, vestavěné objekty, příklady

Čipové karty Lekařská informatika

Cvičné příklady Hodina 2

MS Excel makra a VBA

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

VISUAL BASIC. Přehled témat

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

Cvičné příklady Hodina 8 Cvičný 1

5. kapitola Spouštění aplikací Visual Basic.Net, spustitelné soubory

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Stručný úvod do programování v jazyce C 1.díl. České vysoké učení technické Fakulta elektrotechnická

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Gymnázium, Brno, Slovanské nám. 7 WORKBOOK. Mathematics. Teacher: Student:

Introduction to MS Dynamics NAV

Compression of a Dictionary

WORKSHEET 1: LINEAR EQUATION 1

První kapitola úvod do problematiky

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Stručný úvod do programování v jazyce C 2.díl. České vysoké učení technické Fakulta elektrotechnická

Programujeme v softwaru Statistica

Basic256 - úvod do programování Příklady. ing. petr polách

Chapter 7: Process Synchronization

Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK. Registrační číslo: CZ.1.07/2.2.00/

Gymnázium, Brno, Slovanské nám. 7, SCHEME OF WORK Mathematics SCHEME OF WORK. cz

USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Úvod do programovacích jazyků (Java)

DC circuits with a single source

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

EXACT DS OFFICE. The best lens for office work

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.

Poslední nenulová číslice faktoriálu

Databáze I. Přednáška 7

Transportation Problem

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Anglický text: Lesson 8: Class Inheritance

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Next line show use of paragraf symbol. It should be kept with the following number. Jak může státní zástupce věc odložit zmiňuje 159a.

1, Žáci dostanou 5 klíčových slov a snaží se na jejich základě odhadnout, o čem bude následující cvičení.

Java Cvičení 05. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9

Zápis programu v jazyce C#

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Jazyk PL/SQL Úvod, blok

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Izolační manipulační tyče typ IMT IMT Type Insulated Handling Rod

NA CO SI DÁT POZOR V JAVASCRIPTU? Angular.cz

Přidávání animací do programů

Digitální učební materiál

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Programovací jazyk Pascal

Operační systémy Linux, Mac OS X a jejich srovnání

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování v Pythonu

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

2 Axiomatic Definition of Object 2. 3 UML Unified Modelling Language Classes in UML Tools for System Design in UML 5

2011 Jan Janoušek BI-PJP. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

10 Algoritmizace Příklad 2 Word 2007/ VBA

Algoritmizace a programování

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VISUAL BASIC. Práce se soubory

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

IB111 Úvod do programování skrze Python Přednáška 7

Jak vložit obrázek do oblasti buněk

Makra v OpenOffice.org Calc

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

VYUŽITÍ DATA DRIVEN PAGES

PROGRAMOVÁNÍ V C++ CVIČENÍ

Czech Republic. EDUCAnet. Střední odborná škola Pardubice, s.r.o.

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Microsoft Office Excel - makra. Automatizace práce v MS Excel. Autor: Jaroslav Nedoma

Úvod do programovacích jazyků (Java)

1. Maple - verze. 2. Maple - prostredi. Document Mode vs. Worksheet Mode

x86 assembler and inline assembler in GCC

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Použití inteligentních značek s informačními službami

8 Třídy, objekty, metody, předávání argumentů metod

Transkript:

Programování pro (Arc)GIS I KMA/AGI Karel Jedlička smrcek@kma.zcu.cz http://www.kma.zcu.cz/jedlicka Vznik materiálu byl podpořen z projektu FRVŠ č. 584/2011

Programování pro (Arc)GIS Výběr z referenční příručky jazyka Visual Basic Objektová orientace (ve Visual Basic a.net) Component Object Model (COM) ArcObjects.NET Rozšiřování ArcGIS Desktop Model Builder (APA) Python (APA) Add-ins

Proč právě Visual Basic? Syntaxe Proměnné, procedury a jejich rozsah působnosti datové typy programové bloky (procedury a funkce) předávání parametrů struktury pro tvorbu a kontrolu běhu programu (větvení, cykly, přerušení) interakce s uživatelem (základní, formuláře)

Referenční příručka jazyka Visual Basic (pro Visual Studio v. 2010)

Proměnné Proměnná je ukazatel na část paměti, kde se nachází její hodnota. Jméno proměnné nesmí být klíčovým slovem v programovacím jazyce (např.: if.. then,..), musí začínat na písmeno, nesmí obsahovat tečky (tečková notace)! Implicitní deklarace proměnné typ je jí přiřazen při prvním výskytu. Explicitní vyžaduje deklaraci, pro práci s ArcObjects (viz dále) silně doporučováno! Option Explicit On Dim [nazevpromenne] As [typpromenne]

Definice rozsahu proměnných a procedur The scope of a variable, sometimes referred to as accessibility of a variable, refers to where the variable can be read from and/or written to, and the variable's lifetime, or how long it stays in memory. The scope of a procedure or method refers to where a procedure can be called from or under what context you are allowed to call a method. There are many different ways you can declare variables and procedures.

Definice rozsahu proměnných a procedur Term Used With Visibility Public Variables/Properties/Methods/Types Anywhere in or outside of a project Private Variables/Properties/Methods/Types Only in the block where defined Protected Variables/Properties/Methods Can be used in the class where defined. Can be used within any inherited class. Friend Variables/Properties/Methods Can only be accessed by code in the same project/assembly. ProtectedFriend Variables/Properties/Methods Combination of Protected and Friend

Proměnné Správné používání rozsahu působnosti proměnných: zpřehledňuje kód, šetří paměť, zlepšuje stabilitu programu.

Datové typy Integers decimal and numeric Approximate Numerics datetime and smalldatetime Character Strings Unicode Character Strings Binary Strings Other Data Types

Programové bloky Procedury [ scope ] Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist Handles eventlist ] [ statements ] [ Exit Sub ] [ statements ] End Sub Sub computearea(byval length As Double, ByVal width As Double) ' Declare local variable. Dim area As Double If length = 0 Or width = 0 Then ' If either argument = 0 then exit Sub immediately. Exit Sub End If ' Calculate area of rectangle. area = length * width ' Print area to Immediate window.! Debug.WriteLine(area) End Sub

Programové bloky Funkce [scope] Function name [ (Of typeparamlist) ] [ (parameterlist) ] [ As returntype ] [ Implements implementslist Handles eventlist ] [ statements ] [ Exit Function ] [ statements ] End Function Function myfunction(byval j As Integer) As Double myfunction = 3.87 * j End Function

Předávání parametrů Odkazem Sub Increment (ByRef x As Integer) x = x + 1 End Sub Sub Main () Dim a As Integer a = 1! End Sub Hodnotou MsgBox a Call Increment (a) MsgBox a Sub Increment (ByVal x As Integer)

Struktury pro tvorbu a kontrolu běhu programu Podmínka If If condition [ Then ] [ statements ] [ ElseIf elseifcondition [ Then ] [ elseifstatements ] ] [ Else [ elsestatements ] ] End If Dim number, digits As Integer Hodnotu získejte od uživatele Dim mystring As String number = 53 If number < 10 Then digits = 1 ElseIf number < 100 Then digits = 2 Else digits = 3 End If If digits = 1 Then mystring = "One" Else mystring = "More than one"

Struktury pro tvorbu a kontrolu běhu programu Select Case Select [ Case ] testexpression [ Case expressionlist [ statements ] ] [ Case Else [ elsestatements ] ] End Select Dim number As Integer = 8 Select Case number Case 1 To 5 Debug.WriteLine("Between 1 and 5, inclusive") ' The following is the only Case clause that evaluates to True. Case 6, 7, 8 Debug.WriteLine("Between 6 and 8, inclusive") Case 9 To 10 Debug.WriteLine("Equal to 9 or 10") Case Else Debug.WriteLine("Not between 1 and 10, inclusive") End Select

Struktury pro tvorbu a kontrolu běhu programu Smyčky While Loops The While...End While construction runs a set of statements as long as the condition specified in the While statement is True, see more in While...End While Statement (Visual Basic). Do Loops The Do...Loop construction allows you to test a condition at either the beginning or the end of a loop structure. You can also specify whether to repeat the loop while the condition remains True or until it becomes True, see more in Do...Loop Statement (Visual Basic). For Loops The For...Next construction performs the loop a set number of times. It uses a loop control variable, also called a counter, to keep track of the repetitions. You specify the starting and ending values for this counter, and you can optionally specify the amount by which it increases from one repetition to the next, see more in For...Next Statement (Visual Basic). For Each Loops The For Each...Next construction runs a set of statements once for each element in a collection. You specify the loop control variable, but you do not have to determine starting or ending values for it, see more in For Each...Next Statement (Visual Basic).

Struktury pro tvorbu a kontrolu běhu programu Cyklus While While condition [ statements ] [ Exit While ] [ statements ] End While Dim counter As Integer = 0 While counter < 20 counter += 1 ' Insert code to use current value of counter. End While MsgBox("While loop ran " & CStr(counter) & " times")!

Struktury pro tvorbu a kontrolu běhu programu Cyklus For... Next For counter [ As datatype ] = start To end [ Step step ] [ statements ] [ Exit For ] [ statements ] Next [ counter ] Dim words, digit As Integer Dim thisstring As String = "" For words = 10 To 1 Step -1 For digit = 0 To 9 thisstring &= CStr(digit) Next digit thisstring &= " " Next words

Struktury pro tvorbu a kontrolu běhu programu Cyklus For... Each For Each element [ As datatype ] In group [ statements ] [ Exit For ] [ statements ] Next [ element ] Dim found As Boolean = False Dim thiscollection As New Collection For Each thisobject As String In thiscollection If thisobject = "Hello" Then found = True Exit For End If Next thisobject

Interakce s uživatelem Základní vstup Public Function InputBox( _ ByVal Prompt As String, _ Optional ByVal Title As String = "", _ Optional ByVal DefaultResponse As String = "", _ Optional ByVal Xpos As Integer = -1, _ Optional ByVal YPos As Integer = -1 _ ) As String odpoveduzivatele = InputBox("Text k zobrazení", "Dialog pro získání vstupu od uživatele", "Hello World!")

Interakce s uživatelem Základní výstup Public Function MsgBox( _ ByVal Prompt As Object, _ Optional ByVal Buttons As MsgBoxStyle = _ MsgBoxStyle.OKOnly, _ Optional ByVal Title As Object = Nothing _ ) As MsgBoxResult MsgBox(odpovedUzivatele, MsgBoxStyle.Information, "Odpověď uživatele")

Interakce s uživatelem Pokročilá Formuláře Introduction to Windows Forms Vyžaduje událostmi řízené programování! Strukturované x událostmi řízené programování

Interakce s uživatelem Událostmi řízené programování Základním principem tvorby aplikací s GUI je řízení programu událostmi. Netýká se však pouze GUI, je to obecnější pojem označující typ asynchronního programování, kdy je: tok programu řízen událostmi; události nastávají obvykle určitou uživatelskou akcí klik či pohyb myši, stisk tlačítka,...; Event-driven programming

Přinuťte Visual Studio mocnit Cvičení Konzolový mód Ukázka tvorby jednoduchého prográmku s voláním podprocedury. Samostatná práce přinuťte Visual Studio mocnit

Přinuťte Visual Studio mocnit Samostatná práce přinuťte Visual Studio mocnit Zajistěte nutnost explicitní deklarace proměnných. Vytvořte proceduru Hello World. Vytvořte kód, který spočte druhou mocninu čísla uloženého v proměnné cislo. Hodnotu proměnné cislo získejte od uživatele. Kód, který počítá druhou mocninu volejte z hlavního kódu jako funkci mocnina(). Zobecněte funkci mocnina() pro n-tou mocninu. Hodnotu n získejte také od uživatele. Vytvořený kód ať s uživatelem komunikuje přes: InputBox a MsgBox Formuláře

Přinuťte Visual Studio mocnit Samostatná práce přinuťte Visual Studio mocnit Řešení Zajistěte nutnost explicitní deklarace proměnných. Option Explicit On Vytvořte kód, který spočte druhou mocninu čísla uloženého v proměnné cislo. Sub Main() Dim cislo As Double cislo = 4 cislo = cislo * cislo MsgBox cislo End Sub

Přinuťte Visual Studio mocnit Samostatná práce přinuťte Visual Studio mocnit Řešení Hodnotu proměnné cislo získejte od uživatele. cislo = Val(InputBox("Mocnenec:", "Funkce umocneni", "5"))

Přinuťte Visual Studio mocnit Samostatná práce přinuťte Visual Studio mocnit Řešení Kód, který počítá druhou mocninu volejte z hlavního kódu jako funkci mocnina(). Option Explicit On Private Function mocnina(mocnenec As Double) As Double mocnina = mocnenec * mocnenec End Function Sub Main() Dim cislo As Double Dim vysledek As Double cislo = Val(InputBox("Mocnenec:", "Funkce umocneni", "5")) vysledek = mocnina(cislo) MsgBox vysledek End Sub

Přinuťte Visual Studio mocnit Samostatná práce přinuťte Visual Studio mocnit Řešení Zobecněte funkci mocnina() pro n-tou mocninu. Hodnotu n získejte také od uživatele. Private Function nta_mocnina(mocnenec As Double, mocnitel As Integer) As Double Dim i As Integer Alternativně: Dim mezivysledek As Double mezivysledek = mocnenec Nt_mocnina = mocnenec^mocnitel For i = 2 To mocnitel mezivysledek = mezivysledek * mocnenec Next i nta_mocnina = mezivysledek End Function Sub Main() Dim cislo As Double Dim dalsi_cislo As Integer Dim vysledek As Double cislo = Val(InputBox("Mocnenec:", "Funkce umocneni", "2")) dalsi_cislo = Val(InputBox("Mocnitel:", "Funkce umocneni", "4")) vysledek = nta_mocnina(cislo, dalsi_cislo) MsgBox vysledek End Sub

Přinuťte Visual Studio mocnit Formuláře Vytvořte formulář pro umocňování, formulář bude obsahovat následující prvky (viz obr): Zadávací pole pro mocněnec i mocnitel s předvyplněnými hodnotami. Tlačítko pro umocnění. Prostor pro výpis výsledku operace. Při každém stisku tlačítka pro umocnění, bude přednastavená hodnota pro mocnitele zvednuta o 1.

Přinuťte Visual Studio mocnit Formuláře (řešení) FormMocneni.Text = "Mocneni"

Přinuťte Visual Studio mocnit Formuláře ' pseudokód Label1.Text = "Mocnenec:" Label2.Text = "Mocnitel:" TextBoxMocnenec.Text = "2" TextBoxMocnenec.TextAlign = Right TextBoxMocnitel. ButtonMocni.Text = "Mocni" GroupBoxVysledek.Text = "Vysledek" LabelVysledek.Text = " " Private Sub ButtonMocni_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles ButtonMocni.Click LabelVysledek.Text = (Val((TextBoxMocnenec.Text) ^ _ Val(TextBoxMocnitel.Text))) TextBoxMocnitel.Text = Val(TextBoxMocnitel.Text) + 1 End Sub

Zdroje Všechny použité zdroje jsou k dispozici on-line a jsou dostupné přímo formou odkazů z jednotlivých snímků