Ihr kennt nun schon lange die Möglichkeit, neue Testbefehle für den Hamster zu programmieren. Diese nennt man Boolsche Funktionen. In der letzten Lektion habt ihr (abgesehen von boolean) noch weitere Datentypen kennen gelernt, unter anderem den int-Datentyp, der ganze Zahlen speichern kann. In dieser Lektion lernt ihr, dem Hamster Testbefehle beizubringen, die nicht nur Wahrheitswerte zurückgeben können, sondern beliebige Datentypen. Somit lernt der Hamster quasi als Nebeneffekt das Zählen.
Die oben schon angesprochenen boolschen Funktionen sind ein Spezialfall eines allgemeineren Konzepts, nämlich dem der Funktion. Lest euch die Fachkonzepte Funktion, Return, Void & Parameter durch und beantwortet die folgenden Fragen:
void
?Aufgabe 2.1: Der Hamster soll im folgenden Territorium genau so viele Schritte vor gehen, wie Körner auf dem Feld vor ihm liegen. Die Anzahl der Körner ist variabel.
Aufgabe 2.2: Der Hamster soll durch das Labyrinth laufen. An einer Kreuzung kann er die folgenden Situationen finden:
Aufgabe 2.3: Der Hamster soll durch das Labyrinth laufen. Benutze nur Methoden mit Parametern!
void main() { vor(); int koerner = nimmUndZaehle(); while (koerner > 0 && vornFrei()) { vor(); koerner = koerner - 1; } } int nimmUndZaehle() { int koerner = 0; while (kornDa()) { nimm(); koerner = koerner + 1; } return koerner; }
void main() { int anzahl = dreiVorUndNimm(); while (anzahl != 3) { if (anzahl == 2) { linksUm(); } else if (anzahl == 1) { rechtsUm(); } anzahl = dreiVorUndNimm(); } } void rechtsUm() { linksUm(); linksUm(); linksUm(); } int dreiVorUndNimm() { vor(); vor(); vor(); int anzahl = 0; while (kornDa()) { nimm(); anzahl = anzahl + 1; } return anzahl; }
void main() { vor(11); linksUm(3); vor(7); linksUm(3); vor(2); linksUm(3); vor(3); linksUm(1); vor(2); linksUm(1); vor(3); linksUm(3); vor(7); linksUm(3); vor(3); nimm(); } void vor(int anzahl) { while (anzahl > 0) { vor(); anzahl = anzahl - 1; } } void linksUm(int anzahl) { while (anzahl > 0) { linksUm(); anzahl = anzahl - 1; } }
Diese Konzepte findet ihr auch im Hamster-eBook in Kapitel 15 auf S. 276 und Kapitel 16 auf S. 297
Speichert die Programme und die Territorien sowie eure Notizen auf eurem Stick nach dem Schema Lektion8_Beispiel2 bzw. Lektion8_Uebung5 ab!