Bedingte Wiederholung: Unterschied zwischen den Versionen

Aus KGS-Wiki
(Die Seite wurde neu angelegt: „{{subst::Bedingte Anweisung}}“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Eine [[bedingte Anweisung]] ist eine [[Anweisung]] oder eine [[Sequenz]] von Anweisungen, die nur ausgeführt wird, wenn eine angegebene [[Wahrheitswert|Bedingung]] erfüllt ist. Falls zusätzlich dazu auch noch Anweisungen vorhanden sind, die ausgeführt werden sollen, wenn die Bedingung ''nicht'' erfüllt ist, spricht man von einer ''bedingten Verzweigung''.
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.
 
Ein umgangssprachliches Beispiel: ''"Nimm einen Schirm mit, falls es regnet!"''. Die Anweisung ''"Nimm einen Schirm mit"'' wird nur ausgeführt, wenn die Bedingung ''"es regnet"'' erfüllt ist.


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:


*"Wenn es '''nicht''' regnet, komme ich mit zu deinem Fußballspiel."
*"Solange es regnet, bleibe ich im Haus."
*"Zieh lieber Gummistiefel an, falls es regnet '''oder''' schneit."
* "Solange ich '''nicht''' 18 bin, trinke ich keinen Schnaps."
*"Wenn du Lust hast '''und''' am Donnerstag freikriegst, lass uns doch ins Kino gehen!"
 
Ein Beispiel für eine bedingte Verzweigung: "Wenn ich es zeitlich schaffe, koche ich uns Cannelloni, '''ansonsten''' schieben wir schnell eine Pizza in den Ofen."


==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
{{Thumbnailbox|ALIGN=left|CLASS=noclear|INHALT=<mermaid>
| INHALT = {{Thumbnailbox|ALIGN=left|CLASS=noclear|INHALT=<mermaid>
graph TD
start(["Start"]) --> bedingung{"Regnet es?"} --ja--> anweisung["Nimm einen Schirm mit"] --> ende(["Ende"])
bedingung --nein--> ende
</mermaid>
|CAPTION=Eine bedingte Anweisung}}
{{Thumbnailbox|ALIGN=left|CLASS=noclear|INHALT=<mermaid>
graph TD
graph TD
start(["Start"]) --> bedingung{"Habe ich<br>genug Zeit?"} --ja--> anweisung["Koche Cannelloni"] --> ende(["Ende"])
start(["Start"]) --> bedingung{"Regnet es?"} --ja--> anweisung["Warte"] --> bedingung --nein--> ende(["Ende"])
bedingung --nein--> alternative["Schiebe schnell eine Pizza in den Ofen"] --> ende
</mermaid>
</mermaid>
|CAPTION=Eine bedingte Verzweigung}}
|CAPTION=Eine bedingte Wiederholung}}
}}
}}


===Pseudocode===
===Pseudocode===


Im [[Pseudocode]] werden die Schlüsselwörter <code>if</code>, <code>then</code>, <code>else</code> und <code>endif</code> verwendet, um die bedingte Anweisung und die bedingte Verzweigung umzusetzen.<syntaxhighlight lang="text" line="1">
Im [[Pseudocode]] werden die Schlüsselwörter <code>while</code>, <code>do</code> und <code>endwhile</code> verwendet, um die bedingte Wiederholung umzusetzen.
if regnet
<syntaxhighlight lang="text" line="1">
then nimm Schirm mit
while es regnet
endif
do warte
</syntaxhighlight><code>else</code> leitet dabei den "Sonst"-Fall ein:<syntaxhighlight lang="text" line="1">
endwhile
if genug Zeit
then koche Cannelloni
else schiebe schnell Pizza in den Ofen
endif
</syntaxhighlight>
</syntaxhighlight>


Zeile 48: Zeile 32:


===Scratch===
===Scratch===
In [[Scratch]] gibt es den Falls-Dann-Block, um '''bedingte Anweisungen''' umzusetzen:
In [[Scratch]] gibt es den Wiederhole-Bis-Block, um bedingte Wiederholungen umzusetzen:
<scratchblocks>
<scratchblocks>
falls <wird [andere Figur v] berührt>, dann
wiederhole bis <wird [andere Figur v] berührt>
gehe [10] er Schritt
ende
sage [Entschuldigung!]
sage [Entschuldigung!]
</scratchblocks>
</scratchblocks>


Für '''bedingte Verzweigungen''' gibt es den Falls-Dann-Sonst-Block:
{{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!}}
<scratchblocks>
falls <(Bühnenbild [Nummer v]) = (4)>, dann
verstecke dich
sonst
zeige dich
</scratchblocks>
 
===AppInventor===


[[Datei:Blockly If Configure.gif|gerahmt|Mit dem blauen Zahnrad können ''Sonst''- und ''Sonst-Wenn''-Fälle zu einem ''Wenn-Dann''-Block hinzugefügt werden]]
===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!]
⚠️
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.

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.");
    }
}

Weblinks