From 5de9b9f19515b5fc5bb5519ccccd5d5f6fc54165 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 7 May 2026 19:44:09 +0200 Subject: planet: add for loop material --- Info/9/3/Planet/algorithmik/for/.gitignore | 2 + Info/9/3/Planet/algorithmik/for/fidibus.md.part | 11 ++ .../3/Planet/algorithmik/for/for-struktogramm.tikz | 5 + .../Planet/algorithmik/for/h5p-aufgabe-fidibus.md | 14 ++ .../algorithmik/for/h5p-aufgabe-hokuspokus.md | 14 ++ Info/9/3/Planet/algorithmik/for/hokuspokus.md.part | 14 ++ Info/9/3/Planet/algorithmik/for/img/fidibus.png | Bin 0 -> 94562 bytes .../9/3/Planet/algorithmik/for/img/h5p-fidibus.png | Bin 0 -> 3220 bytes .../Planet/algorithmik/for/img/h5p-hokuspokus.png | Bin 0 -> 3569 bytes Info/9/3/Planet/algorithmik/for/img/hokuspokus.png | Bin 0 -> 343582 bytes Info/9/3/Planet/algorithmik/for/img/kiste-dekl.png | Bin 0 -> 4195 bytes Info/9/3/Planet/algorithmik/for/img/kiste-init.png | Bin 0 -> 6199 bytes Info/9/3/Planet/algorithmik/for/img/marken.png | Bin 0 -> 265476 bytes .../algorithmik/for/img/oide-for-suggestion.png | Bin 0 -> 7585 bytes .../for/img/oide-regelmaesigeTaeler.png | Bin 0 -> 6836 bytes .../for/img/regelmaesige-taeler-struktogram.svg | 1 + .../3/Planet/algorithmik/for/img/rover-count0.png | Bin 0 -> 160193 bytes .../3/Planet/algorithmik/for/img/rover-count1.png | Bin 0 -> 160193 bytes .../3/Planet/algorithmik/for/img/rover-count2.png | Bin 0 -> 206547 bytes .../3/Planet/algorithmik/for/img/rover-count3.png | Bin 0 -> 249121 bytes .../3/Planet/algorithmik/for/img/rover-count4.png | Bin 0 -> 251534 bytes .../Planet/algorithmik/for/img/strange-valleys.png | Bin 0 -> 406906 bytes Info/9/3/Planet/algorithmik/for/planet-fidibus.h5p | Bin 0 -> 1229733 bytes .../3/Planet/algorithmik/for/planet-hokuspokus.h5p | Bin 0 -> 1479257 bytes Info/9/3/Planet/algorithmik/for/spirale.tikz | 37 +++++ Info/9/3/Planet/algorithmik/for/todo.md | 14 ++ Info/9/3/Planet/algorithmik/for/variablen.md | 155 ++++++++++++++++++++ .../for/wiederholung-mit-fester-anzahl.md | 160 +++++++++++++++++++++ 28 files changed, 427 insertions(+) create mode 100644 Info/9/3/Planet/algorithmik/for/.gitignore create mode 100644 Info/9/3/Planet/algorithmik/for/fidibus.md.part create mode 100644 Info/9/3/Planet/algorithmik/for/for-struktogramm.tikz create mode 100644 Info/9/3/Planet/algorithmik/for/h5p-aufgabe-fidibus.md create mode 100644 Info/9/3/Planet/algorithmik/for/h5p-aufgabe-hokuspokus.md create mode 100644 Info/9/3/Planet/algorithmik/for/hokuspokus.md.part create mode 100644 Info/9/3/Planet/algorithmik/for/img/fidibus.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/h5p-fidibus.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/h5p-hokuspokus.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/hokuspokus.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/kiste-dekl.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/kiste-init.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/marken.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/oide-for-suggestion.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/oide-regelmaesigeTaeler.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/regelmaesige-taeler-struktogram.svg create mode 100644 Info/9/3/Planet/algorithmik/for/img/rover-count0.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/rover-count1.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/rover-count2.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/rover-count3.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/rover-count4.png create mode 100644 Info/9/3/Planet/algorithmik/for/img/strange-valleys.png create mode 100644 Info/9/3/Planet/algorithmik/for/planet-fidibus.h5p create mode 100644 Info/9/3/Planet/algorithmik/for/planet-hokuspokus.h5p create mode 100644 Info/9/3/Planet/algorithmik/for/spirale.tikz create mode 100644 Info/9/3/Planet/algorithmik/for/todo.md create mode 100644 Info/9/3/Planet/algorithmik/for/variablen.md create mode 100644 Info/9/3/Planet/algorithmik/for/wiederholung-mit-fester-anzahl.md (limited to 'Info/9/3/Planet/algorithmik') diff --git a/Info/9/3/Planet/algorithmik/for/.gitignore b/Info/9/3/Planet/algorithmik/for/.gitignore new file mode 100644 index 00000000..5ffd2fd5 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/.gitignore @@ -0,0 +1,2 @@ +for-struktogramm.svg +spirale.svg diff --git a/Info/9/3/Planet/algorithmik/for/fidibus.md.part b/Info/9/3/Planet/algorithmik/for/fidibus.md.part new file mode 100644 index 00000000..efa81e5f --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/fidibus.md.part @@ -0,0 +1,11 @@ +```java +void fidibus() { + for(int i = 0; i < 8; i=i+1) { + fahre(); + // Ist i durch zwei teilbar? + if(i%2 == 0) { + setzeMarke(); + } + } +} +``` diff --git a/Info/9/3/Planet/algorithmik/for/for-struktogramm.tikz b/Info/9/3/Planet/algorithmik/for/for-struktogramm.tikz new file mode 100644 index 00000000..e1d927f6 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/for-struktogramm.tikz @@ -0,0 +1,5 @@ +\begin{struktogramm}(120,50) + \while{zähle \textcolor{teal}{VARIABLE} von \textcolor{teal}{START} bis \textcolor{magenta}{Bedingung} schritt \textcolor{purple}{SCHRITT}} + \assign{\textcolor{orange}{Anweisungen}} + \whileend +\end{struktogramm} diff --git a/Info/9/3/Planet/algorithmik/for/h5p-aufgabe-fidibus.md b/Info/9/3/Planet/algorithmik/for/h5p-aufgabe-fidibus.md new file mode 100644 index 00000000..2f0e0623 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/h5p-aufgabe-fidibus.md @@ -0,0 +1,14 @@ +--- +section: Wiederholung mit fester Anzahl +--- + +:::{.terminal} +Skizziere die Welt nach Ausführung der Methode `fidibus`. +[_]{.blink} +::: + +```{.include} +algorithmik/for/fidibus.md.part +``` + +<< Zurück zu TODO: %section% diff --git a/Info/9/3/Planet/algorithmik/for/h5p-aufgabe-hokuspokus.md b/Info/9/3/Planet/algorithmik/for/h5p-aufgabe-hokuspokus.md new file mode 100644 index 00000000..12d6db33 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/h5p-aufgabe-hokuspokus.md @@ -0,0 +1,14 @@ +--- +section: Wiederholung mit fester Anzahl +--- + +:::{.terminal} +Skizziere die Welt nach Ausführung der Methode `hokuspokus`. +[_]{.blink} +::: + +```{.include} +algorithmik/for/hokuspokus.md.part +``` + +<< Zurück zu TODO: %section% diff --git a/Info/9/3/Planet/algorithmik/for/hokuspokus.md.part b/Info/9/3/Planet/algorithmik/for/hokuspokus.md.part new file mode 100644 index 00000000..0ab9b1be --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/hokuspokus.md.part @@ -0,0 +1,14 @@ +```java +public void hokuspokus() +{ + for(int i = 0; i < 4; i++) + { + for(int j = 0; j < 5; j++) + { + setzeMarke(); + fahre(); + } + drehe("rechts"); + } +} +``` diff --git a/Info/9/3/Planet/algorithmik/for/img/fidibus.png b/Info/9/3/Planet/algorithmik/for/img/fidibus.png new file mode 100644 index 00000000..243a0245 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/fidibus.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/h5p-fidibus.png b/Info/9/3/Planet/algorithmik/for/img/h5p-fidibus.png new file mode 100644 index 00000000..bdbd362f Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/h5p-fidibus.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/h5p-hokuspokus.png b/Info/9/3/Planet/algorithmik/for/img/h5p-hokuspokus.png new file mode 100644 index 00000000..e35b22f3 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/h5p-hokuspokus.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/hokuspokus.png b/Info/9/3/Planet/algorithmik/for/img/hokuspokus.png new file mode 100644 index 00000000..265e3610 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/hokuspokus.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/kiste-dekl.png b/Info/9/3/Planet/algorithmik/for/img/kiste-dekl.png new file mode 100644 index 00000000..ba14b1cb Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/kiste-dekl.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/kiste-init.png b/Info/9/3/Planet/algorithmik/for/img/kiste-init.png new file mode 100644 index 00000000..557d5c1b Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/kiste-init.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/marken.png b/Info/9/3/Planet/algorithmik/for/img/marken.png new file mode 100644 index 00000000..3a9a4460 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/marken.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/oide-for-suggestion.png b/Info/9/3/Planet/algorithmik/for/img/oide-for-suggestion.png new file mode 100644 index 00000000..754a395d Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/oide-for-suggestion.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/oide-regelmaesigeTaeler.png b/Info/9/3/Planet/algorithmik/for/img/oide-regelmaesigeTaeler.png new file mode 100644 index 00000000..49370f31 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/oide-regelmaesigeTaeler.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/regelmaesige-taeler-struktogram.svg b/Info/9/3/Planet/algorithmik/for/img/regelmaesige-taeler-struktogram.svg new file mode 100644 index 00000000..c1a5a04c --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/img/regelmaesige-taeler-struktogram.svg @@ -0,0 +1 @@ +
zähle bergkette von 1 bis 4 schritt 1
fahre
rechts drehen
zähle schritte von 1 bis bergkette schritt 1
fahre
nimm gestein
umdrehen
Count schritte von 1 bis bergkette schritt 1
fahre
drehe rechts
fahre
\ No newline at end of file diff --git a/Info/9/3/Planet/algorithmik/for/img/rover-count0.png b/Info/9/3/Planet/algorithmik/for/img/rover-count0.png new file mode 100644 index 00000000..4f4523bb Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/rover-count0.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/rover-count1.png b/Info/9/3/Planet/algorithmik/for/img/rover-count1.png new file mode 100644 index 00000000..4f4523bb Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/rover-count1.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/rover-count2.png b/Info/9/3/Planet/algorithmik/for/img/rover-count2.png new file mode 100644 index 00000000..40b84a3f Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/rover-count2.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/rover-count3.png b/Info/9/3/Planet/algorithmik/for/img/rover-count3.png new file mode 100644 index 00000000..4a93650b Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/rover-count3.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/rover-count4.png b/Info/9/3/Planet/algorithmik/for/img/rover-count4.png new file mode 100644 index 00000000..1245d644 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/rover-count4.png differ diff --git a/Info/9/3/Planet/algorithmik/for/img/strange-valleys.png b/Info/9/3/Planet/algorithmik/for/img/strange-valleys.png new file mode 100644 index 00000000..91f1a56c Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/img/strange-valleys.png differ diff --git a/Info/9/3/Planet/algorithmik/for/planet-fidibus.h5p b/Info/9/3/Planet/algorithmik/for/planet-fidibus.h5p new file mode 100644 index 00000000..9ee8a543 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/planet-fidibus.h5p differ diff --git a/Info/9/3/Planet/algorithmik/for/planet-hokuspokus.h5p b/Info/9/3/Planet/algorithmik/for/planet-hokuspokus.h5p new file mode 100644 index 00000000..2e6acee2 Binary files /dev/null and b/Info/9/3/Planet/algorithmik/for/planet-hokuspokus.h5p differ diff --git a/Info/9/3/Planet/algorithmik/for/spirale.tikz b/Info/9/3/Planet/algorithmik/for/spirale.tikz new file mode 100644 index 00000000..ff6ab157 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/spirale.tikz @@ -0,0 +1,37 @@ +\pgfmathsetmacro{\step}{2.6} + +\begin{tikzpicture} + \node{\includegraphics{img/marken.png}}; + \node[opacity=0.35, scale=6] at (-1.2, 0) {\includegraphics{img/rover.png}}; + \coordinate (start) at (-1.3, 0); + \draw[line width=3pt, ->] + (start) -- + ($(start) + (\step, 0)$) -- + ($(start) + (\step, -\step)$) -- + ($(start) + (0, -\step)$) -- + ($(start) + (-\step, -\step)$) -- + ($(start) + (-\step, 0)$) -- + ($(start) + (-\step, \step)$) -- + ($(start) + (-\step, \step)$) -- + ($(start) + (0, \step)$) -- + ($(start) + (\step, \step)$) -- + ($(start) + (2*\step, \step)$) -- + ($(start) + (2*\step, 0)$) -- + ($(start) + (2*\step, -\step)$) -- + ($(start) + (2*\step, 2*-\step)$) -- + ($(start) + (\step, 2*-\step)$) -- + ($(start) + (0, 2*-\step)$) -- + ($(start) + (-\step, 2*-\step)$) -- + ($(start) + (2*-\step, 2*-\step)$) -- + ($(start) + (2*-\step, -\step)$) -- + ($(start) + (2*-\step, 0)$) -- + ($(start) + (2*-\step, \step)$) -- + ($(start) + (2*-\step, 0)$) -- + ($(start) + (2*-\step, \step)$) -- + ($(start) + (2*-\step, 2*\step)$) -- + ($(start) + (-\step, 2*\step)$) -- + ($(start) + (0, 2*\step)$) -- + ($(start) + (\step, 2*\step)$) -- + ($(start) + (2*\step, 2*\step)$) -- + ($(start) + (3*\step, 2*\step)$); +\end{tikzpicture} diff --git a/Info/9/3/Planet/algorithmik/for/todo.md b/Info/9/3/Planet/algorithmik/for/todo.md new file mode 100644 index 00000000..e4346907 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/todo.md @@ -0,0 +1,14 @@ +:::{.terminal} +Zwischen uns und der Höhle liegt nur noch das Gebirge mit den sonderbar regelmäßigen Bergen. +Auch viel spannendes Gestein liegen auf unserem Weg. +Wir müssen die Regelmäßigkeit des Gebirges ausnutzen und buchführen, wie viel Gestein wir bereits aufgesammelt haben, um ans Ziel zu kommen. + +Hier im regelmäßigen Gebirge lernst du: + +* Wie du Informationen speichern und wiederverwenden kannst +* Wie du Anweisungen eine feste Anzahl oft wiederholen kannst und dabei mitzählst. + +Es ist nicht mehr weit! + +[_]{.blink} +::: diff --git a/Info/9/3/Planet/algorithmik/for/variablen.md b/Info/9/3/Planet/algorithmik/for/variablen.md new file mode 100644 index 00000000..e8873813 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/variablen.md @@ -0,0 +1,155 @@ +--- +section: Wiederholung mit fester Anzahl +title: Variablen +--- +:::{.terminal} +Unser Rover hat nicht unbegrenzt Stauraum und er darf auch nicht zu schwer werden, sonst schafft er es nicht wieder zurück zur Basis. +Der Rover muss sich merken können wie viele Steine er bereits aufgehoben hat. +[_]{.blink} +::: + +Zum Speichern von Werten kann man Variablen verwenden. +Eine Variable kann man sich wie eine [**Kiste**]{.solution} vorstellen, in der Werte abgelegt werden können. +Jede Kiste hat einen eindeutigen [**Datentyp**]{.solution}. +Das heißt, zum Speichern von Zahlen muss man andere Kisten (bzw. einen anderen Datentyp) verwenden als zum Speichern von Texten. + +:::{.tipp} +Das Erzeugen einer Variable geschieht in zwei Schritten: + +##### 1. [Deklaration]{.solution} + +Als erstes muss man den **Datentyp** und den **Namen** der Variable festlegen. + +::: {.columns} +:::: {.column width=50%} +**Kistenmodell** +:::: +:::: {.column width=50%} +**Java** +:::: +::: +::: {.columns style="align-items: center;"} +:::: {.column width=50%} +![](img/kiste-dekl.png){.center style="max-width:min(100%, 15rem);"} +:::: + +:::: {.column width=50%} +```java +int zaehler; +``` +:::: +::: + +:::{.tipp} +**Wichtig:** Der Datentyp wird nur einmal bei der "*Erstellung*" der Variable genannt, danach nie wieder! +::: + +##### 2. [Initialisierung]{.solution} + +Nun muss man einen Anfangswert festlegen, den sogenannten **Initialwert**. + +::: {.columns} +:::: {.column width=50%} +**Kistenmodell** +:::: +:::: {.column width=50%} +**Java** +:::: +::: +::: {.columns style="align-items: center;"} +:::: {.column width=50%} +![](img/kiste-init.png){.center style="max-width:min(100%, 15rem);"} +:::: + +:::: {.column width=50%} +```java +zaehler = 0; +``` +:::: +::: +::: + +Nachdem eine Variable deklariert und initialisiert wurde, kann man sie verwenden. +Z. B. zum Zählen von Gesteinen auf dem Weg zur Marke. +Der Rover soll zählen, wie viele Gesteine auf dem Weg bis zur Marke liegen. + +![](img/rover-count0.png){.center style="max-width: min(100%, 900px);"} + +Wenn der Rover auf einem Gestein ist, soll der Zähler um 1 erhöht werden. +Zum Erhöhen eines Wertes kann wird der aktuelle Variablenwert genommen und mit 1 addiert und schließlich der Variable wieder zugewiesen. + +:::{style="text-align: center;"} +**Zuweisung**: `zaehler ← zaehler + 1` +::: + +Erhöhe durch eine Zuweisung den Zähler um 1, wenn er auf einem Gestein steht: + +![](img/rover-count1.png){.center style="max-width: min(100%, 900px);"} + +:::{style="text-align: center;"} +`zaehler ← 0 + 1` +::: + +![](img/rover-count2.png){.center style="max-width: min(100%, 900px);"} + +:::{style="text-align: center;"} +`zaehler ← 1 + 1` +::: + +![](img/rover-count3.png){.center style="max-width: min(100%, 900px);"} + +:::{style="text-align: center;"} +`zaehler ← 2 + 1` +::: + +![](img/rover-count4.png){.center style="max-width: min(100%, 900px);"} + +:::{style="text-align: center;"} +`zaehler ← 3 + 1` +::: + +:::{.tipp} +**Hinweis:** In Java gibt es keinen Pfeil, daher verwendet man ein `=`-Zeichen: + +`zaehler = zaheler + 1`{.java} +::: + +:::{.page-break} +::: + +:::{.merke data-class="Merke: Variablen"} +Eine Variable **speichert** einen Werte. + +Eine Variable muss: + +1. mit **Datentyp** und **Namen** **deklariert** werden + +---------------------------------------- +Allgmein Java +-------------------- ------------------ +` ;` `int zahl;`{.java} +---------------------------------------- + +2. mit einem **Startwert** **initialisiert** werden + +--------------------------------------- +Allgmein Java +------------------- ------------------ +` = ;` `zahl = 5;`{.java} +--------------------------------------- +::: + +:::{.aufgabe data-class="Aufgabe 6.1.1"} +Der Rover soll bis Zur Marke fahren und auf dem Weg alle Gesteine zählen. +Schreibe dazu die Methode `zaehleGestein()`, die am Ende die Anzahl der Steine auf dem Weg *zurückgibt*. +**Hinweis:** Überlege dir, ob es eine verändernde oder zurückgebende Methode ist? + +![](img/rover-count0.png){.center style="max-width: min(100%, 900px);"} +::: + +:::{.erledigt} +::: + +:::{.no-print} +<< Zurück zu TODO: %section% +::: diff --git a/Info/9/3/Planet/algorithmik/for/wiederholung-mit-fester-anzahl.md b/Info/9/3/Planet/algorithmik/for/wiederholung-mit-fester-anzahl.md new file mode 100644 index 00000000..aa2ba8b0 --- /dev/null +++ b/Info/9/3/Planet/algorithmik/for/wiederholung-mit-fester-anzahl.md @@ -0,0 +1,160 @@ +--- +section: Wiederholung mit fester Anzahl +title: Wiederholung mit fester Anzahl +--- +:::{.terminal} +Die letzten interessanten Gesteine bevor wir die Höhle erreichen liegen am Ende merkwürdig regelmäßiger Täler. +Die Länge der Täler nimmt jedes mal um einen Hügel zu. + +[_]{.blink} +::: + +Leider hat das letzte Team es wieder nicht über einen Vorschlag hinaus geschafft. +Sie haben vorgeschlagen eine Wiederholung zu verwenden die **mitzählt**. +Folgendes Struktogram haben sie uns zugeschickt: + +::: {.columns} +:::: {.column width=50%} +![](img/strange-valleys.png){.center} +:::: + +:::: {.column width=50%} +![](img/regelmaesige-taeler-struktogram.svg){.center} +:::: +::: + +:::{.merke data-class="Merke: Zählwiederholung"} +Eine **Zählwiederholung** (engl. `for`), wiederholt [**Anweisungen**]{color="orange"} solange eine [**Bedingung**]{color="magenta"} erfüllt ist. +Nach jeder Wiederholung wird gezählt bis die Bedingung **nicht** mehr erfüllt ist. +Im Normalfall zählt sie wie oft die Anweisungen bereits wiederholt wurden. + +::: {.columns} +:::: {.column width=50%} + +for([Deklaration]{color="teal"} und [Initialisierung Zählvariable]{color="teal"}; [Bedingung]{color="magenta"}; [Zählschritt]{color="purple"}) +{
+[Anweisungen]{style="color: orange; margin-left: 20px;"}
+} +
+:::: + +:::: {.column width=50%} +![](for-struktogramm.svg) +:::: +::: + +::: + +:::{.aufgabe data-class="Aufgabe 6.2.1"} +In der Online-IDE findest du in der Klasse `Rover` die Methode `sammleGesteinAusTaelern(int anzahlTaeler)`{.java}, mit der der Rover aus genau `anzahlTaeler` Taelern Gestein aufsammeln soll. +Die Eingabe `anzahlTaeler`, die beim Methodenaufruf angegeben werden muss, legt fest wie viele Steine gesammelt werden sollen. + +::: {.columns} +:::: {.column width=70%} +Vervollständige die Methode `sammleGesteinausTaelern` der Klasse `Rover` und teste deine Implementierung in der Datei `RegelmaesigeTaeler`. +:::: + +:::: {.column width=30%} +![](img/oide-regelmaesigeTaeler.png) +:::: +::: + +:::{.Tipp} +**Tipp**: Orientiere dich an dem vorgeschlagenen Struktogramm des letzten Teams. + +Die Online-IDE schlägt dir eine häufige Form der Zählwiederholung vor. +Dabei startet die Zählvariable `i` bei `0` und wird bis `10` um `1` pro Wiederholung hochgezählt. + +![](img/oide-for-suggestion.png){.center} +::: + +::: + +:::{.aufgabe data-class="Aufgabe 6.2.2"} +::: {.columns} +:::: {.column width=60%} +Analysiere die Arbeitsweise der folgenden Methode, indem du die Planetenwelt nach Ausführung der Methode skizzierst. + +```{.include} +algorithmik/for/hokuspokus.md.part +``` + +:::{.tipp} +**Hinweis:** `i++`{.java} ist die Kurzschreibweise von `i = i + 1`{.java} und wird häufig in Zählwiederholungen verwendet. +::: + +Überprüfe deine Lösung unter: + +:::::{style="display: flex; align-items: center; margin-top: -1rem;"} +![](img/h5p-logo.svg){style="margin-right: 0.3em;"} + +Planet: hokuspokus +::::: +:::: + +:::: {.column width=40%} +![](img/hokuspokus.png) +:::: +::: +::: + +:::{.aufgabe data-class="Aufgabe 6.2.3"} +Ändere die Methode `hokuspokus` aus der **Aufgabe 6.2.2** in der Klasse `Rover` so ab, dass der Benutzer die Seitenlänge des Quadrates eingeben muss. + +::::{.tipp} +**Hnweis:** In Methoden Schreiben, hast du gelernt wie man eine Methode mit einem Eingabeparameter definiert. +:::: +::: + +:::{.aufgabe data-class="Aufgabe 6.2.4"} +Der Rover steht vor einer Gesteinsreihe. +Er weiß nicht, wie viele Steine vor ihm liegen. +Er soll alle vor ihm liegende Gesteine aufheben. +Anschließend soll er wieder zum Startpunkt zurückkehren. +(**Hinweis**: Das Setzen von Marken ist in dieser Aufgabe verboten.) + +Implementiere eine Methode, die das folgende Problem löst. +::: + +:::{.aufgabe data-class="Aufgabe 6.2.5"} +::: {.columns} +:::: {.column width=50%} +Implementiere einen Methode, mit der eine eckige Marken-Spirale gelegt wird. +:::: + +:::: {.column width=50%} +![](spirale.svg) +:::: +::: +::: + +:::{.aufgabe data-class="Aufgabe 6.2.6"} +::: {.columns} +:::: {.column width=50%} +Analysiere die Arbeitsweise der folgenden Methode, indem du die Planetenwelt nach Ausführung der Methode skizzierst. + +Überprüfe deine Lösung unter: + +:::::{style="display: flex; align-items: center; margin-top: -1rem;"} +![](img/h5p-logo.svg){style="margin-right: 0.3em;"} + +Planet: fidibus +::::: +:::: + +:::: {.column width=50%} +```{.include} +algorithmik/for/fidibus.md.part +``` +:::: +::: + +![](img/fidibus.png){.center} +::: + +:::{.erledigt} +::: + +:::{.no-print} +<< Zurück zu TODO: %section% +::: -- cgit v1.2.3