Unterabschnitte


Ein bisschen Theorie


Was sind Struktogramme

Struktogramme, auch Nassi-Shneiderman-Diagramme genannt, sind eine grafische Darstellungsmethode von Programmen im Sinne der strukturierten Programmierung.
Jeder Arbeitsschritt (hier Aktion genannt) eines Programmes bildet einen Strukturblock. Algorithmen stellen Kombinationen von Strukturblöcken dar. Die möglichen Kombinationen in Struktogrammen entsprechen den Steuerstrukturen der strukturierten Programmierung.


Erläuterung der Steuerstrukturen

Sequenz.
Sie stellt eine Aneinanderreihung von Aktionen dar. Dies

Struktogramm


\begin{struktogramm}(40,15)%[Sequenz] \descriptionindent=.5em \descriptionwidth=... ...ssign{Aktion 1} \assign{Aktion 2} \assign{} \assign{Aktion n} \end{struktogramm}


entspricht einer Ausführung der Aktionen in der angegebenen Reihenfolge ( $ \hookrightarrow$ Struktogramm 2).
Alternative.
Die Alternative erfordert das Abprüfen einer Bedingung, von deren Erfülltsein das Auswählen von Aktionen abhängt. Bei der vollständigen Alternative (binäre Auswahl) wird in Abhängigkeit vom Erfülltsein einer Bedingung eine von zwei Aktionen ausgeführt ( $ \hookrightarrow$ Struktogramm 3).
Fallauswahl.
Eine Erweiterung stellt die Fallauswahl dar ( $ \hookrightarrow$ Struktogramm 4). Jede der möglichen auswählbaren Aktionen wird durch einen Kennwert charakterisiert. Bei Programmausführung wird über den Wert des Fallausdrucks die Aktion ausgewählt und ausgeführt, deren Kennwert mit dem Wert des Fallausdrucks übereinstimmt. Wird keine Übereinstimmung erreicht, wird die zu sonst gehörende Aktion ausgeführtB.1.


Struktogramm


\begin{struktogramm}(42,20)%[vollst''andige Alternative] \descriptionindent=.5em... ...{Ja}{Nein} \assign{Aktion 1} \change \assign{Aktion 2} \ifend \end{struktogramm}


\begin{struktogramm}(90,20)%[Fallauswahl] \descriptionindent=.5em \descriptionwi... ...itch{\ldots} \assign{} \switch{kn} \assign{Aktion n} \caseend \end{struktogramm}


Schleifen.
Sie ermöglichen ein wiederholtes Ausführen von Aktionen unter Auswertung von Schleifenbedingungen. In Abhängigkeit davon, wann und wie die Schleifenbedingung formuliert ist, unterscheidet man verschiedene Schleifen ( $ \hookrightarrow$ Struktogramm 5). Bei Abweisschleifen (kopfgesteuerte Schleifen) wird vor jedem Schleifendurchlauf geprüft, ob die Ausführbedingung erfüllt ist. Der Extremfall ist das nullmalige Ausführen einer Schleife.

Bei Wiederholschleifen (fussgesteuerte Schleifen) wird nach jedem Schleifendurchlauf geprüft, ob die Abbruchbedingung erreicht ist oder die Schleife wiederholt zu durchlaufen ist. Die Schleife wird mindestens einmal durchlaufen.

Ein Beispiel zeigt Struktogramm 6.


Struktogramm


\begin{struktogramm}(40,10)%[abweisende WHILE-Schleife] \descriptionindent=.5em ... ...nwidth=60pt \while{while bedingung} \assign{Aktion} \whileend \end{struktogramm}


\begin{struktogramm}(50,10)%[Wiederhol-Schleife] \descriptionindent=.5em \descri... ...60pt \until{repeat until Bedingung} \assign{Aktion} \untilend \end{struktogramm}








\begin{struktogramm}(60,10)%[FOR-Schleife] \descriptionindent=.5em \descriptionw... ...iable $\hookleftarrow$ aw (sw) ew} \assign{Aktion} \whileend \end{struktogramm}

aw, sw, ew bedeuten Anfangswert, Schrittweite, Endwert


Struktogramm


\begin{struktogramm}(30,40)%[Summe von n Zahlen] \descriptionindent=.5em \descri... ...ssign{s $\hookleftarrow$ s + z} \whileend \assign{Ausgabe s} \end{struktogramm}


\begin{struktogramm}(30,40)%[Summe der n Zahlen] \descriptionindent=.5em \descri... ...ssign{i $\hookleftarrow$ i + 1} \whileend \assign{Ausgabe s} \end{struktogramm}



Strukturierte Programmierung

Strukturierte Programmierung. Sie stellt eine systematische Entwicklungsmethode für Einzelprogramme dar und wird auch als systematisches Programmieren bezeichnet.

Die strukturierte Programmierung beinhaltet das Top-down-Vorgehen beim Erarbeiten eines Algorithmus unter Verwendung der Steuerstrukturen und anschließendes Formulieren in einer Programmiersprache, die möglichst solche Steuerstrukturen enthält. Das trifft beispielsweise auf Pascal zu. Ansonsten sollten die Steuerstrukturen mit anderen Anweisungen nachgebildet werden.

Diese Methode wurde etwa 1970 entwickelt. Sie war der Beginn des ingenieurmäßigen Vorgehens bei der Erstellung von Programmen.

Top-Down-Entwicklung. Top-down (von oben nach unten) bedeutet vom Groben zum Feineren bzw. vom Allgemeinen zum Detaillierten und wird auch als schrittweise Verfeinerung bezeichnet.

Für die Lösung eines Problems bedeutet die Top-down-Entwicklung das wiederholte Zerlegen des Problemes in Teilprobleme und Beziehungen zwischen diesen so lange, bis die Teilprobleme lösbar sind, d.h. Algorithmen aufstellbar oder vorhandene nutzbar sind. Die Zerlegung ist problemabhängig. Die Menge der Einzellösungen bildet, durch Steuerstrukturen kombiniert, die Lösung des Problems.

Das Top-down-Vorgehen führt zu gut gegliederten Programmen. Es fördert das Bereitstellen und Nutzen von allgemeingültigen Teilleistungen, möglichst sofort in einer Programmiersprache.

Bottom-Up-Entwicklung. Das Gegenstück zur Top-down-Vorgehensweise stellt die Bottom-up-Entwicklung dar. Hier wird versucht, überschaubare Teilprobleme zu lösen bzw. vorhandene Lösungen für solche zu nutzen und durch Zusammensetzen schrittweise das Gesamtproblem zu lösen.

In der Praxis ist ein Kompromiß zwischen beiden Arbeitsprinzipien oft zweckmäßig, der in einem wiederholten Wechsel zwischen den Prinzipien besteht und als Jo-Jo-Verfahren bezeichnet wird.




> Informationen ||  < Die Dokumenttypdefinitionen
© 2002 DokuTransData, Aachen
2002-11-13
Jürgen A. Lamers