info:sek-ii:e2:java-grundlagen:l8-funktionen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
info:sek-ii:e2:java-grundlagen:l8-funktionen [2020-05-10 11:19] – [Aufgabe 1: Funktionen] christian.weber | info:sek-ii:e2:java-grundlagen:l8-funktionen [2021-05-06 13:43] (aktuell) – [Aufgabe 3: Übungsaufgaben] christian.weber | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
===== Aufgabe 1: Funktionen ===== | ===== Aufgabe 1: Funktionen ===== | ||
- | Die oben schon angesprochenen boolschen Funktionen sind ein Spezialfall eines allgemeineren Konzepts, nämlich dem der Funktion. Lest euch die [[info: | + | Die oben schon angesprochenen boolschen Funktionen sind ein Spezialfall eines allgemeineren Konzepts, nämlich dem der Funktion. Lest euch die [[info: |
* Was ist eine Funktion? | * Was ist eine Funktion? | ||
+ | * Dürfen Funktionen Seiteneffekte erzeugen? Wenn ja, wie macht man das am besten kenntlich? | ||
* Was bedeutet das Schlüsselwort **'' | * Was bedeutet das Schlüsselwort **'' | ||
+ | * Was ist ein Funktionsparameter? | ||
- | ===== Aufgabe 2: XX ===== | + | ===== Aufgabe 2: Zählen mit While-Schleifen |
- | * FIXME [[info: | + | <tabbox Aufgaben> |
- | * FIXME [[info:sek-ii: | + | **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 X: Übungsaufgaben ===== | + | {{:info: |
- | | + | **Aufgabe 2.2:** Der Hamster soll durch das Labyrinth laufen. An einer Kreuzung kann er die folgenden Situationen finden: |
- | - Bearbeitet | + | - 1 Korn: Rechts abbiegen und weiter! |
+ | - 2 Körner: Links abbiegen und weiter! | ||
+ | - 3 Körner: Stehen bleiben! | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Aufgabe 2.3:** Der Hamster soll durch das Labyrinth laufen. Benutze **nur** Methoden mit Parametern! | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <tabbox Lösung 2.1> | ||
+ | <code java> | ||
+ | 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; | ||
+ | } | ||
+ | </ | ||
+ | <tabbox Lösung 2.2> | ||
+ | <code java> | ||
+ | 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; | ||
+ | } | ||
+ | </ | ||
+ | <tabbox Lösung 2.3> | ||
+ | <code java> | ||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | ===== Aufgabe 3: Übungsaufgaben ===== | ||
+ | |||
+ | Diese Konzepte findet ihr auch im Hamster-eBook in [[https:// | ||
+ | |||
+ | | ||
+ | - Bearbeitet das Beispielprogramm 3 auf [[https:// | ||
+ | - Bearbeitet | ||
+ | - Bearbeitet | ||
Speichert die Programme und die Territorien sowie eure Notizen auf eurem Stick nach dem Schema __Lektion8_Beispiel2__ bzw. __Lektion8_Uebung5__ ab! | Speichert die Programme und die Territorien sowie eure Notizen auf eurem Stick nach dem Schema __Lektion8_Beispiel2__ bzw. __Lektion8_Uebung5__ ab! | ||
info/sek-ii/e2/java-grundlagen/l8-funktionen.1589102344.txt.gz · Zuletzt geändert: 2020-05-10 11:19 von christian.weber