Lernpfad:Lerntheke Marsrover/4

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Das ist Java

Du hast den Rover schon "von Hand" durch die Mars-Welt gesteuert. Ziel soll es aber sein, den Rover automatisch arbeiten zu lassen. Dazu wird er mit der Programmiersprache Java programmiert.

Alle Objekte in der Mars-Welt sind mit Java Programmiert. Sogar Greenfoot selbst basiert auf Java. Du kannst dir den Quelltext des Rovers ansehen, indem du in Greenfoot doppelt auf das Rover-Rechteck am rechten Rand klickst.

Der gesammte Quelltext hat 229 Zeilen. Für uns wird zunächst aber nur ein winziger Teil davon Bedeutung haben. Sobald du den Quelltext öffnest, solltest du diesen Programmcode sehen:

    /**
     * Act-Methode des Rovers. Programmiere hier deinen Algorithmus und starte
     * ihn mit dem "Act"-Button in Greenfoot.
     */
    public void act() {

    }

Das ist die "Act-Methode". Du ahnst vielleicht schon, dass sie mit dem Act Button zu tun hat. Alles was zwischen den geschweiften Klammern steht ({ ... }) wird einmal ausgeführt, wenn du den Button in Greenfoot klickst.

In den meisten Stationen der Lerntheke wirst du dein Programm hier in der Act-Methode schreiben und durch einen Klick auf Act ausführen.

Dein erstes Programm

Bevor du die Programmiersprache Java genauer kennenlernst, schreiben wir erstmal ein erstes Rover-Programm.

Öffne dazu den Rover-Code und schreibe (oder kopiere) folgenden Quelltext hinein:

    /**
     * Act-Methode des Rovers. Programmiere hier deinen Algorithmus und starte
     * ihn mit dem "Act"-Button in Greenfoot.
     */
    public void act() {
        fahre();
        fahre();
        fahre();
        entferneMarke();
    }

Schließe den Quelltext wieder. Das Programm wird automatisch gespeichert und die Mars-Welt erscheint kurze Zeit grau. Nachdem sie wieder in Farbe ist, lade diese Karte:

Kartendaten:
".\n.\n.\n...HHHHHHH\n...HR..MGH\n...HHHHHHH"

Was vermutest du wird passieren? Betätige nun einmal Act und beobachte den Rover.

Greenfoot Logo.png
Arbeitsauftrag
  1. Lade die Karte erneut und speichere die Welt ab, damit sie das nächste Mal sofort geladen wird.
  2. Programmiere den Rover so, dass er nicht die Marke entfernt, sondern das Gestein analysiert.


Syntax und Semantik

Bei der Programmierung unterscheidet man die Semantik und die Syntax einer Programmiersprache. Die Semantik ist die Bedeutung des Programms, die Syntax sind die Regeln, nach denen es aufgebaut ist. In dem Beispiel oben ist die Semantik ungefähr: "Der Rover fährt bis zur Marke und entfernt sie". Die Syntax sind die Zeichen, die du eingeben musst, um dieses Ziel umzusetzen.

Die Semantik hängt also immer von dem Ziel der Programmierung ab. Die Syntax ist dagegen fest vorgeschrieben, damit das Programm funktioniert. Sie muss gültig sein, ansonsten kann das Programm nicht ausgeführt werden.

Die Syntax von Java ist komplex, aber uns reichen zunächst einige wenige Regelungen:

  1. Ein Programm besteht aus einzelnen Befehlen, die untereinander geschrieben werden.
  2. Jeder Befehl muss mit einem Semikolon (;) abgeschlossen werden.
  3. Befehle (wie z.B. fahre()) enden immer mit runden Klammern. (Später wirst du auch noch Dinge in die Klammern hineinschreiben.)
  4. Alle Befehle beginnen mit einem Kleinbuchstaben und enthalten nur Buchstaben und Zahlen.
  5. Kommen in einer Zeile die Zeichen // vor, dann werden alle Befehle, die danach stehen, ignoriert.

Syntax- und Semantikfehler

Da die Vorgaben für die Syntax sehr strikt sind, wirst du es schnell merken, wenn du einen Fehler machst, denn Greenfoot wird es dir sagen.

Entferne zum Beispiel mal ein Semikolon oder eine Runde Klammer aus deinem ersten Programm. Versuche dann, es auszuführen.

Semantische Fehler sind dagegen oft schwerer zu finden. Wenn das Programm syntaktisch korrekt ist, dann muss es noch lange nicht das Problem lösen, das es eigentlich lösen sollte.

Lade zum Beispiel wieder das Programm und die Karte von oben (das die Marke entfernt) und führe es aus. Das Problem dazu könnte beispielsweise gelautet haben: "Der Rover soll alle Marken entfernen." Das Programm scheint diese Aufgabe zu erfüllen. Drücke nun Reset und verschiebe die Marke ein Feld nach links. Starte das Programm erneut. Plötzlich scheint das Programm gar nicht mehr das Problem zu lösen.

Um sicher zu gehen, dass dein Programm auch macht, was es soll, musst du die Aufgabenstellung sorgfältig lesen und dein Programm ausführlich testen.