Darstellung von Algorithmus
Das Problem
Wir bearbeiten weiterhin das folgende Suchproblem:
Gegeben sind eine Reihe von Schachteln, in denen sich jeweils eine nicht bekannte Menge Gold befindet.
Gesucht ist die Schachtel, in der sich die größte Goldmenge befindet. Wenn es mehrere Schachteln mit der größten Goldmenge gibt, dann reicht es, eine der Schachteln zu bestimmen.
Zur Vefügung steht eine Vergleichswaage, mit der man das Gewicht von zwei Schachteln vergleichen kann.
Es gibt eine Reihe von Möglichkeiten, einen Algorithmus zur Lösung des Problems zu formulieren.
Algorithmus - dargestellt in der Umgangssprache
Umgangssprachlich formulierte Algorithmen versuchen, die Idee eines Algorithmus zu beschreiben, ohne strenge Formalien in der Darstellung zu beachten.
Lege eine Schachtel auf eine Waagschale. Solange noch Schachteln vorhanden sind, wiederhole die folgenden Schritte: Greife eine Schachtel heraus und lege sie auf die leere Waagschale. Wenn die zuletzt auf die Waage gelegte Schachtel schwerer als die andere Schachtel ist, dann lege die andere Schachtel in die Ablage, sonst lege die zuletzt auf die Waage gelegte Schachtel in die Ablage. Wenn dann keine Schachtel mehr vorhanden ist, dann ist die verbleibende Schachtel auf der Waage die mit dem größten Gewicht.
Algorithmus - dargestellt in einer (Pseudo-)Programmiersprache
Algorithmen, die in einer Programmiersprache verfasst sind, können direkt getestet werden (sofern ein Ausführsystem für die Programmiersprache bereitsteht). Hier eine Darstellung, die mit den Einrückungen an Python angelehnt ist, aber auch noch zahlreiche umgangssprachliche Teile enthält.
Vorgabe: Eine Reihe von Schachteln lege eine Schachtel auf eine Waagschale SOLANGE noch Schachteln vorhanden sind: greife eine Schachtel heraus lege diese Schachtel auf die leere Waagschale WENN die zuletzt auf die Waage gelegte Schachtel schwerer als die andere Schachtel ist: lege die andere Schachtel in die Ablage SONST: lege die zuletzt auf die Waage gelegte Schachtel in die Ablage Ausgabe: die verbleibende Schachtel auf der Waage hat das größte Gewicht
Algorithmus - dargestellt als Struktogramm
Struktogramme benutzt man, um den strukturellen Aufbau eines Algorithmus deutlich zu machen. Hier ist insbesondere die Schachtelung der Kontrollstrukturen zur Ablaufmodellierung besonders gut zu erkennen.
Algorithmus - dargestellt als Flussdiagramm
Flussdiagramme eignen sich sehr gut, um den Ablauf bei Wiederholungen und Fallunterscheidungen zu veranschaulichen.