Ziel dieses Szenarios ist es, einen roten Roboter zu erzeugen, der auf Feld (1; 1) startet und mit einer Geschwindigkeit von 4 zum Zielfeld (3; 4) fährt.
Aufgabe
Erstellen Sie den Quellcode der Klasse Szenario.
Lösung
Lösung
Informieren Sie sich mit Hilfe des folgenden Beispiels über die Zählerschleife. Ersetzen Sie anschließend alle im Quellcode vorhandenen Wiederholungen durch eine Zählerschleife.
Lösung
Lösung
Erstellen Sie in der Klasse RoboterErweitert die Methode gehVorwaerts(pFelder: int) und nutzen Sie diese im aktuellen Szenario.
Lösung
Lösung
Beispiel: Zählerschleife
Struktogramm
Java-Code
Ablauf
Erläuterungen
Zählervariable deklarieren und initialisieren
Die Variable wird im Schleifenkopf deklariert und ist damit nur innerhalb der Schleife bekannt (lokale Variable).
Die Deklaration und Initialisierung einer Variable können auch in einer einzigen Anweisung zusammengefasst werden:
Die Deklaration und Initialisierung wird genau einmal vor dem ersten Durchlauf der Schleife ausgeführt.
Bedingung (boolescher Ausdruck) prüfen
Vor jeder Wiederholung der Schleife wird geprüft, ob der boolesche Ausdruck wahr (true) oder falsch (false) ist.
Ergibt die Prüfung true, werden die Anweisungen innerhalb des Schleifenkörpers einmal ausgeführt.
Ergibt die Prüfung false, wird die Schleife verlassen.
Wert der Zählervariable um 1 erhöhen
Nach jeder Wiederholung der Schleife wird der Wert der Zählervariable um 1 erhöht:
Anschließend wird die Bedingung erneut geprüft.
Aufgabe 14-2: Würfeln
Entwickeln Sie auf Grundlage des vorgegebenen Klassendiagramms (vgl. Abb 14-12) ein Programm, das den Benutzer zunächst fragt, wie oft mit einem Würfel gewürfelt werden soll. Anschließend soll es die Würfe simulieren und die gewürfelten Augenzahlen auf der Konsole ausgeben.
Aufgabe
Erstellen Sie den Quellcode der Klasse Wuerfelsimulation. Die übrigen Klassen werden Ihnen zur Verfügung gestellt.
Die Methode erstelleErgebnisliste(): String der Klasse Wuerfelsimulation soll einen String zurückgeben, der alle gewürfelten Werte enthält. Die einzelnen Werte sollen dabei jeweils durch einen Zeilenumbruch ("\n") voneinander getrennt werden.
Erstellen Sie auf Grundlage des vorgegebenen Klassendiagramms (vgl. Abb 14-15) die Fachklasse Einmaleins, mit deren Hilfe je nach Bedarf ein beliebiges kleines Einmaleins erstellt werden kann.
Testen Sie abschließend die Klasse Einmaleins.
Hinweise zum Lösungsweg
Die Methode erstelleEinmaleins() der Klasse Einmaleins soll einen String zurückgeben, der das gesamte Einmaleins enthält. Diesen String setzen wir nun Schritt für Schritt zusammen.
Jedes Einmaleins setzt sich aus zehn Zeilen zusammen. Aus welchen Bestandteilen ist jede dieser Zeilen allgemein aufgebaut? Welche dieser Bestandteile ändern sich von Zeile zu Zeile bzw. je nach gewähltem Einmaleins?
Lösung
Lösung
Jede Zeile setzt sich aus dem 1. Faktor, dem String "*", dem 2. Faktor, dem String "=" und dem Produkt zusammen.
Der 1. Faktor und das Produkt sind variabel und ändern sich von Zeile zu Zeile.
Verwenden Sie für die veränderlichen Bestandteile einer Zeile, jeweils eine geeignete Variable und verknüpfen Sie diese mit den unveränderlichen Textbausteinen ("*" bzw. "=") so zu einem String, dass sich die gewünschte Zeile ergibt. Den Zeilenumbruch erreichen Sie, indem Sie am Ende einer jeden Zeile den String "\n" anhängen. Weisen Sie die fertige Zeile einer lokalen Variable vom Typ String zu.
Lösung
Lösung
Sorgen Sie dafür, dass Schritt II) für jede der zehn Zeilen wiederholt wird. Auf dieses Weise wird das Einmaleins Schritt für Schritt um die gerade neu zusammengesetzte Zeile erweitert bis alle zehn Zeilen vorhanden sind. Achten Sie darauf, dass die gerade neu zusammengesetzte Zeile die bereits vorhandenen Zeilen des Einmaleins nicht ersetzt! Die neue Zeile soll an die bisherigen Zeilen angehängt werden!
Lösung
Lösung
Am Ende der Methode geben Sie die lokale Variable, die das fertige Einmaleins enthält, mit Hilfe der return-Anweisung an das aufrufende Objekt zurück.
Lösung
Lösung
Testen Sie nun Ihre Klasse Einmaleins. Erzeugen Sie dazu in der main()-Methode der Klasse Test ein Objekt der Klasse Einmaleins (z. B. 2er-Einmaleins). Rufen Sie dann die Methode erstelleEinmaleins() des Objekts auf und geben Sie den Rückgabewert auf der Konsole aus. Nach dem Programmstart sollte auf der Konsole nun das komplette Einmaleins erscheinen.
Lösung
Lösung
Aufgabe 14-4: Kapitalanlage mit fester Laufzeit
Erstellen Sie eine Java-Anwendung, die nach Eingabe von Anfangskapital, Zinssatz und festgelegter Laufzeit die Kapitalentwicklung veranschaulicht. Die Erfassung und Ausgabe der Daten soll mit Hilfe der Konsole erfolgen.
Hinweise
Die Zeichenfolge "\t" fügt an der entsprechenden Stelle einen Tabulator ein.
Verzichten Sie zunächst auf die Formatierung der Währungsbeträge. Haben Sie Ihr Programm erfolgreich getestet, können Sie diese mit Hilfe des folgenden Abschnitts „Formatierung von Währungsbeträgen“ nachholen.
Formatierung von Währungsbeträgen
Eine Zahl lässt sich mit Hilfe der Klasse DecimalFormat formatieren. Dazu erzeugt man ein Objekt der Klasse DecimalFormat und teilt ihr dabei mit, nach welchem Muster dieses Objekt Zahlen formatieren soll.
Das folgende Beispiel zeigt die Methode formatWaehrung(pZahl: double): String, die einen übergebenen double-Wert als Währungsbetrag formatiert und in Form eines Strings zurückgibt.
Um diese Methode auch in zukünftigen Projekten verwenden zu können, wurde sie mit Hilfe des Schlüsselworts static als Klassenmethode deklariert. Auf diese Weise kann sie zum Beispiel in unsere in Aufgabe 13-1 erstellte Utility-Klasse Werkzeug integriert werden.
Falls Sie das Kapitel 13.2 Klassenmethoden nicht bearbeitet haben, entfernen Sie aus dem Methodenkopf das Schlüsselwort static. Auf diese Weise erhalten Sie eine gewöhnliche Objektmethode.
Aufgabe 14-5: Abschreibung von Sachanlagen (lineare Methode)
Erstellen Sie eine Java-Anwendung, die nach Eingabe der Anlagennummer, der Anschaffungskosten und der Nutzungsdauer einer Sachanlage deren Abschreibungsplan erstellt (lineare Methode).