98
Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck 2.4.2007 Universit¨ at Duisburg-Essen Bauwissenschaften / Fachgebiet Baustatik Dr. E. Baeck / eMail: [email protected] Bauinformatik - I 1/ 98

Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Bauinformatik4. Semester

Fachstudium - Pflichtmodul - Teil 1

Menkenhagen / Baeck

2.4.2007

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I1 / 98

Page 2: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Inhaltsverzeichnis

1 Vorbemerkungen 71.1 Veranstaltungsstruktur . . . . . . . . . . . . . . . . . . . . . . 71.2 Online-Unterlagen . . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Prufungsleistungen . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Einleitung 92.1 Dreimomentengleichung (Clapeyron) . . . . . . . . . . . . . . 112.2 Programmtechnische Umsetzung . . . . . . . . . . . . . . . . 12

2.2.1 Problembeschreibung . . . . . . . . . . . . . . . . . . 122.2.2 Problemlosung . . . . . . . . . . . . . . . . . . . . . . 12

3 Hardware 133.1 Hardwarearchitektur . . . . . . . . . . . . . . . . . . . . . . . 13

3.1.1 von-Neumann Architektur . . . . . . . . . . . . . . . 133.1.2 Restaurant-Analogon . . . . . . . . . . . . . . . . . . 14

3.2 IBM-PC, der Ur-PC . . . . . . . . . . . . . . . . . . . . . . . . 163.3 Mikroprozessoren . . . . . . . . . . . . . . . . . . . . . . . . . 183.4 Eingabemedien . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4.1 Lochkartenstanzer . . . . . . . . . . . . . . . . . . . . 193.4.2 Die Tastatur . . . . . . . . . . . . . . . . . . . . . . . 20

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I2 / 98

Page 3: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.4.3 Touchscreen . . . . . . . . . . . . . . . . . . . . . . . 213.4.4 Mause . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.4.5 Graphiktablett . . . . . . . . . . . . . . . . . . . . . . 23

3.5 Speichermedien . . . . . . . . . . . . . . . . . . . . . . . . . . 243.5.1 Der Lochstreifen . . . . . . . . . . . . . . . . . . . . . 243.5.2 Die Lochkarte . . . . . . . . . . . . . . . . . . . . . . 253.5.3 Die Festplatte . . . . . . . . . . . . . . . . . . . . . . 263.5.4 Mobile Speichermedien . . . . . . . . . . . . . . . . . 27

3.6 Einheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.6.1 Speichereinheit . . . . . . . . . . . . . . . . . . . . . . 303.6.2 Speicherkapazitaten . . . . . . . . . . . . . . . . . . . 313.6.3 Performanceeinheit FLOPS . . . . . . . . . . . . . . . 34

4 286-386-Prozessor 374.1 Das legendare Hello World als 16-Bit-Assembler-Programm 374.2 Register der 286-Architektur . . . . . . . . . . . . . . . . . . 384.3 Register der 386-Architektur . . . . . . . . . . . . . . . . . . 40

5 Zahlensysteme 415.1 Das binare Zahlensysteme . . . . . . . . . . . . . . . . . . . . 425.2 Das oktale Zahlensysteme . . . . . . . . . . . . . . . . . . . . 435.3 Das hexadezimale Zahlensysteme . . . . . . . . . . . . . . . . 43

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I3 / 98

Page 4: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5.4 Beliebige Zahlensysteme . . . . . . . . . . . . . . . . . . . . . 435.5 Darstellung negativer Zahlen . . . . . . . . . . . . . . . . . . 445.6 IEEE-Float-Darstellung . . . . . . . . . . . . . . . . . . . . . 455.7 Zeichentabellen . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6 Programmiersprachen 476.1 Generationen der Programmiersprachen . . . . . . . . . . . . 486.2 Sprachebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7 Algorithmen 527.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . 527.2 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.3 Beispiel: Euklidischer Algorithmus . . . . . . . . . . . . . . . 547.4 Programmablaufplan PAP . . . . . . . . . . . . . . . . . . . . 56

7.4.1 Beispiel: PAP - Algorithmus nach Euklid . . . . . . . 577.5 Nassi-Shneiderman-Diagramm, Struktogramme, NSD . . . . 59

7.5.1 Beispiel: NSD - Algorithmus nach Euklid . . . . . . . 637.6 UML - Unified-Modeling-Language . . . . . . . . . . . . . . . 64

8 VBA-Einfuhrung 668.1 Elementare Datenobjekte . . . . . . . . . . . . . . . . . . . . 668.2 Elementare Datentypen . . . . . . . . . . . . . . . . . . . . . 67

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I4 / 98

Page 5: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.2.1 Implizite Deklaration . . . . . . . . . . . . . . . . . . . 698.2.2 Explizite statische Deklarationen . . . . . . . . . . . . 698.2.3 Explizite dynamische Deklarationen . . . . . . . . . . 708.2.4 Benutzerdefinierte Datentypen, Strukturen . . . . . . 71

8.3 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728.4 Intrinsic Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 738.5 Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . 748.6 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.7 Auswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.8 Unterprogramme und Funktionen . . . . . . . . . . . . . . . . 828.9 Dateifunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . 83

8.9.1 Open . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.9.2 Close . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.9.3 Eine Textdatei . . . . . . . . . . . . . . . . . . . . . . 858.9.4 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868.9.5 Write . . . . . . . . . . . . . . . . . . . . . . . . . . . 878.9.6 EOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888.9.7 Line Input . . . . . . . . . . . . . . . . . . . . . . . . . 89

8.10 Klassenmodule . . . . . . . . . . . . . . . . . . . . . . . . . . 908.10.1 Instanzen . . . . . . . . . . . . . . . . . . . . . . . . . 908.10.2 Konstruktor . . . . . . . . . . . . . . . . . . . . . . . . 918.10.3 Destruktor . . . . . . . . . . . . . . . . . . . . . . . . 91

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I5 / 98

Page 6: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.11 Listen und Containerklassen . . . . . . . . . . . . . . . . . . . 928.11.1 Die Add-Methode . . . . . . . . . . . . . . . . . . . . 938.11.2 Die Remove-Methode . . . . . . . . . . . . . . . . . . 948.11.3 Die Item-Methode . . . . . . . . . . . . . . . . . . . . 94

8.12 Beispiel Newton-Verfahren . . . . . . . . . . . . . . . . . . . . 958.12.1 Der Algorithmus, 1-dimensionaler Fall . . . . . . . . 958.12.2 Pseudo-Code . . . . . . . . . . . . . . . . . . . . . . . 968.12.3 Programmablaufplan . . . . . . . . . . . . . . . . . . 978.12.4 Nassi-Schneidermann-Diagramm . . . . . . . . . . . . 98

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I6 / 98

Page 7: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

1. Vorbemerkungen

1.1. Veranstaltungsstruktur

Veranstaltungsteile

• Teil 1: 7 Wochen: Baeck/Menkenhagen (Baustatik)

• Teil 2: 4 Wochen: Schroder (Mechanik)

• Teil 3: 4 Wochen: Schnellenbach-Held (Massivbau)

Weitere Hinweise

• 1,5 SWS Vorlesung und 2,5 SWS Ubungen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I7 / 98

Page 8: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

1.2. Online-Unterlagen

• Auf dem Info-Server (http://info.baustatik.uni-due.de) werden aktuelleSkriptteile zur Veranstaltung Teil 1 veroffentlicht.

• Weitere Informationen werden im Forum zur Veranstaltung veroffent-licht.

1.3. Prufungsleistungen

• 1 Klausuren pro Veranstaltung.

• 2 Hausarbeit pro Veranstaltungsteil.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I8 / 98

Page 9: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

2. Einleitung

• Nach einer kurzen Darstellung der Hardwareentwicklung und einem Uber-blick uber die gangigen Einheiten fur Speicher und Performance wirdanhand des Beispiels der 3-Momentengleichung (Clapeyron) ein roterFaden durch eine angewandte Informatik gelegt. Wofur ist das gut?

• Einfuhrung in VBA. Grundlegende Sprachkonstrukte (Schleifen, Verzwei-gungen, Funktionen).

• Beispiele:

– Arbeiten mit Vektoren und Matrizen (Skalarprodukt, Matrixmultipli-kation).

– Dreieckszerlegung nach Cholesky und Losung eines linearen Glei-chungssystems unter optionaler Ausnutzung der Bandstruktur.

• Objektorientierter Ansatz fur Vektoren und Matrizen. Anwendung aufClapeyron-Beispiel.

• Arbeiten mit Listen und Baumen. Listenbasierendes Datenmodell furBelastungen (Lastfalle, Lastdaten).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I9 / 98

Page 10: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

• Rekursive Probleme: Quicksort, Backtracking (Weg des Laufers).

• Textdateien als neutrale Programmschnittstellen. Datenaustausch zwi-schen verschiedenen Anwendungen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I10 / 98

Page 11: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

2.1. Dreimomentengleichung (Clapeyron)

Abbildung 1: Durchlauftrager mit 8 Feldern

Mit der Dreimomentengleichung wer-den unter folgender Einschrankun-gen die Stutzmomente mehrfeldri-ger Durchlauftrager berechnet.

⇒ Stutzpunkte sind starr gelagert.

⇒ Auftretende Lasten wirken senkrecht zur Stabachse.

⇒ Die Biegesteifigkeit EI ist feldweise konstant.

Fur 2-feldrigen Abschnitt gilt (mit m ∈ [b, h] in Abbildung 1):

Ml · ll + 2 ·Mm · (ll + lr) + Mr · lr = −Rl · ll − Lr · lr (1)

mit: Ml, Mm, Mr, dem linken, mittleren und rechten Stutzmomentll, lr, der effektiven linken und rechten FeldweiteRl, Lr, dem linken und rechten Lastterm (rechte Seite)

Die effektiven Feldweiten ll und lr sind bei unterschiedlichen Steifigkeitenauf ein Vergleichstragheitsmoment Ic zu beziehen, d.h. ll = Ic

Il· ll,0 mit ll,0, der

realen Feldweite.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I11 / 98

Page 12: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

2.2. Programmtechnische Umsetzung

2.2.1. Problembeschreibung

⇒ Zusammenstellung einer EXCEL-Tabelle zur Erfassung der Modellpa-rameter (Feldlangen, Steifigkeiten, Belastungen).Wie sieht der Anwender das Problem?

.

⇒ Aufbau eines VBA-Datenmodells(

A ·M = R). Anlegen der Koeffizi-

entenmatrix A, Anlegen des Last- und Momentenvektors R und M ,etc.)Wie sieht der Computer das Problem?

2.2.2. Problemlosung

⇒ Implementierung eines Gleichungslosers zur Berechnung der Stutzmo-mente. Ausgabe der Ergebniswerte.Welche Aufgabe hat der Computer?

.

Aus Gleichung 1 ergibt sich das lineare Gleichungssystem fur die Stutzmo-menten.

a1,1 a1,2 . . . a1,n

a2,1 a2,2 . . . a2,n...

... . . . ...an,1 an,2 . . . an,n

·

M1

M2

. . .

Mn

=

R1

R2

. . .

Rn

(2)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I12 / 98

Page 13: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3. Hardware

3.1. Hardwarearchitektur

3.1.1. von-Neumann Architektur

Das heute allgemein angewandte Prinzip, das nach seiner Beschreibung durchJohn von Neumann von 1946 als Von-Neumann-Architektur bezeichnet wird,definiert fur einen Computer funf Hauptkomponenten:

Abbildung 2: Schema der von Neu-mann Architektur

⇒ das Rechenwerk (Arithmetisch-Logische Einheit, ALU) fuhrt Re-chenoperationen aus

,

⇒ das Steuerwerk, Control Unit, in-terpretiert die Anweisungen ei-nes Programmes und steuert dieAusfuhrung dieser Befehle

⇒ das Verbindungssystem, Bus, ver-bindet alle Komponenten

⇒ der Speicher (Prozessor-Register, Hauptspeicher, Festplatten etc.),

⇒ die Ein-/Ausgabeeinheit(en), IO-Unit, (Tastatur, Maus, Bildschirm,Drucker etc.).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I13 / 98

Page 14: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.1.2. Restaurant-Analogon

Die funf Komponenten der Von-Neumann-Architektur konnen im Analogoneines Restaurants wie folgt abgebildet werden.

⇒ Der Koch ist das Rechenwerk. Er nimmt Auftrage entgegen und fuhrtsie aus (z.B. Schnitzel mit Pommes zubereiten).

⇒ Der Chef-Koch ist das Steuerwerk, er nimmt die Bestellung vomKellner entgegen und gibt die Anweisungen in der Kuche weiter, sei-ne Aufgabe ist die Koordination (Bestellung zwei mal Schnitzel mitPommes)

.

⇒ Die Lehrlinge sind das Verbindungssystem, sie holen die Zutaten vomSupermarkt, holen sie im Bedarfsfall aus dem Kuhlhaus, stellen dieKochutensilien zusammen (z.B. der Koch ruft dem Lehrling zu

”Hol’

mir mal die Pfanne aus dem Schrank!“).

⇒ Es gibt i.A. verschiedene Speicher. Im Bucherregal steht das Koch-buch, es enthalt die Produktionsablaufe. Im Kuhlhaus liegen die Le-bensmittel fur die Verarbeitung. Die Produktionsablaufe entsprechenden Programmen. Die Lebensmittel entsprechen den zu verarbeitendenDaten. Sie werden gemaß vorgegebener Produktionsablaufe verarbei-tet.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I14 / 98

Page 15: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

⇒ Die Speisekarte ist eine Eingabeeinheit. (Der Gast zeigt auf ein Ge-richt und gibt die Bestellung auf). Der Kellner ist Ausgabeeinheit, ererhalt von der Kuche das Signal, das zubereitete Gericht auszuliefern.Als Eingabeeinheit legt er die Rechnung vor und kassiert.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I15 / 98

Page 16: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.2. IBM-PC, der Ur-PC

Abbildung 3: IBM-PC 5150

Der erste IBM-PC(Modell 5150)⇒ gebaut von 1981-1987,⇒ 2 Disketten-LW (360KB)⇒ 0 Festplatten-LW,⇒ 256 KB Hauptspeicher,⇒ 4,77 MHz Taktung,⇒ 16Bit-Prozessor 8088,⇒ 8Bit-Datenbus,⇒ 8087-Arithmetik-Prozessor⇒ Gratulation zum 25. Geburts-tag!

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I16 / 98

Page 17: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Abbildung 4: MEM-Befehl in Konsole

⇒ Adressierbarer Speicher: 1024 KB⇒ Systemspeicher: 384 KB⇒ Programmspeicher 640 KB⇒ Beschrankung durch MSDOS bis 1995

auf 640 KB.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I17 / 98

Page 18: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.3. Mikroprozessoren

Abbildung 5: Intel 8088 Pro-zessor (16/8 Bit) mit 4,77MHz, Prozessor des IBM-PCs5051

⇒ Ein Mikroprozessor ist ein Prozessorin sehr kleinem Maßstab, bei dem al-le Bausteine des Prozessors auf einemMikrochip vereinigt sind, er besteht ausMillionen kleiner Transistoren.

Abbildung 6: Intel Pentium 4Prozessor (32 Bit) mit 2,8 GHz

⇒ Als Erfinder des Mikroprozessors giltdie Firma Texas Instruments. Im Jahr1971 stellte Intel mit dem 4004 die ers-te CPU auf einem Chip vor, einen 4Bit-Prozessor.

⇒ 1997 wurde bereits der MC68000Motorola-32-Bit Prozessor vorgestellt.Mitte der 80-iger Jahre in Atari-ST undCommodore-Amiga.

⇒ 1986 erster Intel 32-Bit-Prozessor. Der 80386 kann direkt bis zu 4 GiBHauptspeicher adressieren

⇒ 2003 mit AMDs AMD64 erster 64-Bit-Prozessor.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I18 / 98

Page 19: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.4. Eingabemedien

3.4.1. Lochkartenstanzer

Abbildung 7: IBM Lochkartenstanzer

⇒ Computereingaben wurden aufLochkarten gestanzt.

⇒ Fur jede Zeile wurde eine Kartegestanzt.

⇒ Spaltenvorschrift in FORT-RAN bezieht sich auf Lochkar-te und wird heute noch beruck-sichtigt.

⇒ Gestanzter Kartenstapel (Stapelverarbeitung, Batchprogramm) wurdezur Ausfuhrung dem Operator ubergeben. Einlesen mit Kartenleser.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I19 / 98

Page 20: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.4.2. Die Tastatur

Abbildung 8: Ubliche Tastatur mit deut-schem Layout

⇒ ca. 100 Tasten sind in einerelektrischen Matrix aus Reihen-und Spalten-Leitungen ange-ordnet. Wird eine Taste ge-druckt, so wird eine Reihe miteiner Spalte elektrisch verbun-den. Der so generierte Scanco-de wird zum Recher geleitet.

Abbildung 9: OlivettiSchreibmaschine

⇒ Das Layout der Tastatur, sieht man ab vonFunktions- und Sondertasten, entspricht imWesentlichen der Tastatur der mechani-schen Schreibmaschine. Man beachte dieversetzte Tastenanordnung, die eine grad-linige Verbindung von Taste zu Anschlag-Hammer des Schreibwerks ermoglichensoll.

⇒ Abweichende Tastenlayouts bzgl. 2-5terTastenreihe konnten sich bislang nichtdurchsetzen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I20 / 98

Page 21: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.4.3. Touchscreen

Abbildung 10: Prinzipskizze ei-nes Touchscreens

⇒ Analoge Systeme bestehen aus zweigegenuberliegenden leitfahigen Indium-zinnoxidschichten (ITO) (x und ySchicht), die mit einer konstantenGleichspannung angesteuert werden.

⇒ Zwischen den zwei ITO-Schichten be-finden sich viele kleine und kaum sicht-bare Abstandshalter, die eine Trennungder zwei Schichten garantieren.

⇒ Durch Beruhrung des Touchscreen an einer Stelle, er-gibt sich ein elektrischer Kontakt zwischen den ITO-Schichten. Durch den Widerstand dieses Kontaktesentsteht an jeder Stelle eine unterschiedliche Span-nung. Die Bestimmung der Koordinaten x und y ergibtsich aus der Spannungsanderung.

Abbildung 11:PDA-Computer mitTouchscreen

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I21 / 98

Page 22: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.4.4. Mause

Abbildung 12: Innenansicht ei-ner optomechanischen Maus

⇒ Die erste Computermaus wurde1963/1964 von Engelbart/Englisham Stanford Research Institute (SRI)entwickelt und im Dezember 1968auf der Herbsttagung der AmericanFederation of Information ProcessingSocieties (AFIPS) ohne Resonanzvorgestellt. Der erste Mac wurde am24. Januar 1984 vorgestellt. Erstererfolgreicher Rechner mit Maus.

⇒ Lange Zeit waren optomechanische Mauseublich. Neuere Mause ersetzen die Kugelme-chanik durch einen optischen Sensor. Mannennt sie Optische Maus. Als Nachfolger deroptischen Maus hat die Firma Logitech die ers-te Lasermaus vorgestellt.

Abbildung 13:Prinzip eineroptomechanischenMaus

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I22 / 98

Page 23: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.4.5. Graphiktablett

Abbildung 14: WACOM Graphi-ktablett

⇒ Die Spitze eines Stiftes wird auf einerPlatte bewegt. Der Stift sendet Datenuber Stiftdruck und gedruckte Tastenan das Tablett, die so gewonnen Bewe-gungsdaten werden vom Grafiktablettan den Computer ubermittelt. Einge-setzt in Digitaler Bildbearbeitung undDesign bzw. CAD.

⇒ Im Gegensatz zur Maus positioniert einGraphiktablett absolut und damit ge-nauer.

⇒ Der Stift enthalt eine Spule, die ein gerichtetes elektromagnetischesFeld erzeugt. Dieses Feld liegt in einer Achse mit der Kunststoffspitzeam Stift. Leiterschleifen im Tablett ermitteln die Stiftposition. Zusatz-liche Stiftinformationen wie Stiftdruck oder das Betatigen einer Tas-te am Stift modulieren das Feld und werden vom Tablett bzw. demGeratetreiber ausgewertet.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I23 / 98

Page 24: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.5. Speichermedien

3.5.1. Der Lochstreifen

Abbildung 15: 5-Bit-Lochstreifen, ca. 1976.

⇒ Der Lochstreifen ist derVorlaufer der Lochkarte.

⇒ Bei mechanischer Abtastungca. 6 Zeichen/s.

⇒ Bei optischer Abtastung spaterwesentlich hohere Lesege-schwindigkeiten realisiert.

⇒ 5-Bit-Code Bautdot-Code oderCCITT-2 Code erlaubt die Dar-stellung von 25 = 32 Zeichen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I24 / 98

Page 25: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.5.2. Die Lochkarte

Abbildung 16: 5-Bit-Lochstreifen, ca. 1976.

⇒ Von IBM 1928mit 80 Spal-ten und rechte-ckigen Lochernpatentiert.

⇒ 80 Zei-chen/Zeileist Standard-bildschirmbreiteim Zeichenmo-dus.

⇒ Noch heute in FORTRAN: Spalten 1-5 Labelnummern, Spalte 6 alsFortsetzungszeichen, Spalte 7-72 Datenspalten, ab Spalte 73 Karten-nummerierung.

⇒ Lochkartenstapel findet sich wieder in den Worten Stapelverarbeitung,BATCH-Programm im Gegensatz zu Dialogprogramm.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I25 / 98

Page 26: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.5.3. Die Festplatte

Abbildung 17: IBM-Festplatte 62PC, ca. 1979,6x8”, 65MB

⇒ Erste kommerziell Fesplatte, die IBM 350,wurde von IBM 1956 angekundigt. 1973startete ebenfalls IBM das Winchester -Projekt. Erstes Laufwerk mit versiegelterEinheit aus Platten, Zugriffsmechanik undSchreib-/Lesekopfen (IBM 3340). Da er-folgreich, war bis in die 1990er Jahre furFestplatten die Bezeichnung Winchester-Laufwerk gebrauchlich.

Abbildung 18: Schreib- bzw.Lesekopf einer Festplatte

⇒ Seit 2000 wird die ursprungliche Baugroße(IBM 5051) von 5,25” nicht mehr produ-ziert.

⇒ 2007 wird eine Festplattenkapazitat beiBaugroße 3,5” von 1 TB erwartet.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I26 / 98

Page 27: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.5.4. Mobile Speichermedien

Abbildung 19: Verschiedene mobileSpeichermedien

⇒ Erste Diskette 8” 1971, ROM mit80 KiB bis max. 1000 KiB.

⇒ Erste Diskette 5,25” 1976, mit 110KiB. IBM-PC 5051 mit 360 KiB,max. 1200 KiB.

⇒ Erste Diskette 3,5” 1982, mit 360KiB. Gebrauchlich ab 1987 als HDmit 1440 KiB. Weitere Formatekonnten sich nicht mehr etablieren.

Abbildung 20: 8” und 3,5”Diskette

⇒ Erste CD vorgestellt 1979 auf Messe in To-kio. Die CD mit 650MB spater (CD-R/CD-RW) hat mit dem Preisverfall der Brennerdie Diskette abgelost.

⇒ Erste DVD Ende 1995, ursprunglich alsVideo-Datenspeicher gedacht

”Digital Vi-

dea Disc“. Spater universeller nutzbar”Di-

gital Versatile Disc“. 1999 erste DVD-Brenner fur 5000DM verfugbar. Heutein jedem Notebook zu finden. Speicher4,7GB.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I27 / 98

Page 28: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Abbildung 21: CompactFlash Karte mit64MB

⇒ CompactFlash-Karten waren langeMarktfuhrer. Sie werden insbeson-dere bei Digitalkameras eingesetzt.Robust und gunstig.

⇒ SD Memory Card wurde von Scan-Disk 2001 entwickelt und hat dieCompactFlash abgelost.

Abbildung 22: Secure DigitalMemory Card, 1GB

⇒ Sony’s Memory-Stick wurde 1998als eigener Standard eingefuhrt undwird zumeist in Sony-Geraten ein-gesetzt. Die Pro-Version kann lautHersteller bis zu 32GB adressieren.

Abbildung 23: MemorystickKlassisch

Abbildung 24:MemorystickPro Duo Universitat Duisburg-Essen

Bauwissenschaften / Fachgebiet BaustatikDr. E. Baeck / eMail: [email protected]

Bauinformatik - I28 / 98

Page 29: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Ab-bil-dung 25:Sony-USB-Stick2GB

⇒ Die neue Generation der Sony-USB-Sticks haben ein Gewichtvon ca. 1,5 Gramm und eine Dicke von 2,4 mm und sind ca. solang wie der USB-Stecker bei einem Speicher wahlweise 256MBbis 2GB.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I29 / 98

Page 30: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.6. Einheiten

3.6.1. Speichereinheit

• Einheit (im Sinne der Informationstheorie) ist 1 Bit (Binary digit).

• Byte ursprunglich systemabhangige Gruppe von Bits.Standard: 1Byte = 8 Bit (Oktett), Datenubertragung: 1Byte = 7 Bit.

• Kilobyte = 210 = 1024 Bytes (anstatt 1000 Byte).

Die IEC, November 2000, fuhrt neue Standard-Prafixe ein, um (im Sinneeiner Rechtschreibreform) die Verwirrung zwischen 103 und 210 aufzulosen.

Dazu der Historischer Unglucksfall der 3,5 Zoll-Dikette:

Auf eine 720-KiB-Diskette passen 720 · 1024 Byte. Als die Kapazitat dannverdoppelt wurde, nannte man diese jedoch nicht 1440-KiB-Diskette, son-dern falschlich 1,44-MB-Diskette. Da ihre Kapazitat hingegen 1,44 · 1000 ·1024 Byte betragt, handelt es sich hier also weder um 1,44 Megabyte nochum 1,44 Mebibyte, sondern um 1,44 Kilokibibyte.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I30 / 98

Page 31: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.6.2. Speicherkapazitaten

• Bit

– 1 Bit - (21 = 2), 0/1

– 5 Bit - (25 = 32), Großbuchstabe aus dem lateinischen Alphabet

– 7 Bit - (27 = 128), ein ASCII-Zeichen

• Nibble (⇒ eine HexZiffer: 0xF)

– 1 Nibble - (24 = 16), HexZiffern: 0/1/2/.../15

– 2 Nibble - (28 = 256), 1 Byte ≡ 2 HexZiffern (0xFF)

• Byte (⇒ 2 HexZiffern: 0xFF)

– 1 Byte - (28 = 256), Zeichen in ANSI-Codierung

– 2 Byte - (216 = 65.536), Zeichen in UTF-16-Codierung (Unicode)

– 4 Byte - (232 = 4, 3 · 109), Max. Partitionsgroße von FAT16 ⇒ 2 GB)

• Kilobyte kB (103 Byte = 1000 Byte),Kibibyte KiB (210 Byte = 1024 Byte), auch KB,⇒ ca. eine Buchseite⇒ 3,5 Zoll-Diskette

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I31 / 98

Page 32: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

• Megabyte MB (106 Byte = 1.000.000 Byte)Mebibyte MiB (220 Byte = 1.048.576 Byte),⇒ Standard CD-ROM mit ca. 703,1 ⇒ MiB 737,8 MB

• Gigabyte GB, (109 Byte = 1.000.000.000 Byte),Gibibyte GiB (230 Byte = 1 073 741 824 Byte)⇒ DVD±R mit ca. 4,38 GiB ⇒ 4,7 GB⇒ komprimierter Spielfilm in DVD-Qualitat mit ca. 5 GB

• Terabyte TB (1012 Byte = 1000 GB),Tebibyte TiB (240 Byte)⇒ Library of Conress (Nationalbibliothek der USA) mit mehr als

128 Millionen Titeln (Bucher, Handschriften, etc.) ca. 80 TB

• Petabyte PB (1015 Byte = 1.000.000 GB),Pebibyte PiB (250 Byte)⇒ Die Speicherkapazitaten der weltweit großten Rechenzentren

lagen Ende 2002 zwischen 1 PB und 10 PB

• Exabyte EB (1018 Byte),Exbibyte EiB (260 Byte)⇒ Die Gesamtheit aller gedruckten Werke wird auf 0,2 EB geschatzt

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I32 / 98

Page 33: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

• Zettabyte ZB (1021 Byte),Zebibyte ZiB (270 Byte)

• Yottabyte YB (1024 Byte),Yobibyte YiB (280 Byte)⇒ 1 YB sind etwa so viel Byte, wie Atome in 1,67 Gramm Wasserstoff,

entsprechend 0,83 mol H2, vorhanden sind.

Aber:Da Soft- und Hardwarehersteller nur sehr zogerlich auf die Binarprafixe um-stellen, ist ein Ende der Konfusion noch nicht in Sicht. Es ist anzunehmen,dass die alten Binarprafixe ebenso Jahrzehnte in Gebrauch bleiben wie Kalorieund PS.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I33 / 98

Page 34: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3.6.3. Performanceeinheit FLOPS

FLOPS, FLOP/s bzw. F/s

⇒ englisch: floating-point operations per second

⇒ Maßeinheit fur Geschwindigkeit wissenschaftlich genutzte Computersys-temen bzw. Prozessoren.

⇒ Anzahl der pro Sekunde ausgefuhrten Gleitkommazahl-Operationen(Additionen oder Multiplikationen)

⇒ Angabe der FLOPS mit Prafixen Mega, Giga, Tera, Peta

⇒ Performance-Messung mit Linpack-Benchmark-Programm (Losen linea-rer Gleichungssysteme ⇒ FEM, siehe auch Beispiel Clapeyron) ermitteltFLOPS.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I34 / 98

Page 35: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Performance einiger Computerysteme in FLOPS

⇒ Zuse Z1 (1937), 5 Hz ⇒ 0,2-2 F/s(2 Additionen/s, 5s pro Multiplikation)

⇒ Intel 386DX, 33MHz (1. 32-Bit-PC) ⇒ 8 MF/s

⇒ Intel Pentium 4, 3GHz (32-Bi) ⇒ 3,6 GF/s

⇒ Intel Itanium 2, 1,6GHz ⇒ 6 GF/s

⇒ Cray T3E 1200/1900 Itanium 2 ⇒ 1.2 TF/s

⇒ System X, 1100 Dual 2,3 GHz, Apple G5-Prozessoren ⇒ 12 TF/s (Nov.2005 auf Platz 20 der TOP500)

⇒ NEC Earth Simulator, Vektorprozessoren ⇒ 36 TF/s (von Juni 2002 bisJuni 2004 auf Platz 1 der TOP500)

⇒ IBM BlueGene/L Supercomputer”JUBL“ FZ-Julich ⇒ 36,5 TF/s (Nov.

2005 auf Platz 6 - inoffiziell - der TOP500)

⇒ IBM BlueGene/L Supercomputer, Lawrence Livermore National Labora-tory ⇒ 281 TF/s (Nov. 2005 auf Platz 1 der TOP500)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I35 / 98

Page 36: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Supercomputer BlueGene/L und Nachfolger

Abbildung 26: BlueGene - Suppercomputer

• Skalierbare Architektur

• Einsatz von Basisbaustei-nen

• 65 536 Knoten (zu je 2Prozessoren)

• BlueGene/L 360 TF/s(2004/2005)

• BlueGene/P 1000 TF/s(2006/2007)

• BlueGene/Q 3000 TF/s(2007/2008)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I36 / 98

Page 37: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

4. 286-386-Prozessor

4.1. Das legendare Hello World als 16-Bit-Assembler-Programm

segment code => Start Code-Segment

start:

mov ax, data => Laden der Datensegmentadresse in AX

mov ds, ax => Belegen des Datensegmentregisters

mov dx, hello => Laden des Textes ins Datenregister (DX)

mov ah, 09h => Interruptfunktion setzen

int 21h => Interrupt ausfuhren: Text schreiben

mov ah, 4Ch => Interruptfunktion setzen:

int 21h => Interrupt ausfuhren: Programmende

segment data => Start des Datensegments

hello: db ’Hello World!’, 13, 10, ’$’

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I37 / 98

Page 38: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

4.2. Register der 286-Architektur

Abbildung 27: Allgemeine Prozessorre-gister

• Der 286-Prozessor hat 4 allgemeine16-Bit-Daten-Register

– AX (Accumulator),

– BX (Base Register),

– CX (Counter Register) und

– DX (Data Register).

Die niederwerteigen Bytes (z.B. AL)und die hoherwertigen Bytes (z.B.AH) konnen getrennt angesprochenwerden.

• Das Stack-Zeigerregister SP wird fur Stackzugriffe eingesetzt (z.B. Da-tenubergabe bei Unterprogrammen)

• Mit dem Basis-Zeigerregister BP wird Datenspeicher adressiert. (Zugriffauf externen Speicher).

• Die Register SI und DI werden bei Kopieraktionen als Indexvariableneingesetzt. (z.B. Kopieren eines Textes, Quelle: SI, Ziel DI).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I38 / 98

Page 39: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Abbildung 28: Segmentregister

• Eine Speicher-Adresse besteht auseiner Segment- (16Bit) und einerOffsetadresse (16Bit). Die Segment-register enthalten den Segmentan-teil der Adressen.

• Das Codesegment CS verweist auf den Programmcode (z.B. Adressenbei Unterprogrammaufrufen).

• Das Datensegment DS verweist auf den Datenbereich (globaler Spei-cher).

• Das Stacksegment SS verweist auf eine Stackadresse (temporarer Uber-gabe oder lokaler Speicher eines Programms).

• Das Extra Segment gibt die Position eines weiteren Datensegmentes(wird z. B. fur String-Kopierbefehle verwendet) an.

• Die Register SI und DI werden z.B. bei Kopieraktionen eingesetzt. (Quel-le: SI, Ziel DI).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I39 / 98

Page 40: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

4.3. Register der 386-Architektur

Abbildung 29: Allgemeine Prozessorre-gister

• Der 386-Prozessor hat 4 allgemeine32-Bit-Daten-Register

– EAX (Accumulator),

– EBX (Base Register),

– ECX (Counter Register) und

– EDX (Data Register).

• Die 16-Bit-Register konnen in der386-Architektur, da niederwertigesDoppelbyte der 32-Bit-Register, ge-trennt angesprochen werden. Damitsind prinzipiell 16-Bit-Programme aufeinem 386-er Prozessor auzufuhren.

• Mit der Datenbreite von 32-Bit konnen somit prinzipiell bis zu 4GB(ff ff ff ff) große Datenfelder angelegt werden. Bei 16-Bit-Breite 64kB(ff ff).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I40 / 98

Page 41: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5. Zahlensysteme

⇒ Der Computer kann prinzipiell nur zwei Zustande in einem Bit (einemSchalter ⇒ Zustand: ein bzw. aus) speichern. Damit ist das dezimaleZahlensystem (ein Schalter hat 10 Zustande) zur Darstellung von Infor-mationen ungeeignet.

⇒ Da die binaren Zahlen (nur Ziffern 0 und 1) sehr unubersichtlich und langwerden, wurden zunachst 3 Bits in einer Informationseinheit zusammen-gefaßt (23 = 8), das oktale Zahlensystem. Das oktale Zahlensystem hat8 Ziffern 0,1,2,...,6,7. Nachteil des oktalen Zahlensystems ist das letzteunbenutzte Bit in einem oktalen Byte: 3 · 3 = 9 Bits in 3 oktalen Ziffern.

⇒ Mit der Zusammenfassung von 4 Bits (24 = 16) erhalt man das hexade-zimale Zahlensystem, Zahlen zur Basis 16. Der Vorteil ist, die mogli-che Aufspaltung eines Bytes in zwei hexadezimale Ziffern ohne Ver-schnitt. Nachteil ist die Notwendigkeit der Einfuhrung der weiterer ZiffernA,B,C,D,E,F. Das hexadezimale Zahlensystem hat sich bei der Darstel-lung der Computer-Adressen durchgesetzt.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I41 / 98

Page 42: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

⇒ Im Alltag wird das dekadisches System verwendet. Im dekadischen Zah-lensystem stehen die Ziffern von 0 - 9 fur eine Zahlenstelle zur Verfugung.Die Schreibweise dekadischer Zahlen ist eine abgekurzte Schreibweise furdie Darstellung des tatsachlichen Gesamtwertes. Zum Beispiel schreibtman 123 oder 12310 und meint damit 1 · 100 + 2 · 10 + 3 · 1.Die Anzahl der moglichen Ziffern je Stelle bezeichnet man als Basis bdes Zahlensystems. Beim dekadischen Zahlensystem ist b gleich 10.

5.1. Das binare Zahlensysteme

Die binare Zahl 10110 oder 101102 ist demnach:⇒ 101102 = 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 = 1 · 16 + 1 · 4 + 1 · 2 = 22.

22:2 = 11 Rest: 011:2 = 5 Rest: 15:2 = 2 Rest: 12:2 = 1 Rest: 01:2 = 0 Rest: 1

2210 = 101102

Divisionsverfahren:Die konvertierende Zahl wird durch die Basiszahlgeteilt. Man merke sich den Rest. Das Ergebniswird erneut durch die Basiszahl geteilt. Man merkesich den Rest. Man verfahre solange in dieser Weisebis das Divisionsergebnis den Wert 1 erreicht hat.Die Divisionsreste werden in invertierter Reihenfol-ge von links nach rechts notiert.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I42 / 98

Page 43: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5.2. Das oktale Zahlensysteme

Oktale Zahlen (Ziffern 0,1,2,...,6,7) sind Zahlen zur Basis 8. Die oktale Zahl121 oder 1218 ist demnach:⇒ 1218 = 1 · 82 + 2 · 81 + 1 · 80 = 1 · 64 + 2 · 8 + 1 · 1 = 7310.

5.3. Das hexadezimale Zahlensysteme

Hexadezimale Zahlen (Ziffern 0,1,2,...,8,9,A,B,C,D,E,F) sind Zahlen zur Ba-sis 16. Die hexadezimale Zahl 121 oder 12116 ist demnach:⇒ 12116 = 1 · 162 + 2 · 161 + 1 · 160 = 1 · 256 + 2 · 16 + 1 · 1 = 28910.⇒ 28910 = 1001000012 = 1|0010|00012 = 12116

5.4. Beliebige Zahlensysteme

Es konnen Zahlensysteme zu beliebigen Basiszahlen b generiert werden. DieUmrechnung erfolgt wie im Fall der Binarzahlen demonstriert mit dem Divi-sionsverfahren.z.B. das Zahlensystem zur Basis 5:⇒ 1215 = 1 · 52 + 2 · 51 + 1 · 50 = 1 · 25 + 2 · 5 + 1 · 1 = 3610.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I43 / 98

Page 44: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5.5. Darstellung negativer Zahlen

• Vorzeichen-BitDas erste Bit wird als Vorzeichen interpretiert. Damit wird die 0 doppeltdargestellt.

• Echtes Komplement / b-KomplementBeim echten Komplement wird eine Ziffer einer Zahl x = b−x−1 gesetzt.Anschließend wird auf die Zahl 1b aufaddiert. Die Summe aus Zahl undKomplement ergibt 0. In den Beispielen werden die Komplemente dieZahl 2110 fur b = 2

+21 => 0001 0101

-21 => 1110 1010

+ 1

=1110 1011

und b = 8 dargestellt.

+21 => 0000 0025

-21 => 7777 7752

+ 1

=7777 7753

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I44 / 98

Page 45: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5.6. IEEE-Float-Darstellung

Abbildung 30: IEEE-Single-Precision

• Das Format IEEE-754 (1985) be-schreibt eine Float-Zahl (Single Pre-cision) in 4 Bytes (32Bit) bestehtaus

– einem Vorzeichen Bit (Bit 31),

– einem Exponenten (Bit-23 bis Bit-30) und

– einer Mantisse (Bit-0 bis Bit-22).

• Fur das Vorzeichen-Bit gilt: 0 ⇒ positive Zahl, 1 ⇒ negative

• Auf den Exponenten E wird 127 aufaddiert (Es = E + 127)damit gilt: Es > 127 ⇒ E > 0, Es < 127 ⇒ E < 0.

• Die Mantisse ist normalisiert, d.h. das fuhrende Bit ist immer 1.

• Darstellungsbereich: 10−38 · · · 10+38

• Double Presicion (64Bit): Darstellungsbereich: 10−308 · · · 10+308

Mantisse mit 52 Bit. Sollte aus numerischen Grunden in Berechnungenverwendet werden.

• Extendet Presicion (80Bit) meist interne Verwendung (Math. Coprozes-sor)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I45 / 98

Page 46: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5.7. Zeichentabellen

• ASCII, American Standard Code for Information Interchange7Bit-Code, 128 Zeichen, Kennt keine Umlaute und andere landesspezifi-schen Zeichen.

• Erweiterter ASCII-Zeichzensatz (8Bit, 256 Zeichen)Mit Codeseiten konnen landesspezifische Zeichen (a, o, u, etc.) geladenwerden.

• Unicode (16Bit, 65535 Zeichen)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I46 / 98

Page 47: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

6. Programmiersprachen

Allgemeine Definition einer Programmiersprache:

• Sprache zur Formulierung von Rechenvorschriften, die direkt oder indirektvon einem Rechner ausgefuhrt werden konnen.

• oder indirekt: Umsetzung der Rechenvorschriften in ein fur den Rechnerverstandliches Format.

Wichtige Eigenschaften einer Programmiersprache:

• eindeutige SyntaxFestlegung, welche Zeichenfolgen als Programme zugelassen sind.

• eindeutige SemantikFestlegung, welche Auswirkung die Ausfuhrung des Programms auf einemRechner hat.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I47 / 98

Page 48: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

6.1. Generationen der Programmiersprachen

Klasse Beispiel: s = 3+4 Sprache1. Generation 1011 0011 0000 0011 Maschinensprache

1000 0000 1100 00110000 0100

2. Generation MOV BL,3 Assembler 86ADD BL,4

3. Generation a = 3; Prozedurale Sprachenb = 4; BASIC, FORTRAN,summe = a+b; C, PASCAL, COBOL

4. Generation Deskriptive SprachenSQL,Informix/4GL

OOP pW = new Window; Objektorientierte SprachenpW→Show(); Simula, C++, Java,

Trubopascal, Delphi, VB,VBA, PHP, Phyton, etc.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I48 / 98

Page 49: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

• Generation 1:Die Programmiersprachen stellen die Maschinen- oder maschinennahenProgrammiersprachen dar. Hierbei wird unmittelbar durch eine Bit- bzw.Binarcodierung, die in direkter Abhangigkeit zum verwendeten Prozessorsteht, der Maschine mitgeteilt, welche Operationen durchgefuhrt werdensollen.

• Generation 2:Diese Programmiersprachen beinhaltet so genannte mnemotechnischeAusdrucke. Dies sind Abkurzungen fur eine bestimmte Anzahl konkre-ter Maschinenbefehle. MOV bedeutet soviel wie: bewege oder lade eineKonstante in ein Register des Prozessors. Die Sprachen dieser Generationnennt man auch Assemblersprachen, z.B. 80?86 Makroassembler.

• Generation 3:Ab der 3. Generation spricht man von Hoheren Programmiersprachen.Diese Sprachen zeichnen sich dadurch aus, dass sie weitestgehend un-abhangig von einem bestimmten Prozessortyp sind und es ermoglichen,ein Problem abstrakt zu formulieren.

Imperative Sprachen wie z.B. FORTRAN, BASIC, C, PASCAL, COBOL.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I49 / 98

Page 50: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

• Generation 4:Nichtprozeduralen oder aber auch deskriptiven oder deklarative Sprachen.Hier steht nicht die Formulierung des Algorithmus (also wie soll der Rech-ner eine Aufgabe losen) im Vordergrund sondern die Formulierung deswas ist zu tun, d.h. der Programmierer ist mehr abfrageorientiert. ⇒Abfragesprachen.

Z.B. Datenbanksprache SQL = Structured Query Language.

• Verschiedene jungere Sprachen:Objektorientierte Sprachen, z.B. C++, Java, C# eingeschrankt VisualBasic. In diesen Sprachen werden Daten mit ihren darauf anwendbarenOperationen zu Objekten zusammengefasst (⇒ Kapselung), die mittelsBotschaften miteinander kommunizieren.

Wissensbasierte Sprachen (kunstliche Intelligenz), z.B. die funktiona-le Programmiersprache LISP (List Processing Language) (z.B. LISP-Dialekt AutoLISP, AutoCAD-Skript), PROLOG (Programming in Lo-gic).

Scriptsprachen, zur Programmierung grafischer Oberflachen bzw. Inter-netprogrammierung, z.B.: PHP, Perl und JavaScript.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I50 / 98

Page 51: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

6.2. Sprachebenen

Maschinensprache⇒ Generation 1.Assemblersprache⇒ Generation 2.Problemorientierte Sprachen⇒ ab Generation 3.Mikroprogrammierung⇒ nicht fluchtige SW⇒ Firmwarez.B. BIOS = basic I/O-System

• ROM: Read-Only-Memory (in alten Bauteilen)

• EPROM: Erasable Programmabele ROM (Loschen mit UV-Strahlung)

• EEPROM: Electrically EPROM (CPU loscht, schreibt)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I51 / 98

Page 52: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7. Algorithmen

7.1. Eigenschaften

Schrittweises Verfahren zur Berechnung von Zielgroßen aus gegebenen Ein-gangsgroßen mit folgenden Eigenschaften.

• deterministischZu jedem Ausfuhrungszeitpunkt ist der Folgeschritt eindeutig bestimmt.

• determiniertWird der Algorithmus mit denselben Eingangsgroßen durchlaufen, erge-ben sich dieselben Ergebnisgroßen.

• statische FinitheitDie Beschreibung des Algorithmuses besitzt eine endliche Lange.

• dynamische FinitheitZu jedem Zeitpunkt eines Unterbrechens wird nur endlich viel Speicherbelegt.

• TerminierungDie Ausfuhrung wird nach endlich vielen Schritten abgeschlossen.

• KorrektheitBerechnung korrekter Ausgabewerte (bzg. Spezifikation) aus beliebigzulassigen Eingangswerten.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I52 / 98

Page 53: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

• AquivalentZwei Algorithmen sind aquivalent, wenn nach Spezifikation aus den selbenEingangswerten die selben Ausgabewerte folgen.

7.2. Beschreibung

• PseudocodeUmgangssprachliche Beschreibung unter Verwendung allgemeiner Pro-grammiersprachenkonstrukte.

• ProgrammablaufplanFlußdiagramme nach DIN 66001

• StruktogrammeNassi-Shneiderman-Diagramm nach DIN 66261

• UML-DiagrammeUnified-Modeling-Language fur objektorientierte Algorithmen und Daten-strukturen (OOP)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I53 / 98

Page 54: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7.3. Beispiel: Euklidischer Algorithmus

Es ist der großte gemeinsame Teiler zweier positiver naturlicher Zahlen mund n zu berechnen, wobei n > m. Nach Euklid kann dazu der folgendeAlgorithmus in einem Pseudocode formuliert werden.

(0) Initialisierung

(1) RestbildungEs wird n durch m geteilt, der Rest sei r. (Es gilt 0 ≤ r < n)

(2) RestprufungWenn r = 0, endet der Algorithmus; m ist das Ergebnis.

(3) Vertauschen und weiterer DurchlaufSetze n := m und m := r und gehe zu Schritt (1) zuruck.

oder:

Eingabe n und m;

Wiederhole:

r:=a mod b;

n:=m; m:=r;

solange r != 0;

Ausgabe n;

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I54 / 98

Page 55: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Beispiel:

Es ist der ggT der Zahlen 544 und 119 zu ermitteln.Pos. Anweisung Bemerkung(0) n := 544; m := 119 Initialisierung(1) 544 = 4 * 119 + 68 Rest ist 68(2) r := 68 da r6=0...(3) n := 119 m := 68 (oder n := m; m := r) Tauschen und zu (1)(1) 119 = 1 * 68 + 51 Rest ist 51(2) r := 51 da r6=0...(3) n := 86 m := 51 (oder n := m; m := r) Tauschen und zu (1)(1) 68 = 1 * 51 + 17 Rest ist 17(2) r := 17 da r6=0...(3) n := 51 m := 17 (oder n := m; m := r) Tauschen und zu (1)(1) 51 = 3 * 17 + 0 da r=0...(2) r := 0 ⇒ Ergebnis: 17 Ergebnis gefunden!(-) 544 = 17 * 32 = 25 * 17; 119=3*17 ok!

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I55 / 98

Page 56: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7.4. Programmablaufplan PAP

Mit einem Programmablaufplan, PAP, laßt sich ein Programm symbolischdarstellen. PAP wurde in der DIN 66001 (September 1966) genormt. Nach-folgend die gebrauchlichsten Symbole.

Symbol Anmerkung

Start und Endpunkt eines Programms.

Mit der Linie bzw. dem Pfeil werden einzelne Operationenoder Entscheidungsstrukturen verknupft.

In einer Operation wird eine Anweisung ausgefuhrt. Istauch als Makro zu verstehen.

Mit einer Entscheidungsstruktur konnen verschiedene Pro-grammzweige ausgewahlt werden. Entscheidungsstruktu-ren werden im PAP zum Aufbau von Schleifen eingesetzt.

Ein Unterprogramm oder eine Funktion ist ein abgeschlos-sener Programmteile, der im Sinne eines Makros aufgeru-fen wird (z.B. sin(x), cos(x), etc.).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I56 / 98

Page 57: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7.4.1. Beispiel: PAP - Algorithmus nach Euklid

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I57 / 98

Page 58: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Abbildung 31: PAPzum Euklidischer Al-gorithmus

Nachteile von PAP:

Fur komplexere Algorithmen wird ein PAP schnell unuber-sichtlich und verfuhrt zu Entwicklung von Spagetti-Codes.

Direktes Verbinden nach Entscheidungsstrukturen sug-geriert einen Goto-Sprung.

Diese Sprunge waren in Zeiten knapper Programmspei-cher und elementarer Programmiermoglichkeiten (As-sembler, FORTRAN4) kaum zu vermeiden und fuhr-ten letztendlich aufgrund der undurchschaubaren Pro-grammierung zum Ansatz der strukturierten Program-mierung (Struktogramme bzw. Nassi-Schneiderman-Diagramme in Abschnitt 7.5).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I58 / 98

Page 59: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7.5. Nassi-Shneiderman-Diagramm, Struktogramme, NSD

Entwurfsmethode fur die strukturierte Programmierung (1972/73) und Auf-nahme in die Norm DIN 66261. Nachfolgend die gebrauchlichsten Symbole.

Symbol Anmerkung

Sequenz

Jede Anweisung wird in einen rechteckigen Struk-turblock geschrieben. Die Strukturblocke werdennacheinander von oben nach unten durchlaufen.Leere Strukturblocke sind nur in Verzweigungenzulassig.

Verzweigung

Nur wenn die Bedingung zutreffend (wahr) ist,wird der Anweisungsblock 1 durchlaufen. Ein An-weisungsblock kann aus einer oder mehreren An-weisungen bestehen. Trifft die Bedingung nicht zu(falsch), wird der Durchlauf ohne eine weitere An-weisung fortgefuhrt (Austritt unten).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I59 / 98

Page 60: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Symbol Anmerkung

ZweifacheVerzweigung

Wenn die Bedingung zutreffend (wahr) ist, wird derAnweisungsblock 1 durchlaufen. Trifft die Bedin-gung nicht zu (falsch), wird der Anweisungsblock2 durchlaufen. Ein Anweisungsblock kann aus eineroder mehreren Anweisungen bestehen. Austritt un-ten nach Abarbeitung des jeweiligen Anweisungs-blocks.

MehrfacheVerzweiung

Auch verschachtelte Auswahl genannt, da eineweitere Bedingung folgt. Die Verschachtelung istebenso im Nein-Fall (noch) moglich.

Fallauswahl

Besonders bei mehr als drei abzuprufenden Be-dingungen geeignet. Der Wert von Variable kannbedingt auf Gleichheit wie auch auf Bereiche(großer/kleiner bei Zahlen) gepruft werden und derentsprechend zutreffende Fall mit dem zugehori-gen Anweisungsblock wird durchlaufen. Eine Fall-auswahl kann manchmal in eine Mehrfachauswahlumgewandelt werden - etwa wenn die eingesetzteProgrammiersprache Fallauswahlen nicht kennt.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I60 / 98

Page 61: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Symbol Anmerkung

ZahlergesteuerteSchleife

Wiederholungsstruktur, bei der die Anzahl derDurchlaufe festgelegt ist. Als Bedingung muss ei-ne Zahlvariable angegeben und mit einem Start-wert initialisiert werden. Ebenso muss ein End-wert und die (Zahl-)Schrittweite angegeben wer-den. Nach jedem Durchlauf des Schleifenkorpers(Anweisungsblock 1) wird die Zahlvariable umdie Schrittweite inkrementiert (bzw. bei negativerSchrittweite dekrementiert) und mit dem Endwertverglichen. Ist der Endwert uberschritten, wird dieSchleife verlassen.

Abweisende Schlei-fe, kopfgesteuert

Wiederholungsstruktur mit vorausgehender Bedin-gungsprufung. Der Schleifenkorper (Anweisungs-block 1) wird nur durchlaufen, wenn (und solange)die Bedingung zutreffend (wahr) ist. Diese Sym-bolik wird auch fur die Zahlschleife (Anzahl derDurchlaufe bekannt) benutzt.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I61 / 98

Page 62: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Symbol Anmerkung

Nicht abweisendeSchleife

Wiederholungsstruktur (fußgesteuert) mit nach-folgender Bedingungsprufung. Der Schleifenkorper(Anweisungsblock 1) wird mindestens einmaldurchlaufen, auch wenn die Bedingung von Anfangan nicht zutreffend (falsch) war.

Endlosschleife

Kann allenfalls durch einen Aussprung (break) ver-lassen werden.

Aussprung

Der Aussprung (break) stellt die Beendigung einesProgrammteils dar und sollte nicht als das verstan-den werden, was Nassi und Shneiderman mit denStruktogrammen eigentlich vermeiden wollten, dieSprunganweisung (Sprung Goto).

Aufruf

Symbolik zum Aufruf eines Unterprogramms bzw.einer Prozedur oder Funktion. Nach Durchlauf die-ser wird genau zu der aufrufenden Stelle zuruck-gesprungen und der nachstfolgende Strukturblockdurchlaufen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I62 / 98

Page 63: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7.5.1. Beispiel: NSD - Algorithmus nach Euklid

Abbildung 32: NDS zum Euklidi-scher Algorithmus

Programm-Code in PASCAL:

PROGRAM GGT(Input,Output);

VAR a,b: Integer;

BEGIN

ReadLn(a,b);

WHILE (a>0) AND (b>0) DO

IF a>b THEN

a:=a-b;

ELSE

b:=b-a;

IF b=0 THEN

WriteLn(a)

ELSE

WriteLn(b)

END.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I63 / 98

Page 64: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

7.6. UML - Unified-Modeling-Language

Die Unified Modeling Language (UML) ist eine von der Object ManagementGroup (OMG) entwickelte und standardisierte Sprache fur die Modellierungvon Software und anderen Systemen. Im Sinne einer Sprache definiert dieUML dabei Bezeichner fur die meisten Begriffe, die fur die Modellierungwichtig sind, und legt mogliche Beziehungen zwischen diesen Begriffen fest.Die UML definiert weiter grafische Notationen fur diese Begriffe und fur Mo-delle von statischen Strukturen und von dynamischen Ablaufen, die man mitdiesen Begriffen formulieren kann.Gangige moderne Programmiersprachen wie Java, C++ und C# (ab 1990)unterstutzen sowohl die OOP als auch den prozeduralen Ansatz. Erste ob-jektorientierte Sprache ist Simula 68 (entwickelt von Ole-Johan Dahl undKristen Nygaard am Norwegian Computing Center (NCC) in OsloVorbildvon C++).

Abbildung 33: Klassendiagramm

In einem Klassendiagramm wird ein Objektin 3 Feldern beschrieben: oben die Bezeich-nung, Window, in der Mitte die Eigenschaf-ten (size und visibility), unten die Methodenoder Operationen (display und hide).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I64 / 98

Page 65: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

Motivation:Erzahlt wird, dass Dahl und Nygaard an Schiffssimulationen gearbeitet hat-ten. Dabei ergab sich durch die kombinatorische Explosion von Parameter-beziehungen eine verwirrende Vielfalt an Moglichkeiten, wie sich die ver-schiedensten Attribute der unterschiedlichen Schiffe gegenseitig beeinflussenkonnten. So kam die Idee auf, die unterschiedlichen Schiffstypen jeweils alseigenstandige Objekte zu klassifizieren, wobei jede Klasse von Objekten furdie eigenen Daten und das eigene Verhalten selbst zustandig war.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I65 / 98

Page 66: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8. VBA-Einfuhrung

• Der Name BASIC steht fur Beginner’s All-purpose Symbolic InstructionCode, was so viel bedeutet wie symbolische Allzweck-Programmiersprachefur Anfanger.

• textbfBASIC wurde von Microsoft als Visual-Basic zur Programmierungvon Windows-Anwendungen favorisiert und

• als VBA (Visual-Basic for Applications) als universelle Steuersprache inWindows-Anwendungen eingefuhrt (seit EXCEL 95).

8.1. Elementare Datenobjekte

• Konstanten sind Speicherobjekte, deren Inhalt konstant ist, d.h. im Pro-gramm nur einmal gesetzt werden kann und unveranderlich bleibt, (z.B.1, 2, "Ein Text").

• Variablen sind Speicherobjekte, deren Werte variabel sind, d.h. im Pro-gramm jederzeit neu belegt werden konnen, (z.B. 1, 2, "Ein Text").

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I66 / 98

Page 67: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.2. Elementare Datentypen

• Fur die Variablen und Konstanten stehen unter VBA verschiedene Da-tentypen zur Verfugung.

• Eine Variable bzw. Konstante erhalt einen symoblischen Namen (z.B. x).

• Der Datentyp einer Variablen wird

– explizit vorgegegeben (z.B. durch den Schlussel dim),

– oder implizit durch Anhangen eines Kenners an den Variablennamen(z.B. text$).

• Nicht deklarierte Variablen erhalten automatisch den Typ Variant.

• Variablen vom Typ Variant sollten aufgrund der automatischen Typan-passung bei der Kommunikation mit der EXCEL-Oberflache eingesetztwerden.

• Eine Variable des Typs Variant kann verschiedene Datentypen durchWertzuweisung erhalten.

var = 1.23 => Fließkommazahl

var = "Ein Text" => Text (mit "..." geklammert)

var = 4 => Ganze Zahl

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I67 / 98

Page 68: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

In nachfolgender Tabelle werden die elementaren VBA-Datentypen fur 32-Bit-Windows/EXCEL zusammengestellt.

Datentyp Bytes Kenner BeschreibungByte 1 0 - 255Boolean 2 Wahrheitswert

(-1:TRUE, ffff; 0:FALSE)Integer 2 % Ganze Zahl (z.B. n%)Long 4 & Ganze Zahl (z.B. n&)Single 4 ! Gleitkommazahl (7 Stellen genauDouble 8 # Gleitkommazahl (16 Stellen ge-

nau)Currency 8 @ Wahrungswert (15 Stellen vor

und 4 Stellen nach dem Dezimal-punkt)

String 1/char Feste Lange. Max. 65400 Zei-chen.

String 1/char+10 $ Variable Lange. Max. 2 ∗ 109 Zei-chen.

VariantObject 4 Verweis auf ein Objekt (nur fur

Klassenmodule relevant, OOP)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I68 / 98

Page 69: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.2.1. Implizite Deklaration

Schlussel Datentyp BeispielDefBool Boolean DefBool bDefByte Byte DefByte cDefInt Integer DefInt i-kDefLng Long DefLng l-nDefCur Currency DefCur d

8.2.2. Explizite statische Deklarationen

Variablen werden mit der Anweisung Dim [Variable] as [Typ] deklariert.

1. VariablenBeispiel: Dim n As Integer

2. FelderFelder werden unter Vorgabe der Feldgrenzen deklariert.

Dim F(1 to 3) As Double Indexbereich von 1 bis 3Dim F(2) As Double Indexbereich von 0 bis 2Dim F(2,2) As Double 2-fach indiziert, Indexbereich je von 0 bis 2

Mit der Anweisung Option Explicit wird eine explizite Deklaration erzwun-gen. Um Programmierfehler zu vermeiden, wird dies ausdrucklich empfohlen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I69 / 98

Page 70: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.2.3. Explizite dynamische Deklarationen

Die Dimensionen der statischen Felder wird zum Programmstart angelegtund kann zur Programmlaufzeit nicht mehr abgeandert werden. Mit demSchlussel ReDim kann die Dimension dynamischer Felder zur Laufzeit verandertwerden.

Schritt Beispiel AnmerkungDeklaration Dim F() As Double Das Feld wird als dynamisch vereinbart.Dimension nDim = 10 Festlegen der Felddimension.Allokieren ReDim F(nDim) Anlegen des Speichers.Zuweisung F(2) = 4 Zuweisung von 4 auf Feldelement 3.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I70 / 98

Page 71: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.2.4. Benutzerdefinierte Datentypen, Strukturen

Benutzerdefinierte (problemorientierte) Datentypen werden mitType ... End Type deklariert. Dabei werden i.A. mehrere unterschiedliche Da-tentypen (elementare oder benutzerdefinierte) zu einem neuen Datentype,einer Struktur, zusammengefaßt.

[Attribut] Type <Name>

<Elementname 1> As Typ

<Elementname 2> As Typ

...

<Elementname n> As Typ

End Type

Beispiel: Daten eines Punktes

Public Type Punkt

RGB(1 to 3) As Integer ’ Farbwerte

X (1 to 3) As Double ’ x,y,z

Layer As Integer ’ Layernummer

End Type

Mit Public wird der Datentyp fur alle Module bekannt gegeben, mit Private

ist der Datentyp nur im Modul der Deklaration sichtbar.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I71 / 98

Page 72: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.3. Operatoren

Operator Beispiel Anmerkung+ x = y+2 Addition zweier Werte.- x = y-2 Subtraktion zweier Werte.* x = y*2 Multiplikation zweier Werte./ x = y/2 Division zweier Werte.^ x = 4^2 Potensierung (x=16).mod x = 3 mod 2 Rest aus Integerdivision (x=1).< x = 2 < 3 Kleiner-Operator (x=true).> x = 2 > 3 Großer-Operator (x=false).<= x = 2 <= 3 Kleiner-Gleich-Operator (x=true).>= x = 2 >= 3 Großer-Gleich-Operator (x=false).= x = (2 = 3) Gleichheits-Operator (x=false).<> x = (2 <> 3) Ungleichheits-Operator (x=true).not x = not (2 < 3) Kleiner-Operator (x=false).and x = (2<3) and (4<5) UND-Operator (x=true).or x = (2<3) or (4>5) ODER-Operator (x=true).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I72 / 98

Page 73: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.4. Intrinsic Funktionen

Funktion Beispiel Anmerkungsqr x = sqr(4) Ziehen der Wurzel (x=2).abs x = abs(-4) Absolutbetrag (x=4).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I73 / 98

Page 74: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.5. Verzweigungen

1. If-Then-Struktur

if <Bedingung> Then

<Anweisung>

End If

Beispiel: Bedingte Zuweisung

a = 0 : i = 1

if i=1 then

a = a+1

endif

Die Anweisung wird nur dann ausgefuhrt, wenn die Bedingung den Werttrue ergibt. Die Anweisung kann aus mehreren Teilanweisungen bestehen

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I74 / 98

Page 75: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

2. If-Then-Else-Struktur

If <Bedingung> Then

<Anweisung 1>

Else

<Anweisung 2>

End If

Beispiel: Bedingte Zuweisung

a = 0 : i = 1

if i=1 then

a = a+1

else

a = a-1

endif

Die Anweisung 1 wird dann ausgefuhrt, wenn die Bedingung den Werttrue ergibt. Ergibt die Bedingung den Wert false, so wird Anweisung 2ausgefuhrt. Die Anweisung 1 bzw. 2 konnen i.A. aus mehreren Teilan-weisungen bestehen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I75 / 98

Page 76: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3. If-Then-ElseIf-Else-Struktur

If <Bedingung 1> Then

<Anweisung 1>

ElseIf <Bedingung 2> Then

<Anweisung 2>

Else

<Anweisung 3>

End If

Beispiel: Bedingte Zuweisung

a = 0 : i = 1

if i=1 then

a = a+1

else if i=2

a = a+2

else

a = a-1

endif

Die Anweisung 1 wird dann ausgefuhrt, wenn die Bedingung 1 den Werttrue ergibt. Ergibt die Bedingung 2 den Wert true und die Bedingung1 den Wert false, so wird Anweisung 2 ausgefuhrt. Ergeben beide Be-dingungen den Wert false, so wird die Anweisung 3 ausgefuhrt. AlleAnweisungen konne aus mehreren Teilanweisungen bestehen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I76 / 98

Page 77: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.6. Schleifen

1. DO-While-Loop-Schleife

Do While <Bedingung>

<Anweisung>

Loop

Beispiel: Summe der ganzen Zahlen 1 bis 10

a = 0 : s = 0

Do While a < 10

a = a+1

s = s+a

Loop

Die Anweisungen werden solange ausgefuhrt, solange die Bedingung denWert true ergibt. Die Bedingung wird vor Schleifendurchlauf gepruft.

2. DO-Until-Loop-Schleife

Do Until <Bedingung>

<Anweisung>

Loop

Beispiel: Summe der ganzen Zahlen 1 bis 10

a = 0 : s = 0

Do Until a = 10

a = a+1

s = s+a

LoopDie Anweisungen werden solange ausgefuhrt, bis die Bedingung den Werttrue ergibt. Die Bedingung wird vor Schleifendurchlauf gepruft.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I77 / 98

Page 78: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

3. DO-Loop-While-Schleife

Do

<Anweisung>

Loop While <Bedingung>

Beispiel: Summe der ganzen Zahlen 1 bis 10

a = 0 : s = 0

Do

a = a+1

s = s+a

Loop While a< 10

Die Anweisungen werden solange ausgefuhrt, solange die Bedingung denWert true ergibt. Die Bedingung wird nach Schleifendurchlauf gepruft.

4. DO-Loop-Until-Schleife

Do

<Anweisung>

Loop Until <Bedingung>

Beispiel: Summe der ganzen Zahlen 1 bis 10

a = 0 : s = 0

Do

a = a+1

s = s+a

Loop Until a = 10

Die Anweisungen werden solange ausgefuhrt, bis die Bedingung den Werttrue ergibt. Die Bedingung wird nach Schleifendurchlauf gepruft.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I78 / 98

Page 79: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

5. For-Schleife

For i = start To ende _

Step Inkrement

<Anweisung>

Next [i]

Beispiel: Skalarprodukt

Dim a(2), b(2), s As Double

a(0) = 1. : a(1) = 2. : a(2) = -1.

b(0) = 1. : b(1) = 1. : b(2) = 0.

S = 0.

For i = 0 To 2

s = s + a(i)*b(i)

Next

Die Anweisungen werden solange ausgefuhrt, solange fur den Schleifenin-dex gilt: i ∈ [istart, iende]. Der Index i wird mit istart initialisiert und nach je-dem Schleifendurchlauf um das Inkrement iInkrement (Standard=1) erhoht,bis die Bedingung i > iende erfullt ist.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I79 / 98

Page 80: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

6. Each-Schleife uber Felder oder Collections

For Each <Variable> In <Feld>

<Anweisung>

Next <Variable>

Beispiel: Drucken eines Vektors

Dim a(2), ai As Double

a(0) = 1. : a(1) = 2. : a(2) = -1.

For Each ai In a

if ai = -1. Then exit for

Debug.Print "ai : " + str(ai)

Next ai

Die Anweisungen werden solange ausgefuhrt, bis das Ende, d.h. das letzteElement im Feld erreicht ist. In vorliegendem Beispiel wird die Schleifemit dem Kommando exit for verlassen. Do-Schleifen werden analog mitexit do vorzeitig abgebrochen.

Collections sind Objektlisten und werden im Teil OOP erlautert.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I80 / 98

Page 81: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.7. Auswahl

Select Case <Testausdruck>

Case <Werteliste-1>

<Anweisung-1>

Case <Werteliste-2>

<Anweisung-2>

...

Case <Werteliste-n>

<Anweisung-n>

Case Else

<Else-Anweisung>

End Select

Dim Zahl

Zahl = 8 ’ Variable initialisieren.

Select Case Zahl ’ Zahl auswerten.

Case 1 To 5 ’ Zahl von 1 bis 5.

Debug.Print "Zahl von 1 bis 5"

’ Das ist der einzige Case-Abschnitt,

’ der True ergibt.

Case 6, 7, 8 ’ Zahl von 6 bis 8.

Debug.Print "Zahl von 6 bis 8"

Case Is 9 To 10 ’ Zahl ist 9 oder 10.

Debug.Print "Großer als 8"

Case Else ’ Andere Werte.

Debug.Print "Außerhalb von 1 bis 10"

End Select

Mit der Select-Case Anweisung kann in Abhangigkeit vom Wert eines Test-ausdrucks (ein beliebiger numerischer Ausdruck oder Zeichenfolgenausdruck)in beliebig viele Einzelfalle verzweigt werden. Redundant zur Verzweigung mitif - elseif - else - endif (siehe Abschnitt 8.5).

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I81 / 98

Page 82: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.8. Unterprogramme und Funktionen

• Unterprogramme und Funktionen sind zusammengefaßte Codeblocke, dieuber eine Parameterliste und gegebenenfalls einen Ruckgabewert mit demaufrufenden Programm kommunizieren.

• Der Geltungsbereich von Variablen eines Unterprogramms bzw. einerFunktion erstreckt sich nur auf den Codeblock des Unterprogramms bzw.der Funktion.

[Public | Private] [Static] Function Name [(ArgListe)] [As Typ]

[Anweisungen]

[Name = Ausdruck]

[Exit Function]

[Anweisungen]

[Name = Ausdruck]

End Function

Function test (x as double) as double

test = x^2+1

End Function

Public Funktion ist in allen Modulen sichtbar.Private Funktion ist nur im lokalen Modul sichtbar.Static Variablen der Funktion erhalten ihre Werte bei

Mehrfachaufruf.As Typ Datentyp der RuckgabevariablenExit Mit ExitFunction wird die Funktion beendet.

Der Rucksprung ins aufrufende Programm er-folgt.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I82 / 98

Page 83: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9. Dateifunktionen

Die Dateifunktionen werden in nachfolgender Tabelle zusammengestellt.

Funktion BeschreibungOpen Offnen einer Datei.Close Schließen einer Datei.Input Lesen eines Datenfeldes aus einer Datei.Write Schreiben eines Datenfeldes in eine Datei.Line Input Einlesen einer Zeile aus einer Datei.EOF Erkennen des Dateiendes.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I83 / 98

Page 84: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9.1. Open

Offnen einer Datei Open <Dateiname> For <Modus> As #<Kanal>

Parameter BeschreibungDateiname Dateiname der zu offnenden Datei.Modus Zugriffsmodus:

Input (Offnen zum Lesen aus Textdatei)Output (Offnen zum Schreiben in Textdatei).Append (Anhangen eines Textes an Datei).

Kanal Zugriffsnummer fur weitere Dateizugriffe.

8.9.2. Close

Schließen einer Datei Close #<Kanal>

Parameter BeschreibungKanal Zugriffsnummer der zu schließenden Datei.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I84 / 98

Page 85: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9.3. Eine Textdatei

Eine Textdatei hat die folgenden Eigenschaften.

• Zeichen- und zeilenweise Organisation.

• Zeilenende wird unter WINDOWS mit cr lf abgeschlossen(chr(13) chr(10)), unter UNIX nur mit lf.

• Textdateien sind als sequentielle Dateien zu betrachten.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I85 / 98

Page 86: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9.4. Input

Lesen von Textfeldern aus einer Textdatei.Input #<Kanal>, <Variable-1>, <Variable-2>,...,<Variable-N>

Parameter BeschreibungKanal Zugriffsnummer der zu lesenden Datei.Variable-1 Lesen des 1. Textfeldes.Variable-2 Lesen des 2. Textfeldes.. . . . . .

Variable-N Lesen des N. Textfeldes.

Beispiel:Input #1, x, y, z ’Einlesen der Punktkoordinaten

Mit Input wird die Liste aus der Datei gelesen, wobei die Variablen durchKommas getrennt und die Strings in Anfuhrungszeichen geschlossen werden.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I86 / 98

Page 87: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9.5. Write

Schreiben von Textfeldern in eine Textdatei.Write #<Kanal>, <Variable-1>, <Variable-2>,...,<Variable-N>

Parameter BeschreibungKanal Zugriffsnummer der zu lesenden Datei.Variable-1 Lesen des 1. Textfeldes.Variable-2 Lesen des 2. Textfeldes.. . . . . .

Variable-N Lesen des N. Textfeldes.

Beispiel:Write #1, x, y, z ’Schreiben der Punktkoordinaten

Mit Write wird die Ausgabeliste in die Datei geschrieben, wobei die Variablendurch Kommas getrennt und die Strings in Anfuhrungszeichen geschlossenwerden.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I87 / 98

Page 88: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9.6. EOF

Erkennen des Dateiendes (End Of File).EOF(<Kanal>)

Parameter BeschreibungKanal Zugriffsnummer der zu lesenden Datei.

Beispiel:Do While Not EOF(1)

In der While-Schleife wird eine Datei eingelesen. EOF zeigt das Dateiendean. Die Schleifendurchlaufe werden nach Erreichen des Dateiendes beendet.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I88 / 98

Page 89: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.9.7. Line Input

Einlesen einer Zeile aus einer Textdatei.Line Input <Kanal>, <Zeile>)

Parameter BeschreibungKanal Zugriffsnummer der zu lesenden Datei.Zeile Textvariable.

Beispiel:Line Input #1, s$

In die Variable s$ wird die nachste Zeile der Textdatei aus Kanal 1 gelesen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I89 / 98

Page 90: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.10. Klassenmodule

Ein Klassenmodul enthalt eineKlassevorlage, d.h. Objekteigen-schaften und Objektmethoden.

Dim x() As Double ’ Vektorkomponenten

Dim n As Integer ’ Vektordimension

Dim l As Double ’ Vektorlange

Private Sub Class_Initialize()

Dim i As Integer

n = 3

ReDim x(1 To n)

For i = 1 To n

x(i) = 0#

Next i

End Sub

8.10.1. Instanzen

Instanzen einer Klasse werden generiert mit dem Operator new.Dim obj As new Klasse1 Dim obj As Klasse1

Set obj = new Klasse1

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I90 / 98

Page 91: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.10.2. Konstruktor

Wird eine neue Instanz einer Klasse erzeugt,

set obj = new MeinObjekt

so wird zunachst der Konstruktor, die Objektfunktion Class_Initialize(),aufgerufen. Im Konstruktor sind einmalige Initialisierungen zu implementie-ren (z.B. Initialisierung der Objekteigenschaften, Anlegen dynamischen Spei-chers, Anlegen von Unterobjekten, etc.).

8.10.3. Destruktor

Wir eine Instanz einer Klasse entfernt, freigegeben:

set obj = nothing

wird der Destruktor (), d.h. die Funktion Class_Terminate() aufgerufen. DieseFunktion wird genutzt fur Aufraumarbeiten, z.B. zum Freigeben von Unter-objektinstanzen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I91 / 98

Page 92: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.11. Listen und Containerklassen

Listen oder Containerklassen konnen Objekte dynamisch speichern (d.h.automatisches Speichermanagment). VBA liefert die Klasse Collection zurSpeicherung von Objektinformationen (z.B. ChartObjects).

Objekte konnen der Liste hinzugefugt werden (Add), sie konnen aus derListe entfernt werden (Remove), sie konnen aus der Liste unter Vorgabedes Indexwertes oder der Objektbezeichnung abgerufen werden (Item). DieAnzahl der gespeicherten Objekte kann mit Count ermittelt werden.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I92 / 98

Page 93: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.11.1. Die Add-Methode

Mit der Methode Add wird ein Objekt der Liste hinzugefugt. Die Methodehat die folgenden Parameter.

Operator AnmerkungItem Zeiger auf ObjektKey ObjektbezeichnungBefore Objektbezeichnung fur Einfugen vorAfter Objektbezeichnung fur Einfugen nach

Beispiel:

dim obj as MeinObjekt

set obj = new MeinObjekt

Liste.Add item:= obj key:="Objekt1"

set obj = new MeinObjekt

Liste.Add item:= obj key:="Objekt 2"

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I93 / 98

Page 94: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.11.2. Die Remove-Methode

Mit der Methode Remove wird ein Objekt aus der Liste entfernt. Die Methode hat diefolgenden Parameter.

Operator AnmerkungIndex Index des zu loschenden Objekts oder

Bezeichnung (d.h. key), siehe Add-Methode.

Beispiel:

Liste.Remove(2)

Liste.Remove("Objekt 1")

8.11.3. Die Item-Methode

Mit der Methode Item wird ein Objekt aus der Liste aufgerufen. Die Methode hat die fol-genden Parameter.

Operator AnmerkungIndex Index des zu holenden Objekts oder

Bezeichnung (d.h. key), siehe Add-Methode.

Beispiel:

dim obj as MeinObjekt

set obj = Liste.Item(2)

set obj = Liste(2)

set obj = Liste.Item("Objekt 2")

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I94 / 98

Page 95: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.12. Beispiel Newton-Verfahren

8.12.1. Der Algorithmus, 1-dimensionaler Fall

Abbildung 34: GraphischeDarstellung des Newton-Verfahrens

Mit dem Newton-Verfahren kann iterativ eine Nullstelleeiner Funktion f(x) bestimmt werden. Hierfur sind einStartwert x0, eine Genauigkeit ε und eine maximale Ite-rationsanzahl nx vorzugeben.Durch Nullsetzen einer Taylor-Reihenentwicklung um denPunkt xn kann die Iterationsformel des Newton-Verfahrensleicht abgeleitet werden.

f(xn+1) = f(xn) + (xn+1 − xn) · f ′(xn) = 0 ⇒ (3)

xn+1 = xn −f(xn)

f ′(xn)(n = 0, 1, 2, . . . ; x0 gegeben)

Die Ableitung der Funktion f(x) kann durch den Differenzenquotienten angenahert werden.

f ′(x) =f(x + h/2)− f(x− h/2)

hmit h = 0.001 (4)

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I95 / 98

Page 96: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.12.2. Pseudo-Code

Das Problem kann wie folgt in einem Pseudo-Code (umgangsprachliche Beschreibung) for-muliert werden.

1. Wahle einen Startwert x.

2. Berechne f(x)

3. Falls |f(x)| < ε, dann Nullstelle gefunden.

4. Falls maximale Anzahl Iterationen erreicht, Ausgabe Fehlermeldung.

5. Berechne f ′(x).

6. Falls |f ′(x)| < ε, Ausgabe einer Fehlermeldung.

7. Nachsten x-Wert berechnen: x ⇐ x− f(x)

f ′(x)

8. Nachster Iterationsschritt mit Punkt 2.

Anmerkung:Ein Problem tritt auf, wenn die Ableitung der Funktion verschwindet. Geometrisch: es gibtkeinen Schnittpunkt zwischen Tangente und x-Achse.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I96 / 98

Page 97: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.12.3. Programmablaufplan

Abbildung 35:Programmablaufplan desNewton-Verfahrens

Das Newtonverfahren geht aus von einem Startwert x.Dieser wird zunachst eingelesen. Die Iterationsschleifebeginnt mit der Berechnung des Funktionswertes f(x).Darauf folgt die Nullabfrage. Falls der Absolutbetrag desFunktionswertes kleiner als die Genauigkeit ε ist, wird dieIterationsschleife abgebrochen und die Losung ausgege-ben.

Es folgt die Prufung der zulassigen Iterationsdurchlaufe.

Nach der Berechnung der Tangentensteigung f ′(x) wird,falls diese nicht verschwindet, ein neuer x-Wert berechnetund ein neuer Schleifendurchlauf gestartet.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I97 / 98

Page 98: Bauinformatik 4. Semester Fachstudium - …info.statik.uni-due.de/Lehre/Bauinformatik/Skripte/BIV...Bauinformatik 4. Semester Fachstudium - Pflichtmodul - Teil 1 Menkenhagen / Baeck

8.12.4. Nassi-Schneidermann-Diagramm

Abbildung 36: NS-Diagramm des Newton-Verfahrens

Im Nassi-Shneiderman-Diagramm ist der li-neare Fluß des Programms von oben nachunten erkennbar. Es werden keine Sprunge(Goto) durch Verbinder provoziert.

Im Fall des Erreichens der maximal vorge-gebenen Iterationsanzahl und im Fall ver-schwindender Tangentensteigung wird dasProgramm direkt mit einer entsprechendenMeldung abgebrochen.

Universitat Duisburg-EssenBauwissenschaften / Fachgebiet Baustatik

Dr. E. Baeck / eMail: [email protected]

Bauinformatik - I98 / 98