Informationsverarbeitung im Bauwesen

Ähnliche Dokumente
Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen

Modul 122 VBA Scribt.docx

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Variablen und Konstanten

Excel VBA Arrays, Enumeration und benutzerdefinierte Typen

Makro + VBA 2007 effektiv

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Einführung in VisualBasic for Applications. Stefan Mahlitz

Informationsverarbeitung im Bauwesen

Excel VBA. Teil Zusammenfassung! Was wir können sollten! V

Sin-Funktion vgl. Cos-Funktion

Informationsverarbeitung im Bauwesen

Einführung in die Programmierung mit VBA

VBA-Programmierung: Zusammenfassung

VisualBasic - Variablen

Klausur SS 2013 EDV Anwendungen im Bauwesen. Name: Vorname: Matr.-Nr:

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Informationsverarbeitung im Bauwesen

VBA (Visual Basic for Application) Arrays, Collections, Enum und benutzerdefinierte Datentypen

Access 2010 Programmierung Schleifen

Algorithmen und ihre Programmierung

4 Schleifen -= Entstanden unter Excel 2003 =-

Grundkurs Software- Entwicklung mit C++

VBA Grundlagen. VBA Grundlagen - Steuerelemente. VBA Grundlagen - Variable. VBA Grundlagen Namensbildung, Kommentar

Makro Programmierung User Interface (Entwicklungs- Umgebung) Grafische Werkzeugbox. GUI Form erstellen (UserForm)

Vektoren und Matrizen in Excel

Grundlagen der Programmierung

2. Programmierung in C

Tutorium für Fortgeschrittene

Repetitorium Informatik (Java)

Visual Basic - Einführung Mathematische Funktionen und Operatoren Zeichenfolgenbearbeitung. 1.7 Schleifen, Arrays und Entscheidungen

Einstieg in die Informatik mit Java

Programmieren mit Excel VBA Teil 2 Formulare als Benutzerschnittstellen

Kurze Einführung in die Programmiersprache C++ und in Root

Die Programmiersprache C Eine Einführung

Woche 1 im Überblick 26

Erste Schritte der Programmierung in C

EXCEL VBA Cheat Sheet

Einstieg in die Informatik mit Java

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

C für Java-Programmierer

Universität Duisburg - Essen

Objektorientierte Programmierung OOP Programmieren mit Java

Prof. W. Henrich Seite 1

Überlegungen zur Entwicklung von Access- Anwendungen

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung 11. Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen 17

I Inhaltsverzeichnis B Beispielverzeichnis Vorwort... 17

Hinweis. PKAntonitsch, 20. April 2002 (für kritische Rückmeldungen:

GI Vektoren

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Excel Funktionen durch eigene Funktionen erweitern.

Mit ParamArrays unter VBA kann man Prozeduren und Funktionen mit einer flexiblen Anzahl von Parametern bestücken Kontext

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Zeiger: Der Adressoperator &

Tabellenkalkulation / Funktionen. VBA Visual Basic for Applications VBA auf einfache Art und Weise nutzen Der Makro-Recorder von EXCEL

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

Javakurs für Anfänger

Microsoft Access 2010 Bilder

Einstieg in die Informatik mit Java

Eine Variable des Datentyps Variant kann alles sein, aber welcher Datentyp steckt in der Variant-Variablen nun eigentlich drin?

E-PRIME TUTORIUM Die Programmiersprache BASIC

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

BAUINFORMATIK. SS 2013 Vorlesung 1 Johannes Lange

Informationsverarbeitung im Bauwesen

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

10:Exkurs MATLAB / Octave

Einführung in die Java- Programmierung

Ecxel Makros Programmieren

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Einführung in Visual Basic 6.0

Einstieg in die Informatik mit Java

+ C - Array (Vektoren, Felder)

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Übungspaket 23 Mehrdimensionale Arrays

VBA mit Office 97 lernen

Grundlagen der Informatik Enums, Strings und Arrays

4.Grundsätzliche Programmentwicklungsmethoden

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Programmiertechnik Klassenmethoden

Access 2010 Programmierung Funktionen in Access

Tag 9: Datenstrukturen

Dr. Monika Meiler. Inhalt

Theorie zu Übung 8 Implementierung in Java

Transkript:

9 im Bauwesen Markus Uhlmann 1

Zusammenfassung der 8. Vorlesung Variablendeklarationen: Gültigkeitsbereiche Variablentypen: Typenbestimmung Typenumwandlung Eingabe/Ausgabe von Daten: Textdateien, Binärdateien Dateiauswahl über Dialogfenster 2

Inhalt / Planung der Vorlesung 1. Informationsdarstellung & -verarbeitung Grundlagen 2. Betriebssysteme, Programmiersprachen * 3. Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen * 5. Logische Elemente I * 6. Logische Elemente II * 7. Beispielprogramm (Dynamik starrer Körper) * 8. Datentypen, Eingabe/Ausgabe * 9. Datenfelder * 10. Benutzerdefinierte Datentypen * 11. Objektorientierte Programmiertechniken I * 12. Objektorientierte Programmiertechniken II * 13. Matlab I Matlab 14. Matlab II * 3

Inhalt der heutigen Vorlesung Datenfelder () Statische Felder Felder Bestimmung der Grenzen Felder als Parameter für Prozeduren/Funktionen : Matrix-Vektor Multiplikation Sortieren Dynamik multipler Kreiskörper Formulare in VBA 4

Notwendigkeit von Feldern Wiederholte Daten gleichen Typs: Lineare Algebra (Matrix/Vektoroperationen) Zeitreihen Bilddaten Ungeordnete Listen Notwendigkeit der Indizierung einzelner Elemente Bestimmung der Anzahl der Elemente Datenfelder 5

(Felder) Definition und Eigenschaften: sind ein- oder mehrdimensionale Felder (Vektoren, Matrizen, ) gleicher Datentypen. liefern eine Speicherstruktur, die eine bestimmte Anzahl von Elementen aufnehmen kann. Zugriff auf einzelne Elemente: Angabe von Indizes der jeweiligen Dimensionen, durch Komma getrennt. erfolgt wie bei skalaren Variablen (Dim Private Public Static) Zuweisung eines beliebigen Datentyps können in VBA nicht als Konstante vereinbart werden. Anzahl der Dimensionen kann maximal 60 betragen 6

Statische und Eigenschaften: Statische : Dimensionen und Grenzen sind festgelegt. Beispiel: Dim a(1 To 5, 1 To 2) as Integer vereinbart: 2-dimensionales Feld, Grenzen 1-5 und 1-2, also 10 Elemente Dimensionen können während des Programmablaufs nicht modifiziert werden. Die Angabe der Untergrenze ist optional. Voreinstellung: Untergrenze 0. Standardwert der Untergrenze kann auf 1 gesetzt werden: Option Base 1 Syntax: Dim Name(OG1,[OG2,...]) [As Typ] Dim Name(UG1 To OG1,[UG2 To OG2,...]) [As Typ] 7

Darstellung von im VBE Beispiel: 3-dimensionales Array Dim Matrix(1, 2, 4) As Integer [0, 1] [0, 1, 2] [0, 1, 2, 3, 4] 8

und Eigenschaften: Dimension dynamischer wird im Laufe des Programms bestimmt und ggf. modifiziert. Möglichkeit zur Bearbeitung von Daten dynamischen Umfangs. ohne Vereinbarung von Arraygrenzen Syntax: Dim Name() [As Typ] Größenfestlegung erfolgt im Programmtext mittels einer ReDim Anweisung Syntax: ReDim Name(UG1 To OG1, [UG2 To OG2...]) 9

: ReDim ReDim Anweisung: ReDim kann beliebig oft angewendet werden ReDim reinitialisiert das Feld (Inhalt geht verloren) ReDim kann Anzahl der Dimensionen und Grenzen ändern ReDim Preserve Anweisung: Mit ReDim Preserve bleiben die bisherigen Feldeinträge erhalten (bis auf verringerte Grenzen) ReDim Preserve kann nur die obere Grenze modifizieren Mehrdimensionale : ReDim Preserve kann nur bei Änderung der letzten Dimension angewendet werden. Anzahl der Dimensionen kann nicht geändert werden Syntax: ReDim Preserve Name(UG1 To OG1, [...]) 10

Bsp. Sub test() Dim a() As Integer ' ReDim a(1 To 2) a(1) = 1 a(2) = 2 Debug.Print "a(1)=" & a(1) ' ' ReDim a(1 To 4) ReDim Preserve a(1 To 4) a(3) = 3 a(4) = 4 Debug.Print "a(1)=" & a(1) End Sub 11

Bsp. : von a.) Definition eines Vektors mit drei Komponenten (0 bis 2) Dim Vektor(2) As Integer b.) Definition einer 11 x 11 Matrix Dim Matrix(0 To 10, 0 To 10) As Single c.) Definition eines Schachbretts mit 64 Feldern (dynamisch) Dim Schachmuster() As Integer ReDim Schachmuster(1 To 8, 1 To 8) 12

Grenzen: LBound & UBound LBound & UBound: Mit den Funktionen LBound und UBound können die unteren bzw. oberen Grenzen von Feldern abgefragt werden. Das Resultat bezieht sich auf die angegebene Dimension (falls nicht angegeben: Dimension 1) Syntax: LBound(arrayname [,dimension]) UBound(arrayname [,dimension]) Bsp: For j = LBound(Matrix, 2) To UBound(Matrix, 2) 13

Bsp. Grenzen von Feldern / ReDim Const dn As Integer = 2 Sub test() Dim icontinue As Integer, icount As Integer Dim ub As Integer Dim s_array() As String ReDim s_array(1 To dn) icontinue = 1 icount = 1 Do While icontinue = 1 s_array(icount) = InputBox("Geben Sie _ einen Namen ein:") icount = icount + 1 ub = UBound(s_array) If icount > ub Then ReDim Preserve s_array(1 To ub + dn) End If icontinue = InputBox("Fortfahren [1]?") Loop End Sub 14

Löschen von mit Erase Erase Anweisung: Löscht den Inhalt von statischen. Gibt den Speicherplatz von dynamischen frei. Syntax: Erase ArrayName [,ArrayName2, ] 15

Parameter Array Parameter-Array: 1-dimensionales Feld geeignet für die Übergabe von einer unbestimmten Anzahl von Parametern. Letztes Argument einer Parameterliste kann nur Datentyp Variant annehmen. Syntax: Function Name([,] Name() As Variant) oder Sub Name([,] Name() As Variant) 16

Bsp. Parameter Array Sub test() Dim a As Integer, b As Double, s As String a = 4 b = 5.4444 s = "hello!" Call test2(a, b, s) End Sub Sub test2( args() As Variant) Dim i As Integer For i = LBound(args) To UBound(args) Debug.Print i & "ter Parameter:" & args(i) Next i End Sub 17

Bsp. Sortieralgorithmus Sortieren eines Vektors mittels bubble-sort (Quelltext: VBA) 18

Bsp. Bewegung mehrerer Kreise Modifikation des früheren Beispiels: Anzahl ncirc Kreisobjekte Position, Geschwindigkeitskomponenten, und Grafikobjekte sind Vektoren Stöße zwischen Partikeln (Quelltext: VBA) 19

Formulare in VBA Erzeugung von Formularobjekten: Formulare werden durch eigene Objekte repräsentiert (Einfügen -> Userform) Eigene Gestaltung durch Steuerelemente ( drag & drop ) Attribute setzen im Eigenschaftsfenster Formulare 20

Formulare in VBA Werteübergabe aus Formularen: Wert (Inhalt) von Steuerelementen liegt als Eigenschaft des entsprechenden Objektes vor Eintrag in Textfelder, Auswahl von Kontrollkästchen, usw. kann ausgelesen & im Programm verwendet werden Bsp.: feld_text=userform2.textbox1.text Formulare 21

Formulare in VBA Formulare & Ereignisse: Steuerelemente sind mit Ereignissen verbunden (z.b. Click ) Programmtext kann an Eintreten eines Ereignisses gebunden werden Liste der definierten Ereignisse ist in Menü des Codefensters des Formulars verzeichnet Formulare 22

Bsp. zu Formularen in VBA Wiederholte Eingabe von Zeichenketten: (Quelltext: VBA) Formulare 23

Speicherlayout von Arrayelementen Formulare In VBA werden Arrayelemente entlang der ersten Dimension an benachbarten Speicherplätzen abgelegt [Vergleich: ebenso in FORTRAN; umgekehrt in C/C++] Bei mehrfachen Schleifen über mehrdimensionale sollte daher die innerste Schleife über die erste Dimension laufen schnellere Ausführung des Programms (wichtig bei großen mit tausenden Elementen) Speicherlayout 24

Speicherlayout von Arrayelementen Beispiel: Messung der Rechengeschwindigkeit in Abhängigkeit von der Schleifenreihenfolge Formulare Speicherlayout (Quelltext: VBA) 25