Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger
Grundkurs Programmieren in Java
Band 1: Der Einstieg in Programmierung und Objektorientierung (4. Auflage, Carl Hanser Verlag, 2007)
Band 2: Einführung in die Programmierung kommerzieller Systeme (2. Auflage, Carl Hanser Verlag, 2006)

Lösungsvorschläge zu den Übungsaufgaben aus Band 1

Hier finden Sie die Lösungsvorschläge zu den Übungsaufgaben aus dem Buch. Suchen Sie einfach anhand des Inhaltsverzeichnisses die Stelle, an der sich die Aufgabe im Buch befindet, und navigieren Sie über den Link in den entsprechenden Teil des Dokuments.

Alle Lösungen zum Download (zip)

Inhaltsverzeichnis

    1. Einleitung
      1. Java - mehr als nur kalter Kaffee?
      2. Java für Anfänger - das Konzept dieses Buches
      3. Weitere Infos und Kontakt zu den Autoren
      4. Verwendete Schreibweisen
    2. Einige Grundbegriffe aus der Welt des Programmierens
      1. Computer, Software, Informatik und das Internet
      2. Was heißt Programmieren?
    3. Aller Anfang ist schwer
      1. Mein erstes Programm
      2. Formeln, Ausdrücke und Anweisungen
      3. Zahlenbeispiele
      4. Verwendung von Variablen
      5. Auf den Schirm!
      6. Das Programmgerüst
      7. Eingeben, übersetzen und ausführen
      8. Übungsaufgaben
    4. Grundlagen der Programmierung in Java
      1. Grundelemente eines Java-Programms
        1. Kommentare
        2. Bezeichner und Namen
        3. Literale
        4. Reservierte Wörter, Schlüsselwörter
        5. Trennzeichen
        6. Interpunktionszeichen
        7. Operatorsymbole
        8. import-Anweisungen
        9. Zusammenfassung
        10. Übungsaufgaben
      2. Erste Schritte in Java
        1. Grundstruktur eines Java-Programms
        2. Ausgaben auf der Konsole
        3. Eingaben von der Konsole
        4. Schöner Programmieren in Java
        5. Zusammenfassung
        6. Übungsaufgaben
      3. Einfache Datentypen
        1. Ganzzahlige Datentypen
        2. Gleitkommatypen
        3. Der Datentyp char für Zeichen
        4. Zeichenketten
        5. Der Datentyp boolean für Wahrheitswerte
        6. Implizite und explizite Typumwandlungen
        7. Zusammenfassung
        8. Übungsaufgaben
      4. Der Umgang mit einfachen Datentypen
        1. Variablen
        2. Operatoren und Ausdrücke
        3. Allgemeine Ausdrücke
        4. Ein- und Ausgabe
        5. Zusammenfassung
        6. Übungsaufgaben
      5. Anweisungen und Ablaufsteuerung
        1. Anweisungen
        2. Blöcke und ihre Struktur
        3. Entscheidungsanweisung
        4. Wiederholungsanweisungen, Schleifen
        5. Sprungbefehle und markierte Anweisungen
        6. Zusammenfassung
        7. Übungsaufgaben
    5. Praxisbeispiele
      1. Worum geht es in diesem Kapitel?
      2. Teilbarkeit zum ersten
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Algorithmische Beschreibung
        4. Programmierung in Java
        5. Vorsicht Falle
        6. Übungsaufgaben
      3. Teilbarkeit zum zweiten
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Algorithmische Beschreibung
        4. Programmierung in Java
        5. Vorsicht Falle
        6. Übungsaufgaben
      4. Dreierlei
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Algorithmische Beschreibung
        4. Programmierung in Java
        5. Vorsicht Falle
        6. Übungsaufgaben
    6. Referenzdatentypen
      1. Felder
        1. Was sind Felder ?
        2. Deklaration, Erzeugung und Initialisierung von Feldern
        3. Felder unbekannter Länge
        4. Referenzen
        5. Ein besserer Terminkalender
        6. Mehrdimensionale Felder
        7. Mehrdimensionale Felder unterschiedlicher Länge
        8. Vorsicht Falle: Kopieren von mehrdimensionalen Feldern
        9. Vereinfachte for-Schleifen-Notation
        10. Zusammenfassung
        11. Übungsaufgaben
      2. Klassen
        1. Was sind Klassen?
        2. Deklaration und Instantiierung von Klassen
        3. Komponentenzugriff bei Objekten
        4. Ein erstes Adressbuch
        5. Klassen als Referenzdatentyp
        6. Felder von Klassen
        7. Vorsicht Falle: Kopieren von geschachtelten Referenzdatentypen
        8. Auslagern von Klassen
        9. Zusammenfassung
        10. Übungsaufgaben
    7. Unterprogramme, Methoden
      1. Methoden
        1. Was sind Methoden?
        2. Deklaration von Methoden
        3. Parameterübergabe und -rückgabe
        4. Aufruf von Methoden
        5. Überladen von Methoden
        6. Vorsicht Falle!
        7. Sichtbarkeit und Verdecken von Variablen
        8. Zusammenfassung
        9. Übungsaufgaben
      2. Rekursiv definierte Methoden
        1. Motivation
        2. Das Achtdamenproblem
        1. Aufgabenstellung
        2. Lösungsidee
        3. Erste Vorarbeiten: Die Methoden ausgabe und bedroht
        4. Die Rekursion
        5. Die Lösung
        3. Zusammenfassung
        4. Ubungsaufgaben
      3. Die Methode main
        1. Kommandozeilenparameter
        2. Anwendung der vereinfachten for-Schleifen-Notation
        3. Zusammenfassung
        4. Übungsaufgaben
      4. Methoden aus anderen Klassen aufrufen
        1. Klassenmethoden
        2. Die Methoden der Klasse java.lang.Math
        3. Statischer Import
      5. Methoden von Objekten aufrufen
        1. Instanzmethoden
        2. Die Methoden der Klasse java.lang.String
      6. Übungsaufgaben
    8. Praxisbeispiele
      1. Mastermind zum ersten
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Unterteilen einer Zahl
        4. Gültigkeit einer Zahl
        5. Finden einer gültigen Zahl
        6. Anzahl der Treffer
        7. Ein- und Ausgabe
        8. Zum Hauptprogramm
        9. Das komplette Programm im Überblick
      2. Mastermind zum zweiten
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Verwendete Datenstrukturen
        4. Vergleich der Versuche
        5. Zum Hauptprogramm
        6. Das komplette Programm im Überblick
      3. Black Jack
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Mischen eines Kartenspiels
        4. Die Pflichten des Gebers
        5. Zum Hauptprogramm
        6. Das komplette Programm im Überblick
        7. Übungsaufgaben
    9. Die objektorientierte Philosophie
      1. Die Welt, in der wir leben
      2. Programmierparadigmen - Objektorientierung im Vergleich
      3. Die vier Grundpfeiler objektorientierter Programmierung
        1. Generalisierung
        2. Vererbung
        3. Kapselung
        4. Polymorphismus
        5. Weitere wichtige Grundbegriffe
      4. Modellbildung - von der realen Welt in den Computer
      5. Zusammenfassung
      6. Übungsaufgaben
    10. Der grundlegende Umgang mit Klassen
      1. Vom Referenzdatentyp zur Objektorientierung
      2. Instanzmethoden
        1. Zugriffsrechte
        2. Was sind Instanzmethoden?
        3. Instanzmethoden zur Validierung von Eingaben
        4. Instanzmethoden als erweiterte Funktionalität
      3. Statische Komponenten einer Klasse
        1. Klassenvariablen und -methoden
        2. Konstanten
      4. Instantiierung und Initialisierung
        1. Konstruktoren
        2. Überladen von Konstruktoren
        3. Der statische Initialisierer
        >4. Der Mechanismus der Objekterzeugung
      5. Zusammenfassung
      6. Übungsaufgaben
    11. Vererbung und Polymorphismus
      1. Wozu braucht man Vererbung?
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Ein erster Ansatz
        4. Eine Klasse für sich
        5. Stärken der Vererbung
        6. Übungsaufgaben
      2. Die super-Referenz
      3. Überschreiben von Methoden und Variablen
      4. Die Klasse java.lang.Object
      5. Übungsaufgaben
      6. Abstrakte Klassen und Interfaces
      7. Übungsaufgaben
      8. Weiteres zum Thema Objektorientierung
        1. Erstellen von Paketen
        2. Zugriffsrechte
        3. Innere Klassen
        4. Anonyme Klassen
      9. Zusammenfassung
      10. Übungsaufgaben
    12. Praxisbeispiele
      1. Streng geheim
        1. Aufgabenstellung
        2. Analyse des Problems
        3. Verschlüsselung durch Aufblähen
        4. XOR-Verschlüsselung
        5. Ein einfacher Test
        6. Übungsaufgaben
      2. Mastermind zum dritten
        1. Aufgabenstellung
        2. Die Klassen GameModel und GameEngine
        3. Wir bauen ein Modell
        4. Programmstart
        5. Fazit
        6. Übungsaufgaben
      3. Game of Life
        1. Aufgabenstellung
        2. Designphase
        3. Die Klasse Zelle
        4. Die Klasse Petrischale
        5. Die Klasse Life
        6. Fazit
        7. Übungsaufgaben
    13. Exceptions und Errors
      1. Eine Einführung in Exceptions
      2. Exceptions für Fortgeschrittene
        1. Definieren eigener Exceptions
        2. Übungsaufgaben
        3. Vererbung und Exceptions
        4. Vorsicht, Falle!
        5. Der finally-Block
        6. Die Klassen Throwable und Error
        7. Zusammenfassung
        8. Übungsaufgaben
      3. Assertions
        1. Zusicherungen im Programmcode
        2. Compilieren des Programmcodes
        3. Ausführen des Programmcodes
        4. Zusammenfassung
    14. Fortgeschrittene objektorientierte Programmierung
      1. Aufzählungstypen
        1. Deklaration eines Aufzählungstyps
        2. Instanzmethoden der enum-Objekte
        3. Selbstdefinierte Instanzmethoden für enum-Objekte
        4. Übungsaufgaben
      2. Generische Datentypen
        1. Generizität in alten Java-Versionen
        2. Generizität ab Java 5.0
        3. Einschränkungen der Typ-Parameter
        4. Wildcards
        5. Bounded Wildcards
        6. Generische Methoden
        7. Ausblick auf Band 2
        8. Übungsaufgaben
    15. Zu guter Letzt
      1. Collections
      2. Sortieren von Feldern
      3. Grafische Oberflächen in Java


3.8: Übungsaufgaben
Uebung.java Quelltext zu Aufgabe 3.2
lsg3_3.html Aufgabe 3.3

4.1.10: Übungsaufgaben
Berechnung.java Programm aus Aufgabe 4.3
   Version A Programm aus Aufgabe 4.3 mit Fehler
   Version B Programm aus Aufgabe 4.3 ohne Fehler
lsg4_1.html Aufgabe 4.1
lsg4_2.html Aufgabe 4.2
lsg4_3.html Aufgabe 4.3

4.2.6: Übungsaufgaben
DreiMalMeinName.java zu Aufgabe 4.4
Strukturuebung.java Aufgabe 4.5
   Version A Quelltext mit Fehlern
   Version B Quelltext nach Korrektur
lsg4_5.html Aufgabe 4.5

4.3.8: Übungsaufgaben
Aufg4_9.java Beispiel zu Aufgabe 4.9
lsg4_6.html Aufgabe 4.6
lsg4_7.html Aufgabe 4.7
lsg4_8.html Aufgabe 4.8

4.4.6: Übungsaufgaben
Aufgabe4_13.java Quelltext zu Aufgabe 4.13
NameUndAlter.java Quelltext zu Aufgabe Aufgabe 4.11
   Version A
   Version B
Plus.java Quelltext aus Aufgabe 4.12
Raviolita.java Quelltext aus Aufgabe 4.12
RundFehl.java Quelltext zu Aufgabe Aufgabe 4.14
lsg4_10.html Aufgabe 4.10
lsg4_12.html Aufgabe 4.12
lsg4_13.html Aufgabe 4.13
lsg4_15.html Beispiel-Programmausgabe zu Aufgabe 4.15

4.5.7: Übungsaufgaben
Aufgabe4_16.java Quelltext zu Aufgabe 4.16
Aufgabe4_19.java Quelltext zu Aufgabe 4.19
BreakAndContinue.java Quelltext zu Aufgabe 4.18
Dreieck.java Quelltext zu Aufgabe 4.24
Falsch.java Quelltext zu Aufgabe 4.22
ForSchrott.java Quelltext zu Aufgabe 4.21
Quersumme.java Quelltext zu Aufgabe 4.23
Schachbrett.java Quelltext zu Aufgabe 4.20
lsg4_16.html Aufgabe 4.16
lsg4_17.html Aufgabe 4.17
lsg4_18.html Aufgabe 4.18
lsg4_21.html Aufgabe 4.21
lsg4_22.html Aufgabe 4.22
lsg4_23.html Aufgabe 4.23

5.2.6: Übungsaufgaben
QuersummenTeilbarkeit.java Quelltext zu Aufgabe 5.1
SekundenZerlegung.java
SekundenZerlegung1.java Quelltext zu Aufgabe 5.2, Variante 1
SekundenZerlegung2.java Quelltext zu Aufgabe 5.2, Variante 2

5.3.6: Übungsaufgaben
Quersumme2.java Quelltext zu Aufgabe 5.4
QuersummenTeilbarkeit2.java Quelltext zu Aufgabe 5.3
Sternzeit.java Quelltext zu Aufgabe 5.5

5.4.6: Übungsaufgaben
Befreundet.java Aufgabe 5.13
Binaer.java Aufgabe 5.11
Ostern.java Afugabe 5.15
Tannenbaum.java Aufgabe 5.12
Wochentag.java Aufgabe 5.14
Zahlenraten.java Aufgabe 5.10
Zahlenreihe.java Aufgabe 5.8
Zerlegung.java Aufgabe 5.7
Zinseszins.java Aufgabe 5.9
lsg5_6.html Aufgabe 5.6

6.1.11: Übungsaufgaben
MagicSquare.java Quelltext zu Aufgabe 6.5
Sortierung.java Quelltext zu Aufgabe 6.4
TerminKalender.java Quelltext zu Aufgabe 6.3
lsg6_1.html Aufgabe 6.1
lsg6_2.html Aufgabe 6.2

6.2.10: Übungsaufgaben
AdressBuch_v3b.java Quelltext (Teil 1/2) zu Aufgabe 6.6
AdressBuch_v4b.java Quelltext (Teil 1/2) zu Aufgabe 6.7
Adresse.java Quelltext (Teil 2/2) zu Aufgabe 6.6, Teil 2/2
Adresse_v2.java Quelltext (Teil 2/2) zu Aufgabe 6.7
Referenzen.java Quelltext aus Aufgabe 6.8
lsg6_8.html Aufgabe 6.8

7.1.9: Übungsaufgaben
Swap.java Quelltext zu Aufgabe 7.2
Tangens.java Quelltext zu Aufgabe 7.1
lsg7_3.html Aufgabe 7.3

7.2.4: Ubungsaufgaben
AchtdamenAlle.java Quelltext zu Aufgabe 7.4
lsg7_4.html Aufgabe 7.4

7.3.4: Übungsaufgaben
GrussWortErweitert.java Quelltext zu Aufgabe 7.5
KommandozeilenTest.java Quelltext zu Aufgabe 7.6
MenueStarter.java Quelltext zu Aufgabe 7.8
lsg7_7.html Aufgabe 7.7 (Überladung)

7.6: Übungsaufgaben
Anordnen.java Quelltext zu Aufgabe 7.12
Echolot.java Quelltext zu Aufgabe 7.13
lsg7_10.html Aufgabe 7.10
lsg7_11.html Aufgabe 7.11
lsg7_9.html Aufgabe 7.9

8.3.7: Übungsaufgaben
BlackjackMitGeld.java Quelltext zu Aufgabe 8.1

9.6: Übungsaufgaben
lsg9_1.html Aufgabe 9.1
lsg9_2.html Aufgabe 9.2
lsg9_3.html Aufgabe 9.3

10.6: Übungsaufgaben
AchJa.java Quelltext zu Aufgabe 10.11 (alle Klassen in einer Datei)
Hund.java Quelltext zu Aufgabe 10.5 (alle Klassen in einer Datei)
KarlsruherStudent.java Quelltext zu Aufgabe 10.3 (benötigt Student.java)
Patient.java Quelltext zu Aufgabe 10.12
ReifenFahrzeugTest.java Quelltext zu Aufgaben 10.13 + 10.14 (alle Klassen in einer Datei)
Student.java
   Version A Quelltext zu Aufgabe 10.1
   Version B Quelltext zu Aufgabe 10.2
TennisSpieler.java Quelltext zu Aufgabe 10.8
TestMensch.java Quelltext zu Aufgabe 10.9 (alle Klassen in einer Datei)
TestStrecke.java Quelltext zu Aufgabe 10.10 (alle Klassen in einer Datei)
TestZwei.java Quelltext zu Aufgabe 10.6
TesteTrinkGlas.java Quelltext zu Aufgabe 10.16 (alle Klassen in einer Datei)
lsg10_1.html Aufgabe 10.1
lsg10_11.html Aufgabe 10.11
lsg10_12.html Aufgabe 10.12
lsg10_15.html Aufgabe 10.15
lsg10_2.html Aufgabe 10.2
lsg10_4.html Aufgabe 10.4
lsg10_5.html Aufgabe 10.5
lsg10_6.html Aufgabe 10.6
lsg10_7.html Aufgabe 10.7
lsg10_8.html Aufgabe 10.8

11.1.6: Übungsaufgaben
DM.java Quelltext zu Aufgabe 11.1 (Teil 2/5)
Euro.java Quelltext zu Aufgabe 11.1 (Teil 4/5)
Franc.java Quelltext zu Aufgabe 11.1 (Teil 3/5)
Lire.java Quelltext zu Aufgabe 11.1 (Teil 1/5)
Waehrung.java Quelltext zu Aufgabe 11.1 (Teil 5/5)
WaehrungsKalkulator.java Quelltext zu Aufgabe 11.2 (braucht Dateien von Aufgabe 11.1)

11.5: Übungsaufgaben
Euro.java Quelltext zu Aufgabe 11.3 (Teil 1/3)
InstanceOfTest.java Quelltext zu Aufgabe 11.4
Lire.java Quelltext zu Aufgabe 11.3 (Teil 3/3)
Waehrung.java Quelltext zu Aufgabe 11.3 (Teil 2/3)
WrapperClassTest.java Quelltext zu Aufgabe 11.5
lsg11_4.html Aufgabe 11.4
lsg11_5.html Aufgabe 11.5

11.7: Übungsaufgaben
Funktionsplotter.java Quelltext zu Aufgabe 11.8 (Teil 1/2)
Funktionsplotter2.java Quelltext zu Aufgabe 11.8 (Teil 2/2)
KreisPlot.java Quelltext zu Aufgabe 11.7
lsg11_6.html Aufgabe 11.6
lsg11_7.html Aufgabe 11.7
lsg11_8.html Aufgabe 11.8

11.10: Übungsaufgaben
ABCD.java Quelltext zu Aufgabe 11.16
AutoTest.java Quelltext zu Aufgabe 11.15 a)
Bildschirm.java Quelltext zu Aufgabe 11.12 + 11.13
DM.java
DSpiel.java Quelltext zu Aufgabe 11.13
DameFigur.java Quelltext zu Aufgabe 11.12 + 11.13
ElchTest.java Quelltext zu Aufgabe 11.15 b)
Euro.java
Franc.java
GelochtePlatte.java Quelltext zu Aufgabe 11.11 (Teil 2/3)
Lire.java
MetallPlatte.java Quelltext zu Aufgabe 11.11 (Teil 1/3)
Point.java Quelltext zu Aufgabe 11.17 + 11.18
RunStrecke.java Quelltext zu Aufgabe 11.18
Sandwich.java Quelltext zu Aufgabe 11.14 (alle Klassen in einer Datei)
SpielFigur.java Quelltext zu Aufgabe 11.12 + 11.13
Strecke.java Quelltext zu Aufgabe 11.17 + 11.18
TestABC.java Quelltext zu Aufgabe 11.10 a)
TestABCmod.java Quelltext zu Aufgabe 11.10 c)
TestPlatte.java Quelltext zu Aufgabe 11.11 (Teil 3/3)
Waehrung.java
WaehrungsKalkulator.java
lsg11_10.html Aufgabe 11.10
lsg11_11.html Aufgabe 11.11
lsg11_14.html Aufgabe 11.14
lsg11_15.html Aufgabe 11.15
lsg11_16.html Aufgabe 11.16
lsg11_9.html Aufgabe 11.9

12.1.6: Übungsaufgaben
CodingDemo2.java Quelltext zu Afugabe 12.1 (Teil 1/5)
Encoder.java Quelltext zu Aufgabe 12.1 (Teil 2/5)
Inflater.java Quelltext zu Aufgabe 12.1 (Teil 3/5)
XorEncoder.java Quelltext zu Aufgabe 12.1 (Teil 4/5)
XorInflater.java Quelltext zu Aufgabe 12.1 (Teil 5/5)

12.2.6: Übungsaufgaben
MasterGame.java Quelltext zu Aufgabe 12.2
lsg12_2.html Aufgabe 12.2

12.3.7: Übungsaufgaben
AchtdamenEngine.java Quelltext zu Aufgabe 12.3 (Teil 1/2)
AchtdamenGui.java Quelltext zu Aufgabe 12.3 (Teil 2/2)
SpielDesLebens.java Quelltext zu Aufgabe 12.4
SpielDesLebensApplet.html Aufgabe 12.5 als Java-Applet (Demo, keine Aufgabe aus dem Buch)
SpielDesLebensMitGui.java Quelltext zu Aufgabe 12.5
lsg12_3.html Aufgabe 12.3
lsg12_5.html Aufgabe 12.5

13.1.2: Übungsaufgaben
lsg13_1.html Aufgabe 13.1
problem.java Quelltext zu Aufgabe 13.1

13.1.6: Übungsaufgaben
Exueb1.java Quelltext zu Aufgabe 13.2 (Teil 1/7)
Exueb2.java Quelltext zu Aufgabe 13.2 (Teil 2/7)
Exueb3.java Quelltext zu Aufgabe 13.2 (Teil 3/7)
Exueb4.java Quelltext zu Aufgabe 13.2 (Teil 4/7)
Exueb5.java Quelltext zu Aufgabe 13.2 (Teil 5/7)
Exueb6.java Quelltext zu Aufgabe 13.2 (Teil 6/7)
Exueb7.java Quelltext zu Aufgabe 13.2 (Teil 7/7)
lsg13_2.html Aufgabe 13.2

13.2.2: Übungsaufgaben
Division.java Quelltext zu Aufgabe 13.6
Eingabe.java Quelltext zu Aufgabe 13.3
Eingabe2.java Quelltext zu Aufgabe 13.4
InputExceptionTest.java Quelltext zu Aufgabe 13.5
lsg13_5.html Aufgabe 13.5

13.2.8: Übungsaufgaben
ExceptionTest.java Quelltext zu Aufgabe 13.8
Exueb8.java Quelltext zu Aufgabe 13.7
lsg13_7.html Aufgabe 13.7
lsg13_8.html Aufgabe 13.8

14.1.4: Übungsaufgaben
EsWarEinmal.java Vorgegebener Quelltext zu Aufgabe 14.3
EsWarEinmalLoesung.java Quelltext zu Aufgabe 14.3
Fach.java Quelltext zu Aufgabe 14.1 und 14.2
StudentenTest.java Vorgegebener Quelltext zu Aufgabe 14.1

14.2.8: Übungsaufgaben
Konzert.java Quelltext zu Aufgabe 14.7
RateMal.java Vorgegebener Quelltext zu Aufgabe 14.6
RateMalB.java Quelltext zu Aufgabe 14.6 b)
RateMal_1_4.java Vorgegebener Quelltext zu Aufgabe 14.6 c)
TierKaefig.java Vorgegebener Quelltext zu Aufgabe 14.4
TierKaefigTest.java Vorgegebener Test-Quelltext zu Aufgabe 14.4
Tierleben.java Vorgegebener Quelltext zu Aufgabe 14.5
lsg14_7.html Aufgabe 14.7

  Letzte Bearbeitung: 17.08.2007 (R. Küstermann)