Grundbausteine eines Algorithmus


In den letzten Übungen haben Sie sich mit einigen Algorithmen beschäftigt, darüber gesprochen, diese beschrieben und Ablaufdiagramme entworfen. Im Entwicklungsprozess ist es wichtig, dass alle Beteiligten wissen, von was man spricht. Fachbegriffe, deren Bedeutung klar festgelegt ist, können dabei helfen, dass jedes Teammitglied weiß, von was der andere spricht.


Grundbaustein 1: Anweisung

Das grundlegendste Element eines Algorithmus ist die Anweisung. Anweisungen kennen Sie als Schülerin und Schüler zur Genüge. Eltern, Lehrkräfte, Trainer*innen,... alle wollen Ihnen sagen, was Sie zu tun haben. Das wird erst besser, wenn Sie volljährig sind. Aber auch dann haben Sie noch Chefs, Behörden,... von denen Sie Anweisungen bekommen.

In diesem Kurs können Sie bald selbst ausgiebig Anweisungen geben. Ihr Anweisungsempfänger wird der Computer sein. Sie haben bestimmt bereits ausgiebig Computern Anweisungen gegeben (z.B. "versende eine Mitteilung an Bob mit der Info, dass ich später komme,...").

Leider ist ein Computer nicht sehr intelligent, er kann lediglich sehr schnell 1 und 1 addieren. Damit ein Smartphone eine Mitteilung versenden kann, muss ein Programm programmiert worden sein, das dem Computer nur mit einer 1 und einer 0 klar macht, wie er eine Mitteilung versenden kann. Diesen Job erledigen Programmierinnen und Programmierer, die dafür spezielle Apps programmieren (Snapchat, Whatsapp, SimsMe,...). Sie werden bald sehen, wie das funktioniert.

Eine Anweisung nennt eine bestimmte Tätigkeit, die ausgeführt werden soll.

Beispiel: "Bring den Müll raus"

Bevor Sie eine solche Anweisung ausführen können, müssen Sie die Bedeutung der Worte kennen. Diese dürften Sie während Ihrer Kindheit gelernt haben.

  • Müll ist das, was man nicht mehr braucht und nicht aufheben möchte. Er befindet sich meistens in speziellen Behältern, den Mülleimern.
  • rausbringen bedeutet, dass draussen irgendwo eine große Mülltonne sein müsste, in die der Müllbeutel geworfen wird.
  • Jetzt muss Ihnen noch klar sein, welcher Müll in welche Tonne geworfen wird, auch das müssten Ihre Eltern Ihnen beigebracht haben.

Sie sehen, eine kurze Anweisung kann viel Wissen voraussetzen, damit sie richtig ausgeführt wird.


Grundbaustein 2: Sequenz

Viele Vorgänge in unserer Lebenswirklichkeit erfordern viele einzelne Schritte. Angenommen, Sie haben sturmfreie Bude, weil Ihre Eltern über das Wochenende verreist sind und Sie möchten zum Frühstück gerne ein hartgekochtes Ei essen. Im Internet finden Sie folgende Anleitung, die aus einer Sequenz (Aneinanderreihung) von Anweisungen besteht:

Beispiel: Hartgekochtes Ei

  • Bringe Wasser zum Kochen
  • Lege das rohe Ei vorsichtig mit Hilfe eines Esslöffels in das kochende Wasser
  • Lass das Ei 10 Minuten im kochenden Wasser kochen
  • Lass dann solange kaltes Wasser über das Ei fließen, bis dessen Temperatur angenehm ist.

Je komplexer eine Vorgang ist, desto mehr Anweisungen benötigt man, um diesen zu beschreiben. Man benötigt auch immer mehr Wissen, um bei den einzelnen Anweisungen zu verstehen, was man tun soll.


Grundelement 3: Verzweigung

In vielen Situationen kommt es vor, dass ein Algorithmus für verschiedene Situationen unterschiedlich abläuft. Dafür gibt es den Grundbaustein Verzweigung.

Beispiel: Wäsche waschen

Am sturmfreien Wochenende ist eine Party ganz leicht aus dem Ruder gelaufen und Sie müssen die Kissenüberzüge vom Sofa waschen. Auf dem Etikett steht "Buntwäsche 40°".

Auf der Waschmaschine steht dummerweise nichts von "Buntwäsche 40°". Als Programm haben Sie die Auswahl zwischen Baumwolle, Pflegeleicht, Feinwäsche, Wolle und Seide. Sie müssen eine Entscheidung treffen und je nach Entscheidung wird der Überzug sauber und unbeschädigt oder er wird sauber und dabei beschädigt oder er bleibt unbeschädigt, wird aber nicht sauber.

Sie entscheiden sich dafür, dass Sie der Meinung sind, dass der Bezug aus Baumwolle ist. Nachdem Sie das Baumwollprogramm eingestellt haben, verlangt die Waschmaschine weitere Entscheidungen:

  • Verschmutzungsgrad der Wäsche
  • Temperatur
  • Drehzahl beim Schleudern

Sie wählen das aus, was Sie für sinnvoll halten und hoffen, dass die Kissenbezüge sauber und unbeschadet die Waschmaschine verlassen werden.

Sie sehen, der Algorithmus, welcher die Waschmaschine steuert, erwartet von Ihnen einige Entscheidungen. Je nach Entscheidung läuft der Algorithmus anders ab. Man sagt, der Algorithmus verzweigt sich.


Grundbaustein 4: Schleife

Ein weiterer Grundbaustein eines Algorithmus ist die Schleife. Manche Sequenzen werden nach einer Verzweigung wiederholt.

Beispiel: Pfannkuchen

Algorithmus für das Ausbacken von 5 Pfannenkuchen:

  • Rühren Sie nach Rezept einen Pfannkuchenteig zusammen
  • Nehmen Sie eine Pfanne und erhitzen diese mit Stufe 6
  • Geben Sie etwas Backfett in die Pfanne
  • Geben Sie eine Kelle Teig in die Pfanne
  • Wenden Sie den Pfannkuchen, wenn der Teig durchgebacken ist
  • Nehmen Sie nach 2 min den Pfannkuchen aus der Pfanne
  • Geben Sie etwas Backfett in die Pfanne
  • Geben Sie eine Kelle Teig in die Pfanne
  • Wenden Sie den Pfannkuchen, wenn der Teig durchgebacken ist
  • Nehmen Sie nach 2 min den Pfannkuchen aus der Pfanne
  • Geben Sie etwas Backfett in die Pfanne
  • Geben Sie eine Kelle Teig in die Pfanne
  • Wenden Sie den Pfannkuchen, wenn der Teig durchgebacken ist
  • Nehmen Sie nach 2 min den Pfannkuchen aus der Pfanne
  • Geben Sie etwas Backfett in die Pfanne
  • Geben Sie eine Kelle Teig in die Pfanne
  • Wenden Sie den Pfannkuchen, wenn der Teig durchgebacken ist
  • Nehmen Sie nach 2 min den Pfannkuchen aus der Pfanne
  • Geben Sie etwas Backfett in die Pfanne
  • Geben Sie eine Kelle Teig in die Pfanne
  • Wenden Sie den Pfannkuchen, wenn der Teig durchgebacken ist
  • Nehmen Sie nach 2 min den Pfannkuchen aus der Pfanne
  • ...

Das ist unübersichtlich. Eleganter kann man es wie folgt formulieren:

Algorithmus für das Ausbacken von 5 Pfannenkuchen:

  • Rühren Sie nach Rezept einen Pfannkuchenteig zusammen
  • Nehmen Sie eine Pfanne und erhitzen diese mit Stufe 6
  • Wiederholen Sie folgende Anweisung 5 mal:
    • Geben Sie etwas Backfett in die Pfanne
    • Geben Sie eine Kelle Teig in die Pfanne
    • Wenden Sie den Pfannkuchen, wenn der Teig durchgebacken ist
    • Nehmen Sie nach 2 min den Pfannkuchen aus der Pfanne

Grundbausteine im Ablaufdiagramm

Am Beispiel des Siebs von Eratosthenes sollen die verschiedenen Elemente nochmals farblich unterschieden werden:

Abbildung 1

Quelltext: eratosthenes_farbe.zip

Sie können natürlich die Farben wählen, wie Sie möchten, solange Sie die Zuordnung festlegen und mitteilen.

Aufgabe 1:

Treffen Sie sich als das Team, mit dem Sie den Einkauf in einem Onlineshop als Algorithmus beschrieben haben.

Färben Sie das von Ihnen erstellte Ablaufdiagramm zum Einkauf in einem Onlineshop mit yEd Live, indem Sie für eine Anweisung, eine Sequenz, eine Verzweigung und eine Schleife jeweils eine andere Farbe verwenden. Definieren Sie die Farbgebung in einer Legende.

Speichern Sie das von Ihnen veränderte Ablaufdiagramm als GraphML-Datei mit dem Namen onlineshopping_farbe_name1_name2_name3.graphml und als Grafik mit dem Namen onlineshopping_farbe_name1_name2_name3.png in Ihrem Teamordner, wobei Sie für name1,... Ihre Namen einsetzen und lassen Sie Ihre Lösung der Lehrkraft zukommen.

(Wert: 5 XP)


Anwendungsbeispiel: Getränkeautomat

Aufgabe 2:

Erstellen Sie mit yEd Live für folgende Situation ein passend gefärbtes Ablaufdiagramm, indem Sie für eine Anweisung, eine Sequenz, eine Verzweigung und eine Schleife jeweils eine andere Farbe verwenden.

Ein Getränkeautomat bietet folgende Getränke zum Kauf an:

  • Wasser (50 Ct)
  • Limo (1 €)
  • Saft (1 €)

Sie kaufen von jedem Getränk eine Flasche.

Speichern Sie das von Ihnen erstellte Ablaufdiagramm als GraphML-Datei mit dem Namen getraenkeautomat_name.graphml und als Grafik mit dem Namen getraenkeautomat_name.png in Ihrem Teamordner, wobei Sie für name Ihren Namen einsetzen und lassen Sie Ihre Lösung der Lehrkraft zukommen.

(Wert: 10 XP)