Informatik - Studiengang "Chemische Technologie" - fbi.h

Werbung
Informatik
Studiengang Chemische Technologie
Michael Roth
[email protected]
Hochschule Darmstadt
-Fachbereich Informatik-
WS 2012/2013
Inhalt
Teil VIII
Einstieg in Java II
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
2 / 34
Inhalt
Inhalt
1
Objekte
2
Java VM
3
Evaluation
4
Java - Rahmenprogramm
5
Ein- und Ausgabe in Java
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
3 / 34
Objekte
Objekte
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
4 / 34
Objekte
Übersicht
Bislang wurde das imperative Programmierparadigma behandelt
Neben diesem existieren weitere:
Deklarativ
Objektorientiert
Begriffe aus dem imperativen Programmierparadigma:
Programmablauf
Prozeduren und Funktionen
Anweisungen, die nacheinander ausgeführt werden
Kontrollstrukturen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
5 / 34
Objekte
Übersicht
Bislang wurde das imperative Programmierparadigma behandelt
Neben diesem existieren weitere:
Deklarativ
Objektorientiert
Begriffe aus dem imperativen Programmierparadigma:
Programmablauf
Prozeduren und Funktionen
Anweisungen, die nacheinander ausgeführt werden
Kontrollstrukturen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
5 / 34
Objekte
Übersicht
Bislang wurde das imperative Programmierparadigma behandelt
Neben diesem existieren weitere:
Deklarativ
Objektorientiert
Begriffe aus dem imperativen Programmierparadigma:
Programmablauf
Prozeduren und Funktionen
Anweisungen, die nacheinander ausgeführt werden
Kontrollstrukturen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
5 / 34
Objekte
Übersicht
Bislang wurde das imperative Programmierparadigma behandelt
Neben diesem existieren weitere:
Deklarativ
Objektorientiert
Begriffe aus dem imperativen Programmierparadigma:
Programmablauf
Prozeduren und Funktionen
Anweisungen, die nacheinander ausgeführt werden
Kontrollstrukturen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
5 / 34
Objekte
Übersicht
Der Begriff Programmierparadigma
Ein Paradigma in der Programmierung beschreibt einen
Programmierstil
Bestimmte Paradigmen werden von bestimmten Sprachen
besser unterstützt
Es gibt also spezielle Programmiersprachen, die sich auf ein
Paradigma festlegen,
und allgemeinere Sprachen, die Konstrukte für mehrere
Paradigmen anbieten (z.B. C++, oder auch Java)
Hinter einem Paradigma steht immer ein gedankliches Modell, wie
ein Programm auszusehen hat
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
6 / 34
Objekte
Imperatives Paradigma
. . .in der Hamsterwelt
Die Charakteristika der imperativen Hamsterwelt sind:
Es existiert nur ein Hamster (der Standardhamster )
Der Hamster ist namenlos
Der Hamster ist von Beginn bis Ende des Programms da
Er hat 4 Grundbefehle und 3 Testbefehle
Er besitzt 4 Eigenschaften (Attribute / Zustände)
•
•
•
•
Aktuelle Reihe
Aktuelle Spalte
Blickrichtung
Anzahl der Körner im Maul
Ein Hamsterprogramm besteht aus einer Abfolge von
Anweisungen, incl. dem Aufruf selbst definierter Funktionen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
7 / 34
Objekte
Objektorientiertes Paradigma
. . .in der Hamsterwelt
Die Erzeugung weiterer Hamster ist möglich
• Ein neues Hamsterobjekt wird dabei durch new erzeugt
• Den new Operator kennen Sie bereits vom Erzeugen von Arrays:
1
int [] feld = new int [100];
Jeder neu erzeugte Hamster kennt die 4 Grundbefehle und die 3
Testbefehle
Jeder Hamster besitzt darüber hinaus eigene Eigenschaften
(Attribute):
• Reihe und Spalte (aktuelle Position)
• Blickrichtung
• Anzahl der Körner im Maul
Die Attribute werden nicht mehr über den Terraineditor gesetzt,
sondern im Programm angegeben
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
8 / 34
Objekte
Objektorientiertes Java-Hamster-Modell (2)
Objektorientierte Hamsterwelt
Objektorientiertes Hamster-Modell (Voraussetzungen):
¾ Zuordnung
Namen
Hamstern
Zuordnung
vonvon
Namen
zuzu
Hamstern
¾ Anweisung
Erzeugung
von
Hamstern
Anweisung
zurzur
Erzeugung
von
Hamstern
¾ Notation,
welcher
Hamster
bestimmten
Befehl ausführen soll
Welcher
Hamster
soll
welcheeinen
Befehle
ausführen?
¾ Koordinatensystem
fürTerritoriums
das Territorium
Koordinatensystem
des
0
1
2
7
0
neuer Hamster
Reihe: 0
Spalte: 6
Blickrichtung: SUED
Körner: y
Standard-Hamster (blau)1
Reihe: 1
Spalte: 1
Blickrichtung: OST
Körner: x
4
Reihe
Programmierkurs Java
Michael Roth (h_da)
Spalte
UE 20
(Hamster-) Objekte
Informatik (CT)
Dietrich Boles
WS 2012/2013
Seite 5
9 / 34
Objekte
Erzeugung von Objekten
Sie kennen bereits das Erzeugen/Anlegen von Variablen:
1
2
int i = 17;
double d = 23.5;
Bei der Erzeugung von Arrays und Objekten wird der new Operator
verwendet:
1
2
3
int [] feld = new int [100]; // bekannt
Integer i = new Integer (17) ; // int i = 17; als Objekt
Double d = new Double (23.5) ; // double b = 23.5; als Objekt
Warum hat Java sowohl int als auch Integer?
Java unterstützt mehrere Programmierparadigma
Folglich gibt es einen Datentyp int,
und eine Klasse Integer
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
10 / 34
Objekte
Erzeugung von Objekten
Sie kennen bereits das Erzeugen/Anlegen von Variablen:
1
2
int i = 17;
double d = 23.5;
Bei der Erzeugung von Arrays und Objekten wird der new Operator
verwendet:
1
2
3
int [] feld = new int [100]; // bekannt
Integer i = new Integer (17) ; // int i = 17; als Objekt
Double d = new Double (23.5) ; // double b = 23.5; als Objekt
Warum hat Java sowohl int als auch Integer?
Java unterstützt mehrere Programmierparadigma
Folglich gibt es einen Datentyp int,
und eine Klasse Integer
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
10 / 34
Objekte
Erzeugung von Objekten
Anatomie
1
Integer i = new Integer (5) ;
Integer:
Bezeichner der Klasse, von der ein Objekt erzeugt werden
soll. Auch Datentyp des Objektes genannt
i:
Der Name des Objektes, bekannt aus der
Variablendeklaration
new:
new Operator, der ein Objekt der angegebenen Klasse
erzeugt
Integer(5):
Die Attribute eines Integer-Objektes können durch die
Parameter des Konstruktoraufrufes festgelegt werden
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
11 / 34
Objekte
Erzeugung von Objekten
. . .in der Hamsterwelt
Die Zeile:
1
Hamster paul = new Hamster (0 , 6 , Hamster . SUED , 0) ;
. . .legt ein neues Objekte des Typs Hamster an.
Die Parameter sind:
1
Reihe
2
Spalte
3
Blickrichtung
4
Körner im Maul
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
12 / 34
Objekte
Erzeugung von Objekten
. . .in der Hamsterwelt
Die Zeile:
1
Hamster paul = new Hamster (0 , 6 , Hamster . SUED , 0) ;
. . .legt ein neues Objekte des Typs Hamster an.
Die Parameter sind:
1
Reihe
2
Spalte
3
Blickrichtung
4
Körner im Maul
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
12 / 34
Objekte
Hamsterobjekte
Um einem bestimmten Hamster einen Befehl zu geben, wird der .
Operator auf das betreffender Objekt der Klasse Hamster angewendet:
1
2
3
4
5
6
7
8
9
10
11
// Syntax : < name >. < befehl >
// Erzeuge 2 Hamster
Hamster paul = new Hamster (0 , 6 , Hamster . SUED , 0) ;
Hamster peter = new Hamster (2 , 6 , Hamster . OST , 0) ;
paul . vor () ; // bewege Paul ein Feld nach Sueden
peter . vor () ; // bewege Peter ein Feld nach Osten
while ( paul . vornFrei () )
paul . vor () ;
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
13 / 34
Demo
Demo
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
14 / 34
Demo
Objektorientiertes Paradigma
Begriffe
Klasse
Eine Klasse ist eine Art Bauplan für gleichartige Dinge (meist der
realen Welt). Klassen beinhalten Daten und verfügen über Funktionen,
um diese Daten in irgendeiner Form zu verarbeiten.
Klassen sind ein Grundbestandteil der objektorientierten Welt.
Attribute
Ein Klasse definiert intern Variablen, die den jeweiligen Zustand eines
Objektes exakt beschreiben. Ein Objekt definiert sich allein durch seine
eigenen Attribute.
Jedes Objekt verfügt über eigene Attribute. Das bedeutet, dass
verschiedene Objekte der gleichen Klasse verschiedene Werte für ihre
jeweiligen Attribute haben können.
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
15 / 34
Demo
Objektorientiertes Paradigma
Begriffe
Klasse
Eine Klasse ist eine Art Bauplan für gleichartige Dinge (meist der
realen Welt). Klassen beinhalten Daten und verfügen über Funktionen,
um diese Daten in irgendeiner Form zu verarbeiten.
Klassen sind ein Grundbestandteil der objektorientierten Welt.
Attribute
Ein Klasse definiert intern Variablen, die den jeweiligen Zustand eines
Objektes exakt beschreiben. Ein Objekt definiert sich allein durch seine
eigenen Attribute.
Jedes Objekt verfügt über eigene Attribute. Das bedeutet, dass
verschiedene Objekte der gleichen Klasse verschiedene Werte für ihre
jeweiligen Attribute haben können.
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
15 / 34
Demo
Objektorientiertes Paradigma
Begriffe
Objekte
Objekte sind Instanzen einer Klasse. Variablen verhalten sich zu
Datentyp wie Objekte zu Klasse
Methoden
Methoden einer Klasse sind in der Klasse definierte Funktionen. Diese
können mittels des . Operators auf Objekte dieser Klasse aufgerufen
werden. Typischerweise verarbeiten Methoden (unter anderem) die
Attribute einer Klasse.
Konstruktor
Eine spezielle Methode, die beim Erzeugen eines Objektes aufgerufen
wird. Ein Konstruktor kann, wie jede andere Methode oder Funktion
auch, Parameter besitzen. Oftmals werden diese Parameter zum
initialisieren von Attributen verwendet.
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
16 / 34
Demo
Objektorientiertes Paradigma
Begriffe
Objekte
Objekte sind Instanzen einer Klasse. Variablen verhalten sich zu
Datentyp wie Objekte zu Klasse
Methoden
Methoden einer Klasse sind in der Klasse definierte Funktionen. Diese
können mittels des . Operators auf Objekte dieser Klasse aufgerufen
werden. Typischerweise verarbeiten Methoden (unter anderem) die
Attribute einer Klasse.
Konstruktor
Eine spezielle Methode, die beim Erzeugen eines Objektes aufgerufen
wird. Ein Konstruktor kann, wie jede andere Methode oder Funktion
auch, Parameter besitzen. Oftmals werden diese Parameter zum
initialisieren von Attributen verwendet.
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
16 / 34
Demo
Objektorientiertes Paradigma
Begriffe
Objekte
Objekte sind Instanzen einer Klasse. Variablen verhalten sich zu
Datentyp wie Objekte zu Klasse
Methoden
Methoden einer Klasse sind in der Klasse definierte Funktionen. Diese
können mittels des . Operators auf Objekte dieser Klasse aufgerufen
werden. Typischerweise verarbeiten Methoden (unter anderem) die
Attribute einer Klasse.
Konstruktor
Eine spezielle Methode, die beim Erzeugen eines Objektes aufgerufen
wird. Ein Konstruktor kann, wie jede andere Methode oder Funktion
auch, Parameter besitzen. Oftmals werden diese Parameter zum
initialisieren von Attributen verwendet.
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
16 / 34
Demo
Objektorientiertes Paradigma
Zusammenfassung
Beim objektorientierten Programmieren wird das Arbeiten mit
Objekten in den Vordergrund gestellt
Funktionalität, die sich beim imperativen Programmieren in
Funktionen befindet, wird hier in Methoden der dazugehörigen
Klassen implementiert
Dadurch wird das Programm übersichtlicher, da Funktionen
logisch den jeweiligen Klassen zuzuordnen sind
Auch die Interaktion verschiedener Objekter (bzw. verschiedener
Klassen) steht im Vordergrund
Objektorientierung ist in Java sehr stark vertreten
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
17 / 34
Java VM
Java VM
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
18 / 34
Java VM
Übersicht
Im Gegensatz zu rein kompilierten Sprachen wird ein Java
Programm teilweise interpretiert
Bei anderen Sprachen (wie z.B. C++) übersetzt der Compiler den
Quellcode in Maschinensprache, welche direkt von der CPU des
Computers ausgeführt wird
Zu Java existiert der Compiler javac, der den Quellcode zu Java
Bytecode kompiliert
Dieser Bytecode kann von einer Java Laufzeitumgebung (engl.
Runtime) ausgeführt werden
Die Laufzeitumgebung wird häufig auch virtuelle Maschine genannt
→ JVM = Java Virtual Machine
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
19 / 34
Java VM
Java VM
Arbeitsweise
Java-Quell-Programm
Java-Compiler
Java-Bytecode
Java VM
für WinNT
WinNT
Ausführbares
Programm
Java VM
für Linux
Java VM
für Explorer
...
Ausführbares
Applet
Explorer
Linux
Ausführbares
Programm
Programmierkurs Java
Michael Roth (h_da)
...
UE 11
Informatik (CT)
Einführung in Java
Dietrich Boles
Seite 8
WS 2012/2013
20 / 34
Java VM
Java VM
Vor- und Nachteile
Vorteile
Plattformunabhängig
. . .das bedeutet, dass ein und das selbe Programm auf
unterschiedlichen Systemen (Soft- wie Hardware) lauffähig ist
Sicherheitsaspekte, da kein direkter Zugriff auf die Hardware
erfolgt
Nachteile
Die Performanz kann niedriger sein als bei direkt kompilierten
Sprachen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
21 / 34
Java VM
Java VM
Vor- und Nachteile
Vorteile
Plattformunabhängig
. . .das bedeutet, dass ein und das selbe Programm auf
unterschiedlichen Systemen (Soft- wie Hardware) lauffähig ist
Sicherheitsaspekte, da kein direkter Zugriff auf die Hardware
erfolgt
Nachteile
Die Performanz kann niedriger sein als bei direkt kompilierten
Sprachen
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
21 / 34
Evaluation
Evaluation
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
22 / 34
Java - Rahmenprogramm
Java - Rahmenprogramm
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
23 / 34
Java - Rahmenprogramm
Übersicht
Ein neu erzeugtes, imperatives Hamsterprogramm sieht wie folgt
aus:
1
2
3
void main ()
{
}
Ein minimales, lauffähiges Java Programm sieht so aus:
1
2
3
4
5
6
7
// Name der Datei : World . java
class World
{
public static void main ( String [] args )
{
}
}
Es ist wichtig, dass die Klasse Main in einer Datei gleichen Namens
abgespeichert wird!
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
24 / 34
Java - Rahmenprogramm
Übersicht
Ein neu erzeugtes, imperatives Hamsterprogramm sieht wie folgt
aus:
1
2
3
void main ()
{
}
Ein minimales, lauffähiges Java Programm sieht so aus:
1
2
3
4
5
6
7
// Name der Datei : World . java
class World
{
public static void main ( String [] args )
{
}
}
Es ist wichtig, dass die Klasse Main in einer Datei gleichen Namens
abgespeichert wird!
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
24 / 34
Java - Rahmenprogramm
Übersicht
Ein neu erzeugtes, imperatives Hamsterprogramm sieht wie folgt
aus:
1
2
3
void main ()
{
}
Ein minimales, lauffähiges Java Programm sieht so aus:
1
2
3
4
5
6
7
// Name der Datei : World . java
class World
{
public static void main ( String [] args )
{
}
}
Es ist wichtig, dass die Klasse Main in einer Datei gleichen Namens
abgespeichert wird!
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
24 / 34
Java - Rahmenprogramm
Programmerstellung
1
Erstellen des Programmcodes mittels eines Editors
2
Abspeichern in einer Datei <NameDerKlasse>.java
Kompilieren des Quellcodes:
3
• javac <NameDerKlasse>.java
• z.B. javac World.java
4
Falls Fehlermeldungen auftreten:
• Fehler beseitigen
• Zurück zu Punkt 2
5
Der Compiler erzeugt eine nicht ausführbare Datei
<NameDerKlasse>.class
6
Das Programm kann mittels Ausführung der JVM gestartet
werden:
• java <NameDerKlasse>
• z.B. java World
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
25 / 34
Java - Rahmenprogramm
Zusammenfassung
Alle Java-Programme sind Klassen
1
2
3
4
5
6
7
8
9
class < Klassenname >
{
< Funktionen und globale Variablen >
public static void main ( String [] args )
{
< Anweisungen >
}
}
Die Hamsterbefehle gibt es nicht mehr. . .
Vor globalen Variablen und Funktionen: static
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
26 / 34
Ein- und Ausgabe in Java
Ein- und Ausgabe in Java
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
27 / 34
Ein- und Ausgabe in Java
Übersicht
Dieses Kapitel behandelt die Ein- und Ausgabe bei Java über die
Konsole
Java bietet umfangreiche Möglichkeiten, grafische
Benutzeroberflächen (GUIs) zu erstellen
. . .die wir allerdings nicht nutzen werden
Bei Ein/Ausgabe über die Konsole werden folgende Begriffe
verwendet:
Standardeingabe (engl. Standard input ): Eingaben über die
Tastatur
Standardausgabe (engl. Standard output ): Ausgabe auf dem
Monitor
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
28 / 34
Ein- und Ausgabe in Java
Übersicht
Dieses Kapitel behandelt die Ein- und Ausgabe bei Java über die
Konsole
Java bietet umfangreiche Möglichkeiten, grafische
Benutzeroberflächen (GUIs) zu erstellen
. . .die wir allerdings nicht nutzen werden
Bei Ein/Ausgabe über die Konsole werden folgende Begriffe
verwendet:
Standardeingabe (engl. Standard input ): Eingaben über die
Tastatur
Standardausgabe (engl. Standard output ): Ausgabe auf dem
Monitor
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
28 / 34
Ein- und Ausgabe in Java
Ausgabe
Ausgaben werden mittels der Funktion System.out.println(x)
getätigt
System.out ist ein Objekt, welches mit der Standardausgabe
verbunden ist
println() ist eine Methode dieses Objektes
x kann jede beliebige Variable oder fester Wert sein:
1
2
3
4
System . out . println (5) ;
System . out . println ( " Hallo , Welt ! " ) ;
double d = 17.3;
System . out . println ( d ) ;
Sie können zwei Variablen des Typ String bzw. zwei Literale des
Stringtyps mittels des Operators + verketten:
1
2
3
4
5
System . out . println ( " Ergebnis : " + 5) ; // Ergebnis : 5
String s = " Hallo " ;
String t = " Welt " ;
System . out . println ( s + " " + t ) ; // Hallo Welt
System . out . println (3 + 4) ; // 7 , nicht 34
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
29 / 34
Ein- und Ausgabe in Java
Ausgabe
Ausgaben werden mittels der Funktion System.out.println(x)
getätigt
System.out ist ein Objekt, welches mit der Standardausgabe
verbunden ist
println() ist eine Methode dieses Objektes
x kann jede beliebige Variable oder fester Wert sein:
1
2
3
4
System . out . println (5) ;
System . out . println ( " Hallo , Welt ! " ) ;
double d = 17.3;
System . out . println ( d ) ;
Sie können zwei Variablen des Typ String bzw. zwei Literale des
Stringtyps mittels des Operators + verketten:
1
2
3
4
5
System . out . println ( " Ergebnis : " + 5) ; // Ergebnis : 5
String s = " Hallo " ;
String t = " Welt " ;
System . out . println ( s + " " + t ) ; // Hallo Welt
System . out . println (3 + 4) ; // 7 , nicht 34
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
29 / 34
Ein- und Ausgabe in Java
Ausgabe
print() und println()
Die Funktion print() gibt in einer Zeile aus
Die Funktion println() gibt aus, und geht anschlieÿend in eine
neue Zeile
1
2
3
4
5
6
7
8
9
10
11
12
13
System . out . print (1) ;
System . out . print (2) ;
System . out . print (3) ;
System . out . print (4) ;
// Ausgabe : 1234
System . out . println (1) ;
System . out . println (2) ;
System . out . println (3) ;
System . out . println (4) ;
/* Ausgabe : 1
2
3
4 */
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
30 / 34
Ein- und Ausgabe in Java
Eingabe
Analog zu System.out gibt es ein Objekt System.in, welches mit
der Standardeingabe verbunden ist
Zum Lesen der Standardeingabe gibt es eine Klasse Scanner, die
folgende Methoden anbietet:
• nextInt() extrahiert den nächsten Integer Wert
• nextDouble() extrahiert den nächsten Double Wert
• nextLine() liest eine ganze Zeile ein (als String)
Die Methoden lesen dabei maximal bis zum nächsten ENTER
Zeichen ein
Passt das jeweils nächste Token im Strom der Standardeingabe
nicht zu dem gewünschten Zeichen, so wird ein Laufzeitfehler
(Exception) ausgelöst
. . .Sie kennen das bereits vom Hamster
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
31 / 34
Ein- und Ausgabe in Java
Eingabe
Beispiel
1
2
3
4
5
6
7
8
import java . util . Scanner ;
public class J a v a A p p l i c a t i o n 1
{
public static void main ( String [] args )
{
// Erzeugen eines neuen Scanner Objektes , welches mit
der S ta nd a rd e in ga b e verbunden wird
Scanner scan = new Scanner ( System . in ) ;
int i = scan . nextInt () ;
double d = scan . nextDouble () ;
System . out . println ( " Sie haben getippt : " + i + " und
" + d);
9
10
11
12
13
14
15
}
}
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
32 / 34
Demo
Demo
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
33 / 34
Fragen?
Fragen?
Michael Roth (h_da)
Informatik (CT)
WS 2012/2013
34 / 34
Herunterladen