Lernpfad:LibreLogo für Fortgeschrittene/Verzweigungen: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) |
Jneug (Diskussion | Beiträge) |
||
| (11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 6: | Zeile 6: | ||
Der Aufbau ist in allen Programmiersprachen ähnlich: | Der Aufbau ist in allen Programmiersprachen ähnlich: | ||
{{ | {{Rahmen|WENN ''Bedingung''<br> | ||
DANN ''Anweisungen falls Bedingung wahr''<br> | DANN ''Anweisungen falls Bedingung wahr''<br> | ||
SONST ''Anweisungen falls Bedingung nicht wahr | SONST ''Anweisungen falls Bedingung nicht wahr''|Farbe={{Farbe:Grau}}}} | ||
== Bedingungen == | == Bedingungen == | ||
| Zeile 15: | Zeile 15: | ||
In einer Programmiersprache wie LibreLogo könnte so eine Aussage zum Beispiel lauten "''Der Turtle guckt gerade nach oben.''" oder "''Dies ist das zehnte Mal, dass die {{Pfad|Wiederholungen benutzen|Wiederholung}} ausgeführt wird.''". Jede dieser Bedingungen kann ''wahr'' oder ''falsch'' sein. | In einer Programmiersprache wie LibreLogo könnte so eine Aussage zum Beispiel lauten "''Der Turtle guckt gerade nach oben.''" oder "''Dies ist das zehnte Mal, dass die {{Pfad|Wiederholungen benutzen|Wiederholung}} ausgeführt wird.''". Jede dieser Bedingungen kann ''wahr'' oder ''falsch'' sein. | ||
== Wenn-Dann == | == Wenn-Dann Anweisung == | ||
Abhängig davon, ob eine Bedingung ''wahr'' oder ''falsch'' ist, kann der Turtle nun andere Anweisungen ausführen. Dazu schreibst du die Bedingung einfach hinter die <code>WENN</code> Anweisung und die Anweisungen einfach in eckige Klammern: | Abhängig davon, ob eine Bedingung ''wahr'' oder ''falsch'' ist, kann der Turtle nun andere Anweisungen ausführen. Dazu schreibst du die Bedingung einfach hinter die <code>WENN</code> Anweisung und die Anweisungen einfach in eckige Klammern: | ||
<code>WENN ''Bedingung'' [ ''Anweisungen'' ]</code> | <code>WENN ''Bedingung'' [ ''Dann-Anweisungen'' ]</code> | ||
== Was Sonst == | |||
Soll es auch einen ''Sonst''-Teil geben, dann werden die Anweisungen zwischen einem weiteren Paar eckiger Klammern (<code>[]</code> ergänzt. | |||
<code>WENN ''Bedingung'' [ ''Dann-Anweisungen'' ][ ''Sonst-Anweisungen'' ] </code> | |||
== Kombination mit Wiederholungen == | |||
Die Wenn-Dann-Anweisung lässt sich auch super mit {{Pfad|Wiederholungen benutzen|Wiederholungen}} kombinieren. Zum Beispiel könnte der Turtle bei jeder zweiten Wiederholung eine andere Drehung machen und so eine Zick-Zack-Linie laufen: | |||
<pre> | |||
WDH 10 [ | |||
VOR 0,5cm | |||
WENN ZÄHLER == 2 ODER ZÄHLER == 4 ODER ZÄHLER == 6 ODER ZÄHLER == 8 ODER ZÄHLER == 10 [ | |||
RE 30 | |||
] [ | |||
LI 30 | |||
] | |||
] | |||
</pre> | |||
{{Hinweis|<code>ZÄHLER</code> zählt, die wievielte Wiederholung der Anweisungen gerade ausgeführt wird. Näheres dazu findest du im Schritt {{Pfad|Wiederholungen benutzen}}.}} | |||
In der ''Bedingung'' oben werden mehrere Fälle überprüft und mit dem Wort <code>ODER</code> verknüpft. Bei der zweiten, vierten, sechsten, achten oder zehnten Wiederholung der Schleife wird die Anweisung <code>RE 30</code>, sonst die Anweisung <code>LI 30</code> ausgeführt. Man nennt <code>ODER</code> eine ''logische Verknüpfung''. Es gibt auch die Verknüpfung <code>UND</code>. | |||
=== Weiterführende Informationen === | |||
{{Collapse:Start}} | |||
==== Die Modulo Operation ==== | |||
Die Bedingung im Programm oben kann auch kürzer geschrieben werden. Vielleicht ist dir aufgefallen, dass die Zahlen in der Bedingung alle gerade sind. Wenn man eine gerade Zahl durch zwei teilt, dann bleibt der Rest null. Diese Rechnung kann Logo auch machen und anstatt jede gerade Zahl aufzulisten, kann die Bedingung einfach den Rest prüfen. Dazu gibt es die [[wikipedia:Division_mit_Rest#Modulo|Modulo-Operation]], die in Logo mit dem Prozentzeichen (<code>%</code>) geschrieben wird. | |||
Die Rechnung <code>4 % 2</code> ermittelt dann denn Rest bei einer Division mit Rest. Das Ergebnis ist also <code>0</code>. Die Rechnung <code>5 % 2</code> ergibt <code>1</code>, und so weiter. Ist die erste Zahl gerade, dann ergibt <code>Zahl % 2</code> also immer <code>0</code>. | |||
Nun kann man das Programm oben auch so schreiben: | |||
<pre> | |||
WDH 10 [ | |||
VOR 0,5cm | |||
WENN ZÄHLER % 2 == 0 [ | |||
RE 30 | |||
] [ | |||
LI 30 | |||
] | |||
] | |||
</pre> | |||
{{Collapse:End}} | |||
{{Inhalt/Übersicht}} | |||
Aktuelle Version vom 8. November 2021, 22:51 Uhr
Wenn-Dann-Sonst
Manchmal möchte man, dass der Turtle unterschiedliche Formen zeichnet, je nachdem, ob bestimmte Bedingungen eingetreten sind (wahr sind), oder nicht. In diesen Fällen helfen Verzweigungen oder auch Bedingte Anweisungen genannt.
Der Aufbau ist in allen Programmiersprachen ähnlich:
WENN Bedingung
DANN Anweisungen falls Bedingung wahr
SONST Anweisungen falls Bedingung nicht wahr
Bedingungen
Bedingungen sind Aussagen, die entweder wahr oder falsch sind. Zum Beispiel könnte eine solche Aussage "es regnet" sein. Wenn du aus dem Fenster schaust kannst du feststellen, ob diese Aussage jetzt gerade wahr oder falsch ist.
In einer Programmiersprache wie LibreLogo könnte so eine Aussage zum Beispiel lauten "Der Turtle guckt gerade nach oben." oder "Dies ist das zehnte Mal, dass die Wiederholung ausgeführt wird.". Jede dieser Bedingungen kann wahr oder falsch sein.
Wenn-Dann Anweisung
Abhängig davon, ob eine Bedingung wahr oder falsch ist, kann der Turtle nun andere Anweisungen ausführen. Dazu schreibst du die Bedingung einfach hinter die WENN Anweisung und die Anweisungen einfach in eckige Klammern:
WENN Bedingung [ Dann-Anweisungen ]
Was Sonst
Soll es auch einen Sonst-Teil geben, dann werden die Anweisungen zwischen einem weiteren Paar eckiger Klammern ([] ergänzt.
WENN Bedingung [ Dann-Anweisungen ][ Sonst-Anweisungen ]
Kombination mit Wiederholungen
Die Wenn-Dann-Anweisung lässt sich auch super mit Wiederholungen kombinieren. Zum Beispiel könnte der Turtle bei jeder zweiten Wiederholung eine andere Drehung machen und so eine Zick-Zack-Linie laufen:
WDH 10 [
VOR 0,5cm
WENN ZÄHLER == 2 ODER ZÄHLER == 4 ODER ZÄHLER == 6 ODER ZÄHLER == 8 ODER ZÄHLER == 10 [
RE 30
] [
LI 30
]
]
ZÄHLER zählt, die wievielte Wiederholung der Anweisungen gerade ausgeführt wird. Näheres dazu findest du im Schritt Wiederholungen benutzen.
In der Bedingung oben werden mehrere Fälle überprüft und mit dem Wort ODER verknüpft. Bei der zweiten, vierten, sechsten, achten oder zehnten Wiederholung der Schleife wird die Anweisung RE 30, sonst die Anweisung LI 30 ausgeführt. Man nennt ODER eine logische Verknüpfung. Es gibt auch die Verknüpfung UND.
Weiterführende Informationen
Die Modulo Operation
Die Bedingung im Programm oben kann auch kürzer geschrieben werden. Vielleicht ist dir aufgefallen, dass die Zahlen in der Bedingung alle gerade sind. Wenn man eine gerade Zahl durch zwei teilt, dann bleibt der Rest null. Diese Rechnung kann Logo auch machen und anstatt jede gerade Zahl aufzulisten, kann die Bedingung einfach den Rest prüfen. Dazu gibt es die Modulo-Operation, die in Logo mit dem Prozentzeichen (%) geschrieben wird.
Die Rechnung 4 % 2 ermittelt dann denn Rest bei einer Division mit Rest. Das Ergebnis ist also 0. Die Rechnung 5 % 2 ergibt 1, und so weiter. Ist die erste Zahl gerade, dann ergibt Zahl % 2 also immer 0.
Nun kann man das Programm oben auch so schreiben:
WDH 10 [
VOR 0,5cm
WENN ZÄHLER % 2 == 0 [
RE 30
] [
LI 30
]
]