Bedingte Wiederholung: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{subst::Bedingte Anweisung}}“) |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Eine [[bedingte | Eine [[bedingte Wiederholung]] ist eine [[Anweisung]] oder eine [[Sequenz]] von Anweisungen, die immer wieder ausgeführt wird, solange eine angegebene [[Wahrheitswert|Bedingung]] erfüllt ist. Im Unterschied zur [[Bedingte Anweisung|bedingten Anweisung]] wird die bedingte Wiederholung nicht nur einmal, sondern immer wieder ausgeführt. | ||
Bedingungen können mit [[Boolesche Operatoren|Operatoren]] wie '''NICHT''', '''UND''' und '''ODER''' miteinander verbunden werden. Beispiele: | Bedingungen können mit [[Boolesche Operatoren|Operatoren]] wie '''NICHT''', '''UND''' und '''ODER''' miteinander verbunden werden. Beispiele: | ||
*" | *"Solange es regnet, bleibe ich im Haus." | ||
*" | * "Solange ich '''nicht''' 18 bin, trinke ich keinen Schnaps." | ||
==Beschreibungen von Algorithmen== | ==Beschreibungen von Algorithmen== | ||
Zeile 16: | Zeile 11: | ||
In [[Programmablaufplan|Programmablaufplänen]] wird eine Raute verwendet, um eine bedingte Anweisung bzw. bedingte Verzweigung zu beginnen: | In [[Programmablaufplan|Programmablaufplänen]] wird eine Raute verwendet, um eine bedingte Anweisung bzw. bedingte Verzweigung zu beginnen: | ||
{{Hinweisbaustein|style=border: none; padding: none | {{Hinweisbaustein | ||
|INHALT= | | style = border: none; padding: none | ||
| INHALT = {{Thumbnailbox|ALIGN=left|CLASS=noclear|INHALT=<mermaid> | |||
{{Thumbnailbox|ALIGN=left|CLASS=noclear|INHALT=<mermaid> | |||
graph TD | graph TD | ||
start(["Start"]) --> bedingung{" | start(["Start"]) --> bedingung{"Regnet es?"} --ja--> anweisung["Warte"] --> bedingung --nein--> ende(["Ende"]) | ||
bedingung --nein--> | |||
</mermaid> | </mermaid> | ||
|CAPTION=Eine bedingte | |CAPTION=Eine bedingte Wiederholung}} | ||
}} | }} | ||
===Pseudocode=== | ===Pseudocode=== | ||
Im [[Pseudocode]] werden die Schlüsselwörter <code> | Im [[Pseudocode]] werden die Schlüsselwörter <code>while</code>, <code>do</code> und <code>endwhile</code> verwendet, um die bedingte Wiederholung umzusetzen. | ||
<syntaxhighlight lang="text" line="1"> | |||
while es regnet | |||
do warte | |||
endwhile | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 48: | Zeile 32: | ||
===Scratch=== | ===Scratch=== | ||
In [[Scratch]] gibt es den | In [[Scratch]] gibt es den Wiederhole-Bis-Block, um bedingte Wiederholungen umzusetzen: | ||
<scratchblocks> | <scratchblocks> | ||
wiederhole bis <wird [andere Figur v] berührt> | |||
gehe [10] er Schritt | |||
ende | |||
sage [Entschuldigung!] | sage [Entschuldigung!] | ||
</scratchblocks> | </scratchblocks> | ||
{{Achtung|In Scratch wird die bedingte Anweisung nicht ausgeführt, '''solange''' die Bedingung erfüllt ist, sondern '''bis''' sie erfüllt ist, also solange sie '''nicht''' erfüllt ist. Das ist in anderen Sprachen anders!}} | |||
===AppInventor – TO DO AB HIER!!!=== | |||
Im [[AppInventor]] gibt es in der Kategorie ''Steuerung'' die Blöcke ''Wenn-Dann'', ''Wenn-Dann-Sonst'' und ''Wenn-Dann-Sonst-Wenn''. Tatsächlich ist das alles derselbe Block, der mit einem blauen Zahnrad-Button beliebig erweitert oder verkleinert werden kann, um beliebig viele Bedingungen zu überprüfen. | Im [[AppInventor]] gibt es in der Kategorie ''Steuerung'' die Blöcke ''Wenn-Dann'', ''Wenn-Dann-Sonst'' und ''Wenn-Dann-Sonst-Wenn''. Tatsächlich ist das alles derselbe Block, der mit einem blauen Zahnrad-Button beliebig erweitert oder verkleinert werden kann, um beliebig viele Bedingungen zu überprüfen.<gallery> | ||
<gallery> | |||
Datei:Blockly If.png|Die einfachste '''bedingte Anweisung''': Der Wenn-Dann-Block | Datei:Blockly If.png|Die einfachste '''bedingte Anweisung''': Der Wenn-Dann-Block | ||
Datei:Blockly If Else.png|Der Wenn-Dann-Sonst-Block ermöglicht eine '''bedingte Verzweigung''' | Datei:Blockly If Else.png|Der Wenn-Dann-Sonst-Block ermöglicht eine '''bedingte Verzweigung''' | ||
Zeile 74: | Zeile 51: | ||
</gallery> | </gallery> | ||
=== NEPO === | ===NEPO=== | ||
In [[NEPO]] sehen die entsprechenden Blöcke so ähnlich aus wie im AppInventor. Sie befinden sich in der Kategorie ''Kontrolle''. | In [[NEPO]] sehen die entsprechenden Blöcke so ähnlich aus wie im AppInventor. Sie befinden sich in der Kategorie ''Kontrolle''. | ||
<gallery> | <gallery> | ||
Zeile 82: | Zeile 59: | ||
</gallery> | </gallery> | ||
==Textuelle Programmierung== | ==Textuelle Programmierung == | ||
===Python=== | ===Python === | ||
In [[Python (Programmiersprache)|Python]] werden die Schlüsselwörter <code>if</code>, <code>elif</code> und <code>else</code> benutzt, um bedingte Anweisungen und bedingte Verzweigungen umzusetzen.<syntaxhighlight lang="python" line="1"> | In [[Python (Programmiersprache)|Python]] werden die Schlüsselwörter <code>if</code>, <code>elif</code> und <code>else</code> benutzt, um bedingte Anweisungen und bedingte Verzweigungen umzusetzen.<syntaxhighlight lang="python" line="1"> | ||
if n > 0: | if n > 0: | ||
Zeile 102: | Zeile 79: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Java, JavaScript, C usw. === | ===Java, JavaScript, C usw. === | ||
In den "Curly-Bracket-Sprachen" werden nur die Schlüsselwörter <code>if</code> und <code>else</code> verwendet. Anders als bei Python müssen alternative Abfragen geschachtelt werden.<syntaxhighlight lang="c" line="1"> | In den "Curly-Bracket-Sprachen" werden nur die Schlüsselwörter <code>if</code> und <code>else</code> verwendet. Anders als bei Python müssen alternative Abfragen geschachtelt werden.<syntaxhighlight lang="c" line="1"> | ||
if (n > 0) { | if (n > 0) { | ||
Zeile 125: | Zeile 102: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Weblinks == | ==Weblinks== | ||
* [https://www.python-kurs.eu/bedingte_anweisungen.php Bedingte Anweisungen auf Python-Kurs.eu {{Flagge|DE}}] | *[https://www.python-kurs.eu/bedingte_anweisungen.php Bedingte Anweisungen auf Python-Kurs.eu {{Flagge|DE}}] | ||
{{Navigationsleiste Bestandteile von Algorithmen}} | {{Navigationsleiste Bestandteile von Algorithmen}} | ||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] | ||
[[Kategorie:Algorithmen]] | [[Kategorie:Algorithmen]] |
Version vom 18. März 2024, 17:16 Uhr
Eine bedingte Wiederholung ist eine Anweisung oder eine Sequenz von Anweisungen, die immer wieder ausgeführt wird, solange eine angegebene Bedingung erfüllt ist. Im Unterschied zur bedingten Anweisung wird die bedingte Wiederholung nicht nur einmal, sondern immer wieder ausgeführt.
Bedingungen können mit Operatoren wie NICHT, UND und ODER miteinander verbunden werden. Beispiele:
- "Solange es regnet, bleibe ich im Haus."
- "Solange ich nicht 18 bin, trinke ich keinen Schnaps."
Beschreibungen von Algorithmen
Programmablaufpläne
In Programmablaufplänen wird eine Raute verwendet, um eine bedingte Anweisung bzw. bedingte Verzweigung zu beginnen:
Pseudocode
Im Pseudocode werden die Schlüsselwörter while
, do
und endwhile
verwendet, um die bedingte Wiederholung umzusetzen.
while es regnet
do warte
endwhile
Visuelle Programmierung
Scratch
In Scratch gibt es den Wiederhole-Bis-Block, um bedingte Wiederholungen umzusetzen:
wiederhole bis <wird [andere Figur v] berührt> gehe [10] er Schritt ende sage [Entschuldigung!]
In Scratch wird die bedingte Anweisung nicht ausgeführt, solange die Bedingung erfüllt ist, sondern bis sie erfüllt ist, also solange sie nicht erfüllt ist. Das ist in anderen Sprachen anders!
AppInventor – TO DO AB HIER!!!
Im AppInventor gibt es in der Kategorie Steuerung die Blöcke Wenn-Dann, Wenn-Dann-Sonst und Wenn-Dann-Sonst-Wenn. Tatsächlich ist das alles derselbe Block, der mit einem blauen Zahnrad-Button beliebig erweitert oder verkleinert werden kann, um beliebig viele Bedingungen zu überprüfen.
NEPO
In NEPO sehen die entsprechenden Blöcke so ähnlich aus wie im AppInventor. Sie befinden sich in der Kategorie Kontrolle.
Textuelle Programmierung
Python
In Python werden die Schlüsselwörter if
, elif
und else
benutzt, um bedingte Anweisungen und bedingte Verzweigungen umzusetzen.
if n > 0:
print('n ist positiv')
if n > 0:
print('n ist positiv')
else:
print('n ist nicht positiv')
if n > 0:
print('n ist positiv')
elif n == 0:
print('n ist 0')
else:
print('n ist negativ')
Java, JavaScript, C usw.
In den "Curly-Bracket-Sprachen" werden nur die Schlüsselwörter if
und else
verwendet. Anders als bei Python müssen alternative Abfragen geschachtelt werden.
if (n > 0) {
printf("n ist positiv.");
}
if (n > 0) {
printf("n ist positiv.");
} else {
printf("n ist nicht positiv.");
}
if (n > 0) {
printf("n ist positiv.");
} else {
if (n > 0) {
printf("n ist negativ.");
} else {
printf("n ist 0.");
}
}