Übersicht

  => Das Problem . . .
  => Die Lösung!
  => Beispiele
  => Aufgaben


Das Problem . . .

sieht so aus:

Der Hamster steht vor dem Berg, geht nach vorne, dreht sich linksUm, geht nach vorne, und dreht sich rechtsUm, Stopp! Den Hamster-Befehl rechtsUm() gibt es ja gar nicht, also basteln wir uns diesen Befehl.

<<<

Die Lösung!

Überlege: einmal rechtsUm ist das gleiche wie drei mal linksUm:


1    void rechtsUm()
2    {
3      linksUm();
4      linksUm();
5      linksUm();
6    }

Achtung: Die Zahlen am Anfang der Zeile gehören nicht zum Befehl!

=> Erklärung:

So könnte unser Hamster-Programm jetzt aussehen:


1    void rechtsUm()
2    {
3      linksUm();
4      linksUm();
5      linksUm();
6    }
7  void main()
8  {
9    vor();
10   linksUm();
11   vor();
11   rechtsUm();
12   vor();
13   // und so weiter
14 }
<<<

Beispiele

findest du im Lehrer-Ordner oben rechts unter:
wspiegel => info11hamster => Programme => beispiele

<<<

Aufgaben

  1. Lade das Hamster-Programm berg.ham und das Territorium berg.ter aus dem Programme-Ordner. Das Programm ist noch nicht fertig! Der Hamster soll den Berg wieder runter gehen!

  2. Was ist der Unterschied zwischen einer Datei mit der Endung *.ter und einer Datei mit der Endung *.ham? (Antwort)

  3. Das Hamster-Programm berg.ham muss verbessert werden! Es kommen für jede Stufe immer vier Befehle in Folge (welche?), schreibe also einen Befehl stufeRauf() sowie einen Befehl stufeRunter(), damit dein Hamster-Programm wesentlich kürzer wird! Warum benötigt man zwei unterschiedliche Befehle für das Hinauf- und Hinabsteigen? Wie oft muss der Befehl stufeRauf() aufgerufen werden? Kann man in dem neuen Befehl stufeRauf() den Befehl von oben rechtsUm() benutzen? Ist es egal, welchen Befehl man zuerst vereinbart?

  4. Diesmal geht es um das Territorium feld1.ter aus dem Verzeichnis beispielprogramm2 in kap8:
    Der Hamster soll einmal im Kreis laufen, hierzu schreibst du die Hamster-Befehle achtVor() und vierVor(). In deinem Hamsterprogramm dürfen dann nur noch drei Befehle benutzt werden, welche? _________________________________________________
    (Abspeichern unter imKreis.ham)

  5. Mit der Maus im Feld aus Aufgabe 3 auf den Button , wieviele Körner hat der Hamster im Maul? ______ Diese Körner soll der Hamster wenigstens teilweise abgeben, und zwar bei jedem Schritt gerade ein Korn. Nimm also dein Hamsterprogramm aus Aufgabe 3 und verändere es entsprechend! Achtung: Veränderungen in main() sind VERBOTEN!

  6. Gegeben sei folgendes Hamsterfeld:
    Der Hamster hat genau 9 Körner im Maul und soll die Körner exakt auf den beiden Diagonalen ablegen (klar?). Davor musst du dir das 7x7-Feld über den Button basteln (Viel Glück!). Speichere das Territorium in deinem Verzeichnis unter dem Namen quadrat.ter. Wie bekommt der Hamster die Körner ins Maul? Und: Wie kannst du das Hamster-Programm vereinfachen?

<<<
   W. Spiegel, E-Mail: walter.spiegel@web.de