Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sommersemester 2003 Lars Bernard

Ähnliche Präsentationen


Präsentation zum Thema: "Sommersemester 2003 Lars Bernard"—  Präsentation transkript:

1 Sommersemester 2003 Lars Bernard
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 2 Programmieren und Typen Sommersemester 2003 Lars Bernard

2 Organisation Infos unter: GeosI/index.html Teilnehmer-Liste Geosoftware I – Lars Bernard

3 Einführung: Was bedeutet Programmieren?
Eine mögliche Definition: Erstellen einer Simulation Objektorientierung wurde mit der Sprache Simula “erfunden” (1967) ! Es geht nicht nur darum, dass das Programm läuft Simulation = ausführbares Modell Sie lernen hier, mit Informatikmethoden Modelle zu bauen und sie auszuprobieren Geosoftware I – Lars Bernard

4 Hydrologische Modelle etc.
Beispiele Wettervorhersage Roboter Fahrzeugnavigation Hydrologische Modelle etc. Geosoftware I – Lars Bernard

5 Kern der Simulation: ein Modell
ein Modell der Welt, nicht des Computers Folge: Sie sollten genau verstehen, was Sie wollen Lassen Sie sich vom Programmcode nicht den Blick aufs Wesentliche nehmen Merke: “gute Programmierer programmieren einfache Aufgaben;  divide & conquer ! schlechte Programmierer versuchen, schwierige Aufgaben zu programmieren” Geosoftware I – Lars Bernard

6 eine Abstraktion von der Welt
Was ist ein Modell ? eine Abstraktion von der Welt Wichtiges hervorheben, Details weglassen klassifizieren und verallgemeinern in einer Sprache beschrieben welche Sprachen zur Modellierung kennen Sie? welche Sprachmittel bieten diese? bestehend aus Objekten und Operationen Objektorientierung: beide zusammen betrachten. Geosoftware I – Lars Bernard

7 Modelle der Geoinformatik
3 Komponenten: Raumbezug Zeitbezug Thematik Besonderheiten: wir können nicht einfach festlegen, wie die Welt funktionieren soll Geometrie Geosoftware I – Lars Bernard

8 Java als moderne Programmiersprache
Werkzeuge Ihr Kopf Papier und Bleistift Java als moderne Programmiersprache Geosoftware I – Lars Bernard

9 eine Programmiersprache
Was ist Java? eine Programmiersprache modern, d.h. vergleichsweise “neu” (vgl. Fortran, Pascal, C, Basic, …..) eine wichtige Programmiersprache für verteilte Anwendungen und das World Wide Web (WWW) Geosoftware I – Lars Bernard

10 sehr stark an C++ angelehnt objektorientiert
Was ist Java ? (2) sehr stark an C++ angelehnt objektorientiert “einfach”, “schnell”, “sicher” andere Programmier(sprachen)kenntnisse sind hilfreich Geosoftware I – Lars Bernard

11 Anwendungen schreiben!
Was macht man mit Java ? Programmieren! Anwendungen schreiben! alle Arten von Anwendungen, die man mittels “klassischer” Sprachen schreiben kann insbesondere Anwendungen, die mit anderen Computern via Internet kommunizieren können Einbindung von Grafiken, Webseiten, interaktiven Fenstern, benutzerfreundlichen Oberflächen, ... Geosoftware I – Lars Bernard

12 Compiler & Interpreter
Compiler = “Übersetzer”: übersetzt (kompiliert) das Programm in Maschinensprache Compiler liest und kompiliert gesamtes Programm ==> ausführbares Programm Interpreter liest ein Programm Zeile für Zeile und führt jede Zeile gleich aus. Geosoftware I – Lars Bernard

13 Java Compiler und Interpreter
Java Quellcode wird mittels JAVAC kompiliert (in speziellen Bytecode) der Bytecode wird während des Programmablaufs in Maschinensprache übersetzt (mittels JAVA) Vorteile sind u.a.: der vorkompilierte Code ist Plattform-unabhängig! (Internet!) Überwachung der Programmausführung, z. B. bei Speicherzugriffen, Datenmanipulationen (Datenaustausch via Internet) Geosoftware I – Lars Bernard

14 Geosoftware I – Lars Bernard

15 Geosoftware I – Lars Bernard

16 zur Seminar Homepage ... Literatur-Hinweis
Geosoftware I – Lars Bernard

17 Elementare Datentypen in Java
Typen - Ziele Begriff (Daten-)Typ Zweck von Typen Beschreibung von Typen Elementare Datentypen in Java Deklaration Bereiche Operatoren Typumwandlung Geosoftware I – Lars Bernard

18 Welche Typen kennen Sie? Was bezeichnen diese Namen?
Was ist ein Typ ? Welche Typen kennen Sie? Integer, Boolean, Character, String, etc. Was bezeichnen diese Namen? Mengen von Werten (“Wertebereich”) Boolean = { True, False } Integer = { x | minInt  x  maxInt} Wie baut man eigene Typen? Mit Typkonstruktoren wie array, list, class etc. Geosoftware I – Lars Bernard

19 Hauptzweck: Fehler vermeiden
Wozu braucht man Typen ? Hauptzweck: Fehler vermeiden z.B. c := a + b (wo a = 5 und b = True) Speicherverwaltung Typen übersetzen die Daten der Benutzer in den internen Binärcode Modularisierung Programme bauen auf Typen auf (Zahlen, Punkte,…) Dies sorgt für Wiederverwendbarkeit! Geosoftware I – Lars Bernard

20 Wie beschreibt man Typen ?
Durch eine Implementierung class Point { //*...*// }; Durch die zulässigen Operationen (Operatoren und Methoden) Integer: +, -, *, (div) Punkt: new Point(5.0, 4.0), getX(), getY() Signaturen von Operationen + :: Integer, Integer -> Integer getX :: Point -> Double Geosoftware I – Lars Bernard

21 Elementare Datentypen in Java
Variablen werden als Elemente eines Typs deklariert int a, b, c; a = 5; b = 2; c = a + b; int number_; Geosoftware I – Lars Bernard

22 Java - Deklaration und Initialisierung
int a; Im Speicher wird ein Bereich für a reserviert und der Inhalt dieses Bereichs im weiteren als ganzzahliger Wert von a interpretiert. Dann kann a ein Wert zugewiesen werden: a = 5; Geosoftware I – Lars Bernard

23 Java - Deklaration und Initialisierung
In Java kann nur auf den Wert der Variablen zugegriffen werden (nicht auf die Adresse) Deklaration und Zuweisung/Initialisierung können in einer Anweisung erfolgen: int a = 5; Werte können explizit als Konstante deklariert werden: final int a = 5; Geosoftware I – Lars Bernard

24 Elementare Datentypen in Java
Geosoftware I – Lars Bernard

25 Operatoren dienen der Veränderung und Verknüpfung von Variablen
Java - Operatoren Operatoren dienen der Veränderung und Verknüpfung von Variablen arithmetische Operatoren, z.B: Add: + Subtr: - Mult: * Div: / Incr: ++ logische Operatoren: Und: && Oder: || Ungleich: != Gleich: == Zugriffsoperatoren: Indexzugriff: [] ... Geosoftware I – Lars Bernard

26 Java - Typumwandlung (casting)
Implizite Typumwandlung (vom niedrigeren zum höheren Typ): int a = 5; double x; x = a; // => x == 5.0 Explizite Typumwandlung (vom höheren zum niedrigeren Typ): int a; double x = 5.0; a = x; // => warning or error a = (int)X; // => ok Geosoftware I – Lars Bernard

27 Java - Typumwandlung Bereichsüberschreitung:
int a = ; // 4 byte = 32 bit int b = ; short s; // 2 byte = 16 bit s = a + b; // => s < 0 => overflow Implizite Typumwandlung in arithmetischen Ausdrücken: int a = 1; int b = 2; double x; x = a / b; // => x = 0 x = a / (double)b; // => x = 0.5 Geosoftware I – Lars Bernard

28 Typen sind ein Konzept der Programmierung Ausblick:
Zusammenfassung Typen sind ein Konzept der Programmierung Ausblick: Klassen sind die objekt-orientierte Form der Erzeugung von Typen durch Benutzer Listen zur Mengen-Verwaltung Geosoftware I – Lars Bernard

29 Und jetzt probieren … class Number { Number(int numberIn) {
} int getNumber() { return number_; int number_; class HelloNumber { public static void main(String[] args){ /* 1. Numbers as basic typs */ int Number1 = 1; int Number2, Number3; Number2 = 4; Number3 = 10; Number1 = Number2 + Number3; System.out.println("Hello to basic number 1: "+ Number1) ; System.out.println("Hello to a basic number 2 + number 3: "+ Number2 + " " + Number3) ; /* 2. Numbers as Objects */ Number myNumberObject; myNumberObject = new Number(4); System.out.println("Hello to a number object: "+ myNumberObject.getNumber()); Geosoftware I – Lars Bernard

30 Jetzt lesen, beginnen und dazu fragen ;-) die HA via e-mail an:
Aufgabe 1 und 2 Jetzt lesen, beginnen und dazu fragen ;-) die HA via an: Lars Bernard jeweils bis Montag st Geosoftware I – Lars Bernard


Herunterladen ppt "Sommersemester 2003 Lars Bernard"

Ähnliche Präsentationen


Google-Anzeigen