{{tag>Algorithmierung Algorithmus Struktogramm Programmablaufplan PAP}}
====== Algorithmierung: Verbale Darstellungsformen ======
===== Verbale Darstellungsformen von Algorithmen =====
**Informiere** dich in der folgenden Übersicht über die verschiedenen Darstellungsformen von Algorithmen.
=== umgangsprachlich (Fließtext, strukturiert) ===
>Umgangssprachlich formulierte Algorithmen versuchen, die Idee eines Algorithmus zu beschreiben, ohne strenge Formalien in der Darstellung zu beachten.(([[https://www.inf-schule.de/algorithmen/algorithmen/algorithmusbegriff/exkurs_darstellung|inf-schule.de: umgangssprachliche Darstellungsform]]))
=== Pseudocode ===
>Häufig formuliert man Algorithmen auch in einer Sprache, die sich stark an gängige Programmiersprachen anleht, ohne alle Vorgaben der Programmiersprache strikt zu beachten.(([[https://www.inf-schule.de/algorithmen/algorithmen/algorithmusbegriff/exkurs_darstellung|inf-schule.de: Pseudocode]]))
Beispiel: Ein Quiz-Spiel in Pseudocode(([[https://scratch-dach.info/wiki/Pseudocode|Pseudocode Quiz-Spiel]]))
WENN Programm beginnt:
WIEDERHOLE 10 mal:
stelle eine Zufallsfrage
warte auf Antwort
FALLS Antwort richtig DANN:
bestätige Antwort
gebe einen Punkt
ANSONSTEN:
nenne richtige Antwort
beende das Programm
=== Programmcode ===
>Als Programmcode werden die Anweisungen bezeichnet, die [...] für ein bestimmtes Computerprogramm [...] entstehen und [in einer bestimmten Programmiersprache geschrieben sind]. (([[https://de.wikipedia.org/wiki/Programmcode|Wikipedia - Programmcode]]))
Beispiel: Eine Funktion in der Sprache Python, welche die Fakultät einer natürlichen Zahl berechnet
def fak(n):
if n==0:
return 1
else:
return n * fak(n-1)
n = int(input("n = "))
print("fak(n) = ", fak(n))
===== Kontrollstrukturen =====
**Informiere** dich in der folgenden Übersicht über die 3 grundlegenden Kontrollstrukturen für Algorithmen.
=== Sequenz ===
Die Sequenz ist die einfachste Form seine Programmanweisungen zu steuern. In einer Sequenz werden mehrere Anweisungen hintereinander ausgeführt, z.B. so:
Zahnbürste aus Becher nehmen
Zahnbürste anfeuchten
Zahnpaste auf Zahnbürste auftragen
Zähne putzen
...
=== Verzweigung ===
In einer Verzweigung sind nach Prüfung einer Bedingung zwei unterschiedliche Programmabläufe möglich. Welche der beiden Programmabläufe eintritt, wird danach entschieden, ob die Bedingung erfüllt ist oder nicht, z.B.:
WENN es draußen regnet DANN:
ziehe Gummistiefel an
packe Regenschirm ein
ANSONSTEN:
ziehe Turnschuhe an
setze Sonnenhut auf
//Beachte die unterschiedliche Einrückung der Anweisungen (Zeilen). Damit können Programmteile übersichtlicher voneinander getrennt werden. In einigen Programmiersprachen ist eine korrekte Einrückung Pflicht - bei Fehlern kann das Programm nicht ausgeführt werden.//
=== Schleife (Zyklus) ===
In einer Schleife können Anweisungen wiederholt ausgeführt werden. Es gibt verschiedene Arten von Schleifen, z.B. kann die Ausführung der Wiederholung an eine Bedingung geknüpft sein:
SOLANGE du Durst hast TUE:
trinke einen Schluck Wasser
Oder die Wiederholungen sind von Anfang an auf eine bestimmte Anzahl beschränkt:
WIEDERHOLE 100 mal:
gehe in die Hocke
führe einen Strecksprung aus
**Notiere** dir einen Algorithmus zur Lösung deines Problems "Ich erstelle meinen Wochenlernplan aus den LernSax-Lernplänen".\\ \\
Schreibe dein Vorgehen in der Darstellungsform Pseudocode.\\
Beachte die Großschreibung von Kontrollanweisungen.