faecher:informatik:mittelstufe:bauernhof:ab3:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:mittelstufe:bauernhof:ab3:start [27.05.2024 13:23] Marco Kuemmelfaecher:informatik:mittelstufe:bauernhof:ab3:start [18.12.2024 13:08] (aktuell) Marco Kuemmel
Zeile 6: Zeile 6:
 **Ziel:** Wiederholungen in Handlungen erkennen, als SOLANGE-Schleife formulieren und in Programmiersprache umsetzen können. Methoden mit Parametern benutzen können. **Ziel:** Wiederholungen in Handlungen erkennen, als SOLANGE-Schleife formulieren und in Programmiersprache umsetzen können. Methoden mit Parametern benutzen können.
 </callout> </callout>
- 
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A1) Wiese erkunden === === (A1) Wiese erkunden ===
  
 Die Schafe sollen eine Runde auf ihrer Wiese drehen, egal wie groß diese Wiese ist. Dazu gibt es eine Methode ''vorBisZaun()''. Teste diese Methode und lies dann im Quelltext vom ''AB3_Schaf'' nach, wie sie implementiert wurde. Die Schafe sollen eine Runde auf ihrer Wiese drehen, egal wie groß diese Wiese ist. Dazu gibt es eine Methode ''vorBisZaun()''. Teste diese Methode und lies dann im Quelltext vom ''AB3_Schaf'' nach, wie sie implementiert wurde.
-Setze diese Methode ein, um die Schafe eine Runde entlang des Zauns ihrer Wiese drehen zu lassen. Teste diese Methode an verschiedenen Schafen.+ 
 +Implementiere dann den Code für die Methode ''wieseErkunden()'' und setze dabei die Methode ''vorBisZaun()'' ein, um die Schafe eine Runde entlang des Zauns ihrer Wiese drehen zu lassen. Teste diese Methode an verschiedenen Schafen.
  
  
Zeile 44: Zeile 44:
  
 Wir haben bisher Methoden benutzt, die keine zusätzliche Information benötigen, um ausgeführt werden zu können. Viele Methoden brauchen aber zusätzliche Informationen. Diese werden als **Parameter** bezeichnet. Wir haben bisher Methoden benutzt, die keine zusätzliche Information benötigen, um ausgeführt werden zu können. Viele Methoden brauchen aber zusätzliche Informationen. Diese werden als **Parameter** bezeichnet.
-Die Methode ''istVorne(String name)'' testet beispielsweise, ob die Figur vor einem Feld mit ''"name"'' steht. Dabei können ''name'' verschiedene Dinge (z.B. ''"Wasser"'', ''"Gras"'', ''"Zaun"'') sein. Also z.B. ''while(istVorne("Zaun"))'' ...+Die Methode ''istVorne(String name)'' testet beispielsweise, ob die Figur vor einem Feld mit ''"name"'' steht. Dabei können ''String name'' verschiedene Dinge (z.B. ''"Wasser"'', ''"Gras"'', ''"Zaun"'') sein. Also z.B. ''while(istVorne("Zaun"))'' ...
  
  
Zeile 55: Zeile 55:
 === (A5) Zum Wasser === === (A5) Zum Wasser ===
 Jedes Schaf muss mal trinken. Aber der Teich oder der Brunnen sind nicht immer gleich weit weg. Es muss also so lange laufen, wie kein Wasser vorne ist. Jedes Schaf muss mal trinken. Aber der Teich oder der Brunnen sind nicht immer gleich weit weg. Es muss also so lange laufen, wie kein Wasser vorne ist.
-Implementiere die Methode im Quellcode und teste sie an allen drei Schafen oben.+Implementiere die Methode ''vorBisWasserUndTrinke()'' im Quellcode und teste sie an allen drei Schafen oben. Die Methode funktioniert analog zur Methode ''vorBisGrasUndFriss()''!
  
 ---- ----
Zeile 65: Zeile 65:
  
 z.B. ''while(getHunger() < 70)''  oder  ''while(getDurst() != 0)''  z.B. ''while(getHunger() < 70)''  oder  ''while(getDurst() != 0)'' 
 +
 +**Ganz wichtig:** Wenn du prüfen willst, ob zwei Werte identisch sind, so musst du mit einem **doppelten Gleichheitszeichen** (''=='') prüfen! \\ \\
  
  
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A6) Zum Wasser und trinken === === (A6) Zum Wasser und trinken ===
-Ergänze ''vorBisWasserUndTrinke()'' aus Aufgabe 5 so, dass das Schaf so lange trinkt, wie es noch Durst hat (der Wert 100 noch nicht erreicht ist).+Ergänze ''vorBisWasserUndTrinke()'' aus Aufgabe 5 so, dass sich das Schaf **vollständig satt drinkt** (der Wert 100 bei Durst noch nicht erreicht ist).
  
  
Zeile 81: Zeile 83:
 === (A8) Faules Schaf === === (A8) Faules Schaf ===
 Fred ist faul. Statt über die Wiese zu laufen und nach schönen Grasbüscheln zu suchen, wartet er einfach, bis das Gras genügend gewachsen ist. Fred ist faul. Statt über die Wiese zu laufen und nach schönen Grasbüscheln zu suchen, wartet er einfach, bis das Gras genügend gewachsen ist.
-Implementiere eine Methode, die das Schaf so lange warten lässt, bis das Gras, auf dem es steht, vollständig gewachsen ist und es dann frisst.+Implementiere eine Methode, die das Schaf so lange warten lässt, bis das Gras, auf dem es steht, vollständig gewachsen ist und es dann frisst. Nutze zum Warten die Methode ''warte()''.
 Teste deine Methode an den drei Schafen in den Gattern. Teste deine Methode an den drei Schafen in den Gattern.
  
-Hinweis: Mit der Methode ''pruefe(String name)'' kannst du das Gras testen. Wenn der Wert 15 erreicht ist, ist es vollständig gewachsen. Für den Parameter ''"name"'' musst du natürlich wieder den richtigen Wert einsetzen.+Hinweis: Mit der Methode ''pruefe(String name)'' kannst du das Gras testen. Wenn der Wert 15 erreicht ist, ist es vollständig gewachsen. Für den Parameter ''"String name"'' musst du natürlich wieder den richtigen Wert einsetzen.
  
  
Zeile 92: Zeile 94:
 Von einem Grasbüschel wird Fred natürlich nicht satt. Verbessere die Methode so, dass die Befehle von Aufgabe 8 solange immer wieder ausgeführt werden, wie ein Sättigungsgrad von 80 noch nicht erreicht wurde. Von einem Grasbüschel wird Fred natürlich nicht satt. Verbessere die Methode so, dass die Befehle von Aufgabe 8 solange immer wieder ausgeführt werden, wie ein Sättigungsgrad von 80 noch nicht erreicht wurde.
  
-Hinweis: Man kann Schleifen ineinander schachteln (siehe rechtes Bild).+Hinweis: Man kann Schleifen ineinander schachteln (siehe rechtes Bild).\\ \\
  
  
Zeile 99: Zeile 101:
 {{:faecher:informatik:mittelstufe:bauernhof:ab3:ab3_a10_1.png?400 |}} {{:faecher:informatik:mittelstufe:bauernhof:ab3:ab3_a10_1.png?400 |}}
 Die Methoden ''getX()'' und ''getY()'' liefern die Koordinaten der aktuellen Position des Schafs. ''getRotation()'' liefert die Richtung, in die es schaut (0 = rechts, 90 = unten, 180 = links, 270 = oben). Die Methoden ''getX()'' und ''getY()'' liefern die Koordinaten der aktuellen Position des Schafs. ''getRotation()'' liefert die Richtung, in die es schaut (0 = rechts, 90 = unten, 180 = links, 270 = oben).
-Implementiere eine Methode, die das Schaf zunächst so lange dreht, bis es nach links schaut, dann nach links laufen und am Ende nach oben laufen lässt, bis es im Stall ist. Der Stall hat die Position x=6 und y=3. Teste deine Methode an allen drei Schafen oben.+Implementiere eine Methode, die das Schaf zunächst so lange dreht, bis es nach links schaut, dann nach links laufen und am Ende nach oben laufen lässt, bis es im Stall ist. Der Stall hat die Position x=6 und y=3. Teste deine Methode an allen drei Schafen oben.\\ \\ \\
  
-----+===== Leveltest 3: Karges Land =====
  
 Überprüfe wie immer deine Implementierungen am Ende des Levels mit der entsprechenden checkup-Methode. Die komplexere Zusatzaufgabe (Leveltest) ist auch dieses Mal eine Bonusaufgabe. Führe diesen Schritt ab sofort am Ende jedes Levels durch. Überprüfe wie immer deine Implementierungen am Ende des Levels mit der entsprechenden checkup-Methode. Die komplexere Zusatzaufgabe (Leveltest) ist auch dieses Mal eine Bonusaufgabe. Führe diesen Schritt ab sofort am Ende jedes Levels durch.
  
 +<callout type="danger">
 +{{:aufgabe.png?nolink  |}}
 +=== Aufgabe ===
 +{{ :faecher:informatik:mittelstufe:bauernhof:ab3:ab3_leveltest.png?400|}}
 +„Mäh, mäh, mäh, wo seid ihr alle?" Das arme kleine Schaf hat den Anschluss verloren und steht als einziges noch auf dem Hof des Bauerhofes. Es ist schon ganz ausgehungert, aber auf dem Hof findet man fast nichts zu fressen. Sorge trotzdem dafür, dass es sicher in den Stall kommt.\\
 +Irgendwo vor dem Schaf ist ein karges Grasfleckchen, weiter vorne ein Brunnen. Die exakte Position ist jedes Mal etwas anders. \\
 +Versuche mit möglichst wenigen Befehlen das Schaf in seinen Stall zu bekommen. Nutze wenn möglich die zuvor programmierten Methoden - es kann aber auch sinnvoll sein, deren Inhalt zu übernehmen und ein wenig anzupassen!\\
 +**Tipps:**
 +  * Es sollte genügen, wenn das Schaf zu Beginn zweimal frisst und anschließend einmal trinkt. Beim Sattessen bzw -trinken würde es andernfalls jeweils verdursten oder verhungern...
 +  * Zusammengesetzte Bedingungen kann man mit ''&&'' (= und) bzw. ''||'' (= oder) formulieren.
 +</callout>
 +
 +<callout type="info">
 +**Zusammenfassung:**  Du kannst Algorithmen formulieren und im Quelltext notieren, die eine oder mehrere Anweisungen so lange wiederholen, wie eine Ausführungsbedingung gilt. Als Bedingung eignet sich alles, was wahr oder falsch sein kann. Wir verwenden oft einen Fragebefehl wie ''istVorneFrei()'', dessen Ja/Nein-Antwort die Wiederholung steuert. Aber auch Vergleiche wie „größer“ können verwendet werden.
 +
 +Im Quelltext schreibt man Wiederholungen mit dem Schlüsselwort ''while'' im **Schleifen__kopf__** und dahinter eine Ausführungsbedingung in runder Klammer ''(...)'' sowie einen **Schleifen__rumpf__** innerhalb des Blockklammerpaares ''{...}''.!
 +
 +{{:faecher:informatik:mittelstufe:bauernhof:ab3:ab3_zusammenfassung_1.png?400 |}}
 +Die Ausführungsbedingung muss im Laufe der Wiederholungen einmal falsch werden, damit es keine Endlosschleife gibt.
 +Falls es dennoch mal eine Endlosschleife gibt, kann man diese mit dem Knopf {{:faecher:informatik:mittelstufe:bauernhof:ab3:ab3_zusammenfassung_2.png?50|}} unten rechts unterbrechen.\\ \\ \\ \\
  
 +Mehrere Schleifen können nacheinander ausgeführt werden oder ineinander verschachtelt werden:
  
 +{{:faecher:informatik:mittelstufe:bauernhof:ab3:ab3_zusammenfassung_3.png?200|}}
 +{{:faecher:informatik:mittelstufe:bauernhof:ab3:ab3_zusammenfassung_4.png?200|}}
 +</callout>
 ---- ----
  
 <btn>[[..:ab2:start|<<< Zurück zu Level 2]]</btn>  **AB03**  <btn>[[..:ab4:start|Weiter zu Level 4 >>> ]]</btn> <btn>[[..:ab2:start|<<< Zurück zu Level 2]]</btn>  **AB03**  <btn>[[..:ab4:start|Weiter zu Level 4 >>> ]]</btn>
  
  • faecher/informatik/mittelstufe/bauernhof/ab3/start.1716816228.txt.gz
  • Zuletzt geändert: 27.05.2024 13:23
  • von Marco Kuemmel