Zum Hauptinhalt springen

Algorithmen verfassen

Spezielle Sprachen

Algorithmen werden oft in einer Fachsprache oder in einer symbolischen Sprache verfasst. Damit lassen sich die einzelnen Schritte eines Algorithmus oft klarer und kürzer ausdrücken als in der Alltagssprache. Beispiele für solche Sprachen sind:

  • Die Notenschrift ist eine symbolische Sprache, in welcher die zu spielende Musik kompakt festgehalten werden kann.
  • Rezepte sind normalerweise in einer Fachsprache verfasst, welche Fachbegriffe wie «Schnee», «schlagen» oder «Glasieren» und Mengenangaben wie «TL» oder «Prise» enthält.
  • Bauanleitungen, z.B. IKEA-Anleitungen zum Zusammenbau von Möbeln sind in einer nonverbalen Zeichensprache verfasst.

Schritt

Wie die einzelnen Schritte eines Algorithmus lauten, hängt stark vom Gebiet ab, für welches der Algorithmus verwendet wird. Die Einzelschritte beim Spielen eines Musikstücks unterscheiden sich stark von den Schritten beim Kochen.

Eine wichtige Eigenschaft von Algorithmen ist die Ausführbarkeit. Sie bedeutet, dass jeder einzelne Schritt eines Algorithmus klar definiert sein muss und ausgeführt werden kann. Da eine klare Definition in Alltagssprache oft umfangreich ist, kommt hier die Fachsprache oder die symbolische Sprache zum Zug.

Struktur

Ein Algorithmus definiert, in welcher Reihenfolge die einzelnen Schritte nacheinander abgearbeitet werden. Die Beschreibung dieser Reihenfolge ist die Struktur des Algorithmus. Während die Einzelschritte je nach Anwendungsgebiet unterschiedlich sind, sind die Strukturen (beim Programmieren spricht man von Kontrollstrukturen) von Algorithmen universell.

Folgende Strukturen können unterschieden werden:

  • Sequenz 👣: eine Folge von Schritten/Anweisungen, die nacheinander abgearbeitet werden.
  • Schleife («Wiederholung») 🔁: Einer oder mehrere Schritte werden eine bestimmte Anzahl mal wiederholt.
  • Bedingte Ausführung / Verzweigung ⑂: Einer oder mehrere Schritte werden nur ausgeführt, wenn eine bestimmte Bedingung erfüllt ist. Es können, je nach Bedingung, auch unterschiedliche Schritte ausgeführt werden (Verzweigung).
  • Unterprogramm 🏷: Eine Sequenz kann mit einem Namen versehen werden. Anstatt immer die ganze Sequenz aufzuschreiben, kann der Name angegeben werden.
  • Parameter ⊕ ⊖: Das Ergebnis eines Algorithmus kann variiert werden durch Werte, welche bei jeder Ausführung neu festgelegt werden.

Aufgaben

Bei der Schoggi-Schatzsuche haben Sie einen Algorithmus erstellt, mit dem man den Weg zu einem Schoggi-Schatz finden kann. Dabei haben Sie die Schritte ausschliesslich als Sequenz aufgeschrieben. Die erlaubten Schritte waren:

  • Schritt: Gehe einen Schritt nach vorne.
  • Links: Drehe dich um 90° nach links.

Andere Befehle und Ausdrücke waren nicht erlaubt.

Schleifen und bedingte Ausführung

Nun wollen wir die Regeln der Schoggi-Schatzsuche etwas erweitern, um das Verfassen der Such-Anleitungen einfacher zu machen. Überlegen Sie sich dazu zuerst, wie Sie folgende Strukturen hätten einsetzen können:

  • Schleife: «Wiederhole 3x», «Wiederhole, solange…»
  • Bedingte Ausführung: «Wenn…, dann…»

Geben Sie für diese beiden Strukturen je zwei Beispiele, wie Sie diese in Ihren Schatzsuch-Anleitungen hätten nutzen können:

Laden...
Laden...
Unterschied Schleife und bedingte Ausführung

Obwohl die Schleife und die bedingte Ausführung einige Gemeinsamkeiten haben, sind das zwei sehr unterschiedliche Strukturen. Überlegen Sie sich, wie sich die beiden Strukturen unterscheiden.

Laden...
Laden...
Unterprogramm hinzufügen

Ein Unterprogramm fasst eine Sequenz von Schritten zusammen und gibt ihr einen Namen. Wir kreieren damit also einen neuen Befehl, der aus mehreren Schritten besteht. Diesen neuen Befehl können wir anschliessend als einzelnen Schritt in unseren Anleitungen verwenden.

Hinweis: Ein Unterprogramm kann auch Schleifen und bedingte Ausführungen / Verzweigungen enthalten.

Überlegen Sie sich nun eine Sequenz von Schritten, die man zu einem Unterprogramm zusammenfassen könnte. Schreiben Sie den Namen des Unterprogramms und die Schritte auf, die es ausführen soll und erklären Sie kurz, weshalb dieses Unterprogramm bei der Schoggi-Schatzsuche nützlich wäre:

Laden...
Laden...
⭐️ Parameter einsetzen

Überlegen Sie sich zum Schluss, wie man bei der Schatzsuch-Anleitung einen Parameter hätte einsetzen können:

Laden...
Laden...