Sequenz
In der folgenden Übersicht ist eine Methode,
die einen Roboter
namens karol eine Reihe aus drei Ziegeln
legen lässt, auf drei verschiedene
Weisen dargestellt. Dabei steht links die Methode in der aus der 7.
Klasse bekannten Form für das Werkzeug Karol,
rechts ist die
Umsetzung in Javasyntax für JavaKarol
zu
sehen, verfasst also in der Programmiersprache JAVA, die Sie mit diesem
Material etwas näher kennenlernen sollen. In der Mitte
ist eine programmiersprachenunabhängige Darstellung in
graphischer
Form, genannt Struktogramm,
angegeben:
Anweisung
dreierreihe()
Hinlegen()
Schritt()
Hinlegen()
Schritt()
Hinlegen()
Schritt()
*Anweisung
|
 |
public
void dreierreihe() {
karol.hinlegen();
karol.schritt();
karol.hinlegen();
karol.schritt();
karol.hinlegen();
karol.schritt();
}
|
Wenn Sie die Methode von Robot Karol (7. Jgst., linke
Abbildung) und die Methode von JavaKarol vergleichen, fällt
sofort
auf,
dass die Struktur beider Methoden identisch ist.
- Der Methodenkopf
Anweisung dreierreihe()
wird einfach durch die Ihnen
schon bekannte Deklaration eines Methodenkopfes in Java,
nämlich public void dreierreihe()
ersetzt.
- Der Festlegung des Methodenrumpfes, also dem Teil der
Methode, in dem die eigentlich Anweisungen stehen, erfolgt nicht mehr
durch die den Methodenkopf und das Schlüsselwort
*Anweisung ,
sondern durch geschweifte Klammern.
- Robot Karol und JavaKarol kennen genau die gleichen
Methoden, nämlich
schritt() , linksDrehen() , rechtsDrehen() , hinlegen() , aufheben()
usw. Um JavaKarol aber eine Botschaft zu schicken, muss im Gegensatz
zu Robot Karol beim Aufruf der gewünschten Methode die
vollständige Punktschreibweise unter Angabe des Objekts
angegeben
werden.
Warum ist das so?
Beim Erzeugen eines Objektes der Klasse ROBOTERSTEUERUNG werden zwei
Objekte erzeugt, nämlich eines der Klasse WELT und eines der
Klasse
KAROL. Das System muss nun wissen, welches Objekt die
gewünschte
Methode ausführen soll. Dies erfordert dementsprechend die
Angabe
des Objektnamen. Deutlicher wird das noch, wenn man sich vorstellt,
dass es mehrere Roboter in der Welt gibt bzw. wenn die Klassen WELT und
KAROL Methoden mit gleichem Namen hätten.
Das eben Gesagte trifft auch auf die anderen Bausteine
der
Algorithmik, die Sie im Folgenden noch bearbeiten werden zu.
Die algorithmische Denkweise, also das Denken in Abläufen,
haben
Sie bereits in der 7. Jgst. grundlegend gelernt. Letztendlich passiert
im Folgenden nicht mehr, als dass Sie lernen, wie man die Bausteine in
der Programmiersprache JAVA ausdrückt.
Arbeitsauftrag 1
Legen Sie die Methode dreierreihe()
in der Klasse ROBOTERSTEUERUNG
an und überprüfen Sie ihre Wirkung. |
Hefteintrag
(verpflichtende Hefteinträge sind immer grün hinterlegt)
Algorithmik
Wichtige Begriffe:
Algorithmus:
Ein Algorithmus ist ein Verfahren zur Lösung einer Klasse von Problemen, das aus endlich vielen Anweisungen
besteht.
Beispiele: Kochrezept, Karol-Programm, Routenermittlung bei einem Routenplaner etc.
Struktogramm: Algorithmen werden in sogenannten Struktogrammen veranschaulicht.
Mit Struktogrammen kann man Algorithmen unabhängig von einer bestimmten Programmiersprache ausdrücken.
Sequenz: Eine Folge von mehreren
hintereinander
auszuführenden Anweisungen bezeichnet man als Sequenz. |
Arbeitsauftrag 2
Lesen Sie aufmerksam den unten angegebenen
Bereich auf Ihrem Java
Überblick
zu diesem Thema und markieren Sie den Bereich. |

Arbeitsauftrag 3
Schreiben Sie eine Methode zickZackReihe() ,
die das unten abgebildete Ergebnis liefert.

Tipp:
Ein neues Objekt von der Klasse Robotersteuerung hat
natürlich auch wieder eine „steinfreie“
Welt.
Lösung
|
Arbeitsauftrag 4
Was macht die nachfolgende Methode? Stellen Sie
eine Vermutung an und
überlegen Sie sich eine kurze Begründung.
public void
xxxxxxxxxxxx()
{
dreierreihe();
dreierreihe();
}
Überprüfen Sie Ihre Vermutung in
BlueJ.
Verwenden Sie einen treffenden Methodennamen.
Lösung
|
Man kann also Methoden wiederverwenden. Dies ist ein
Programmierstil,
der viel Arbeit spart und zu übersichtlicheren Programmen
führt (gewöhnen Sie sich das an...!)
Arbeitsauftrag 5
Die Methoden umdrehen()
und schrittZurueck()
können oft wiederverwendet werden. Legen Sie die Methoden
gemäß den folgenden Struktogrammen an:
Lösung
|
|