erstellt 04.01.99; übersetzt 30.05.05; überarbeitet 12.12.05, 03.10.06; © Copyright 2005 - 2006 Deutsche Übersetzung Heinrich Gailer


Kapitel 20 Programmieraufgaben

Aufgabe 1

Verbessern Sie das Zahlenschloss-Programm, wie es auf der letzten Seite des Kapitels 20 vorgeschlagen wird:

Das Programm simuliert ein Kombinationsschloss. Die Zahlenkombination besteht aus drei in Variablen gespeicherten Integern. Der Anwender muss die drei Integer in der richtigen Reihenfolge eingeben. Aber, jede der eingegebenen Zahlen kann um drei nach oben oder unten von den richtigen Zahlen abweichen.

Zum Beispiel, wenn die Kombination 10-20-30 ist, wird das folgende funktionieren:

C:\daten\JavaNotes>java Zahlenschloss

Geben Sie die erste Zahl ein:
13
Geben Sie die zweite Zahl ein:
17
Geben Sie die dritte Zahl ein:
31
Das Schloss oeffnet sich.

Die if-Anweisungen werden für dieses Programm kompliziertere Boolesche Ausdrücke verwenden als das Programm des Kapitels 20. Falls Sie Ihr Gedächtnis auffrischen möchten, betrachten Sie noch einmal das Kapitel 14.

Verwenden Sie als Ausgangsbasis für diese Aufgabe das Programm aus Kapitel 20.

Zurück zum Inhaltsverzeichnis.


Aufgabe 2

In dem Programm des Kapitels 20 (und möglicherweise in Ihrer Implementation der Aufgabe 1) wird jede Zahl sobald sie eingegeben wird getestet. Schreiben Sie das Programm auf eine andere Weise: Das Programm fragt den Anwender nach den drei Zahlen und liest sie ein. Aber es überprüft die Zahlen erst nachdem alle drei eingelesen worden sind. Dann überprüft eine einzige if-Anweisung ob die richtige Kombination eingegeben wurde.

Schreiben Sie dieses Programm zuerst so, dass der Anwender jede Zahl korrekt eingeben muss. Dann schreiben Sie es so, dass jede eingegebene Zahl um drei nach oben oder unten von der korrekten Zahl abweichen darf. Die if-Anweisung der zweiten Version wird sehr kompliziert sein.

Zurück zum Inhaltsverzeichnis.


Aufgabe 3

Schreiben Sie ein Programm, das ein Ratespiel implementiert:

Das Programm wählt eine Zufallszahl zwischen 1 und 10 aus. Jetzt hat der Spieler drei Versuche. Sobald der Spieler die richtige Zahl eingibt, gibt das Programm eine Meldung über den Gewinn des Spiels aus und endet. Wenn der Spieler nach drei Versuchen die Zahl nicht erraten hat, gibt das Programm eine Meldung über den Misserfolg aus und endet.

Sie werden die Funktion Math.random() brauchen, die eine Zufallszahl vom Typ double zwischen 0.0 und < 1.0 erzeugt. Zum Beispiel:

double zufallszahl =  Math.random() ;   // ein Wert zwischen 0.0 und < 1.0

Sie werden weitere Methoden der Klasse Math zusammen mit etwas Arithmetik benötigen, um diesen Wert in eine Zufallszahl des gewünschten Bereichs zu konvertieren. Weitere Details finden Sie in Ihrer Java Dokumentation. Hier sind zwei Probeläufe des Programms:

C:\daten\JavaNotes>java Ratespiel

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
4
falsch
8
RICHTIG!
Sie haben das Spiel gewonnen.

C:\daten\JavaNotes>java Ratespiel

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
1
falsch
5
falsch
9
falsch
Die richtige Zahl war 7.
Sie haben das Spiel verloren.

Zurück zum Inhaltsverzeichnis.


Aufgabe 4

Schreiben Sie ein etwas komplizierteres Ratespiel. Jetzt wird das Programm "kalt" ausgeben, wenn die eingegebene Zahl um 3 oder noch weiter von der richtigen Zahl entfernt ist, es wird "warm" ausgeben, wenn sie um 2 entfernt ist und es wird "heiss" ausgeben, wenn die Zahl um 1 entfernt ist. Zum Beispiel:

C:\daten\JavaNotes>java Ratespiel

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
1
kalt
3
warm
5
RICHTIG!
Sie haben das Spiel gewonnen.

C:\daten\JavaNotes>java Ratespiel

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
4
heiss
7
warm
5
RICHTIG!
Sie haben das Spiel gewonnen.

C:\daten\JavaNotes>java Ratespiel

Zurück zum Inhaltsverzeichnis.


Aufgabe 5

Schreiben Sie ein noch komplizierteres Ratespiel. In dieser Version besteht das Spiel aus 10 "Runden", wobei jede Runde aus einem Spiel wie bei Aufgabe 4 besteht. Nach 10 Runden gibt das Programm aus wie viele Runden gewonnen und verloren wurden.

Hier ist ein Probelauf:

C:\daten\JavaNotes>java Ratespiel

Runde 1:

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
4
heiss
7
warm
5
RICHTIG!
Sie haben 1 von 1 Runden gewonnen.

Runde 2:

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
10
kalt
5
kalt
3
falsch
Die richtige Zahl war 1
Sie haben 1 von 2 Runden gewonnen.

. . .

Ich denke an eine Zahl zwischen 1 und 10.
Sie haben drei Versuche, um die Zahl zu erraten.
Geben Sie eine Zahl ein:
1
kalt
6
warm
7
RICHTIG!
Sie haben 7 von 10 Runden gewonnen.

Ihre Bewertung: Amateur

C:\data\JavaNotes>java Ratespiel

Zurück zum Inhaltsverzeichnis.


Ende der Aufgaben.