Einführung in die Programmierung mit Java
description
Transcript of Einführung in die Programmierung mit Java
Institut für Kartographie und GeoinformationProf.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk DörschlagInstitut für Kartographie und GeoinformationProf.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag
Einführung in dieProgrammierung mit Java
12. Vorlesung WS 04/05
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Übersicht
• Fehlerbehandlung
• Schreiben in Dateien
• Lesen aus (Text-)Dateien– zeilenweise– Lesen von Token ("Parsen")
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Laufzeitfehler in Java
• Viele Fehler werden vom Compiler aufgedeckt (z.B. fehlendes Semikolon, nicht deklarierte Variable)
• Andere Art von Fehler: Laufzeitfehler – tritt während der Ausführung des Programms auf– unterbricht den normalen Fluss der Befehle (Programm stützt ab)– Name dieser Fehler: Ausnahme (engl. Exception)
• Beispiele für Ausnahmesituationen:– bei Berechnungen Division durch Null– Mangel an Speicherplatz– Zugriff auf Array-Elemente über die Obergrenze hinaus– Schreib-/Lesefehler bei Ein- und Ausgabeoperationen
• Diskette defekt
• Netzwerkverbindung zusammengebrochen
• Festplatte voll
• zu öffnende Datei nicht vorhanden usw.
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Fehler während des Ablaufs- Beispiel -
public class Polygon {private Punkt[] eckpunkt;
public Polygon(){super();
}
public void leeres_Polygon( int anzahl_eckpunkte){eckpunkt = new Punkt[ anzahl_eckpunkte];
}
public void punkt_einfuegen( int position, Punkt punkt){eckpunkt[ position] = punkt;
}}
mögliche Fehler
negative Anzahl
Position außerhalb des
Arrays
Array noch nicht angelegt
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Laufzeitfehler: Beispiel
................................
int[ ] a;
a = new int[2];
a[0] = 5;
a[1] = 6;
a[2] = 6; //Fehler
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Abfangen des Fehlers: try-catch
................................
try{
int[ ] a;
a = new int[2];
a[0] = 5;
a[1] = 6;
a[2] = 6;
}
catch(java.lang.Exception e){
System.out.println("Fehler: Arraygrenze überschritten");
}
Anweisungen, bei denen ein Fehler auftreten kann.
Anweisungen, die ausgeführt werden, sobald ein Fehler
aufgetreten ist
hier geht es in jedem Fall weiter
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Ausnahmebehandlung in Java
• Vorteile der Java-Ausnahmebehandlung– Programm stürzt nicht ab– Programm macht an genau definierter Stelle weiter– systematische und übersichtliche Trennung von normalem und
fehlerbehandelndem Code
• Im Falle einer Ausnahme wird ein sog. Exception-Objekt erzeugt und weitergeleitet
– Instanz der Klasse Exception oder von Unterklasse
– Exception-Objekt erhält Information über Ausnahme
– Exception-Objekt wird mit catch gefangen (Fehlerbehandlung)
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Exceptions: Klassen-Hierarchie
Throwable(from lang)
Exception(from lang)
ArrayIndexOutOfBoundsException(from lang)
ArithmeticException(from lang)
IOException(from io)
FileNotFoundException(from io)
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Exception-Klassen I/II
Exception Der universelle Vater aller Fehlermeldungen. Von dieser Klasse sind alle anderen abgeleitet.
NullPointerException ( extends Exception)Tritt auf, wenn ein Objekt benutzt werden soll, obwohl esnoch nicht angelegt wurde.
Student student;student.drucke_ausweis();
Beispiel :Beispiel :
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Exception-Klassen II/II
ArrayIndexOutOfBoundsException ( extends Exception)Tritt auf, wenn auf ein Arrayelement zugegriffen wird, das nicht existiert.
Student student = new Student[2]Student student[3] = new Student(“Dirk“,“Dörschlag“);
Beispiel :Beispiel :
ClassCastException ( extends Exception)Tritt auf, wenn ein Objekt mittels expliziter Typenkonvertierung in eine Typ umgewandelt wird, welcher nicht zu seinen Ahnen gehört
Student student = new Student(“Dirk“,“Dörschlag“); Dozent dozent = (Dozent) student;
Beispiel :Beispiel :
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Differenzierte Fehlerbehandlung
• in try-Block können verschiedene Arten von Fehlern auftreten– differenzierte Behandlung sinnvoll
• Lösung: – mehrere catch-Anweisungen, eine für
jeden Fehlertyp– Unterscheidung anhand des Namens des
Fehlers (der Exception)
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Fang den Fehler und handle- Differenzierung nach Fehlertyp -
try{anweisung(en);
}catch( Fehlertyp_1 f1){
anweisung(en);}catch( Fehlertyp_2 f2){
anweisung(en);}
Syntax :Syntax : Anweisungen, bei denen ein Fehler auftreten kann.
Anweisungen, die ausgeführt werden,
sobald ein Fehlertyp_2 aufgetreten ist
Anweisungen, die ausgeführt werden,
sobald ein Fehlertyp_1 aufgetreten ist
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
public class Polygon {
public void punkt_einfuegen( int position, Punkt punkt){try{
eckpunkt[ position] = punkt;} catch( NullPointerException npe){
System.out.println(“Polygon.punkt_einfuegen()“+ “::Eckpunkte nicht angelegt!“);
}catch( Exception e){
System.out.println(“Polygon.punkt_einfuegen()“+ “::Ein Fehler wurde erkannt!“);
}}
}
Fang den Fehler und handle- try{ anweisung } catch ( fehler ) { warnung } -
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Mehrere Catch-Klauseln
• die in der Reihenfolge erste catch-Klausel, die passt, wird verwendet– dann ist try-catch beendet
• Beispiel:
try{eckpunkt[ position] = punkt;
} catch( Exception e){.....}catch( NullPointerException npe){....}; //Zweite catch-Klausel wird nie erreicht
• Daher: Zuerst die speziellere, dann die allgemeinere Exception
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Weiterleiten von Exceptions
• Bisher: Fehler in try{...} wurde in catch(..){...} abgefangen und behandelt
• Alternative: Weiterleiten des Fehlers in einer Methode m nach oben an die Methode, die m aufruft– dort muss Fehler mit try-catch behandelt werden oder
wiederum an die aufrufende Methode weitergeleitet werden– die Methode m muss dies durch throws-Klausel kenntlich
machen. Beispiel:public void leeres_Polygon( int anzahl_eckpunkte)
throws Exception{eckpunkt = new Punkt[ anzahl_eckpunkte];
}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Fehlermeldungen weiterleiten- Syntax -
modifier class Klassenname {...
modifier rueckgabetyp methodenname( parameter)throws Fehlertyp_1(, Fehlertyp_2, ...) {
anweisung(en);}...
}
Syntax :Syntax :
die Methode wird an der Stelle abgebrochen, an der der Fehler auftritt !
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Fehlermeldungen weiterleiten- Beispiel -
public class Polygon {private Punkt[] eckpunkt;
...
public void leeres_Polygon( int anzahl_eckpunkte)throws Exception{
eckpunkt = new Punkt[ anzahl_eckpunkte];}...
}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Übung im GIS-Labor
• Macht das folgende Programm mittels try {...} catch (Exception e) {...} absturzsicher und gebt bei einem Fehler eine Fehlermeldung aus (Tip: nutzt die Methode printStackTrace() von Exception)
class Ereignis1 { public static void main (String args[]) { int a; int b = 0;
a = 10/b;
System.out.println("Programmende wurde erreicht!"); }}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Schreiben in/Lesen aus Text-Dateien
Mein Programm
MesswerteMesswerte
ErgebnisseErgebnisse
PNR X Y Z
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Schreiben in Datei: Beispiel I
import java.io.*;
........
try{
FileWriter fr = new FileWriter("d:\\tmp\\log.txt");
fr.write("Dieser Text steht in der ersten Zeile der ");
fr.write("Datei log.txt.\n");
fr.write("Und dieser in der zweiten.");
fr.close();
}
catch(Exception e){}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Schreiben in Datei
• Öffnen der Datei: Erzeugen einer Instanz der Klasse "FileWriter"– Dateiname als Parameter des Konstruktors
• Scheiben: Aufruf der Methode write(...) für Instanz von FileWriter (Analog zu System.out.println)
• wenn fertig mit schreiben: Aufruf der Methode close() für Instanz von FileWriter
• alles muss in try{ ..} stehen (da fehleranfällig)• Package "java.io" muss importiert werden
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Schreiben in Datei: Beispiel II
import java.io.*;
........
try{
//der folgende Konstruktor ermöglicht das Anfügen von
// Text am Ende der Datei (falls diese vorhanden ist)
FileWriter fr = new FileWriter("d:\\tmp\\log.txt",true);
fr.write("....");
fr.close();
}
catch(Exception e){}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Gepuffertes Schreiben
• Datei zum schreiben öffnen:BufferedWriter bw = new BufferedWriter (new FileWriter(“Dateiname“));
• FileWriter ermöglicht das Schreiben von Dateiinhalten.• BufferedWriter puffert das Schreiben. Es wird nur noch in die Datei
geschrieben, wenn die Methode flush() oder close() aufgerufen wird. bessere Performance !
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Lesen von Dateien
• allgemein: Lesen von Streams– Stream: Abstraktion der Information, die von Gerät geliefert
bzw. an Gerät geschickt wird
– hier: nur Lesen aus (Text-)Dateien
• Unterschiede hinsichtlich der Menge der Zeichen, die in einem Schritt gelesen werden:– ein Buchstabe: FileReader
– eine Zeichenkette einer bestimmten Länge
– eine Zeile: BufferedReader
– eine Token (Zeichenkette, die von bestimmten Zeichen abgegrenzt werden): StreamTokenizer
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
• Datei zum lesen öffnen: FileReader fr = new FileReader(“Dateiname“);
• FileReader ermöglicht das zeichenweise Lesen von Dateiinhalten• unpraktisch für ASCII-Dateien mit Messwerten oder Texten• besser: Erzeugen eines BufferedReader aus FileReader
Zeichenweises Lesen aus Dateien
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Zeilenweises Lesen aus Dateien
• Datei öffnen: BufferedReader br = new BufferedReader(new
FileReader(“Dateiname“));• BufferedReader fasst die Zeichen aus dem
FileReader zu Zeichenketten zusammen • Der BufferedReader verfügt u.a. über die Methoden
– readLine(): auslesen der nächsten Zeile (bis zum nächsten Zeilenumbruch) in einen String
– close(): schließen der Datei• Weitere Methoden: JavaDoc
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Java und ASCII-Dateien- öffnen und (ein-)lesen -
Beispiel :Beispiel :import java.io.*;
.................................BufferedReader br;String line;int i = 0;try{
br = new BufferedReader(new FileReader("c:\\Koordinaten.txt")); while( (line = br.readLine()) != null){//für jede Zeile wird Konstruktor von von Punkt aufgerufenpunkt[i] = new Punkt( line); i = i+1;
}br.close();
}catch( FileNotFoundException fnfe){
System.out.println(“The file :‘“+ filename +“‘ does not exist“);}catch( IOException ioe){
ioe.printStackTrace();}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Lesen von Token aus Textdatei
Token DelimiterToken Delimiter
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Lesen von Token aus Textdatei
• Token: Teil eines Strings (Stream), der von Delimitern begrenzt wird
• Beispiel: – String: "abc de,f 66,z-2"– Delimiter: {" "} //Leerzeichen
• 3 Token: abc de,f 66,z-2
– Delimiter: {" ",","} //Leerzeichen und Komma• 5 Token: abc de f 66 z-2
• Ziel: Extraktion der Token aus String, die bestimmte Bedeutung haben (Parsen)– Abhängig von Menge der Delimiter
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Extraktion von Token: Klasse StreamTokenizer
• Standard-Delimiter: Leerzeichen, Zeilenende, Dateiende, ... (können ergänzt werden)
• Methoden von StreamTokenizer:– StreamTokenizer(Reader): Konstruktor
– int nextToken(): schaltet auf nächstes Token um
• Attribute eines Token:– int ttype: Typ des Token
• TT_EOF: Dateiende• TT_EOL: Zeilenende• TT_NUMBER : Zahl• TT_WORD : String
– double nval: Token als double
– String sval: Token als String
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Beispiel: Lesen von Token aus Textdatei
import java.io.*;
................
try{
FileReader fr = new FileReader("M:\\Java\\Beispiel.txt");
StreamTokenizer st = new StreamTokenizer(fr);
double d; String s;
while(st.nextToken() != StreamTokenizer.TT_EOF){
switch (st.ttype){
case StreamTokenizer.TT_NUMBER:
d = st.nval; break;
case StreamTokenizer.TT_WORD:
s = st.sval; break;
default: break;}
//hier kann mit d und s etwas gemacht werden
}
fr.close();
}catch(Exception e) { ;}
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Extraktion von Token: Klasse StringTokenizer
• ähnlich zu StreamTokenizer• arbeitet auf Strings (z.B. Zeile aus Textdatei)• Konstruktor (zu parsender String und Delimiter):
StringTokenizer st = new StringTokenizer(str,";");• Methoden:
– boolean hasMoreTokens()– String nextToken()
• importieren des Package java.util
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
StringTokenizer: Beispiel
try{
StringTokenizer st = new StringTokenizer("ABC;DEF;GH",";");
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
}
catch(Exception e) {e.printStackTrace();}
//Ausgabe:
//ABC
//DEF
//GH
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Exkurs: Konvertieren von Strings
• Konvertieren von Strings in double: Double.parseDouble. Beispiel:
String s = "4.6566";double d = Double.parseDouble(s);//nun steht in d die Zahl 4.6566
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
ENDE
FRAGEN ?
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Hausaufgabe
Lest aus der Datei "zahlen.txt" die 6 Zahlen ein und gebt die Summe dieser 6 Zahlen in eine Datei "ergebnis.txt" aus.
Datei "zahlen.txt":7.994.982.772.022.9943.98
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Fortgeschrittene Übungsaufgabe (1/2)
Ergänze die Klasse Polygon (Vorlesung 11) um eine Methode, die die Datei "polygon.txt" (nächste Folie) einliest und daraus ein Polygon mit 5 Punkten erzeugt. In einer Zeile dieser Datei steht die Punktnummer, die x-Koordinate und die y-Koordinate eines Punktes.
Teste die Funktionen in einer Klasse Test_Main.
IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05IKG Gröger, Dörschlag, Plümer, „Einführung in die Programmierung mit Java“ WS04/05
Fortgeschrittene Übungsaufgabe (2/2)
Datei polygon.txtDatei polygon.txt
1 2.0 3.02 4.0 3.03 8.0 9.04 7.0 10.05 1.0 6.0