Kapitel 1

1.1 (Strukturierte Programmierung)

 

Grundkonzepte der strukturierten Programmierung

Ziel der strukturierten Programmierung ist es, Algorithmen so darzustellen, daß ihr Ablauf einfach zu erfassen und zu verändern ist.
Die Grundkonzepte der strukturierten Programmierung wurden beginnend mit dem Ende der sechziger Jahre entwickelt und lassen sich mit folgenden Stichworten charakterisieren:

  • Bildung von logischen Programmeinheiten,

  • hierarchische Programmorganisation,

  • Definition einer zentralen Programmsteuerung,

  • Beschränkung der Ablaufsteuerung,

  • Beschränkung der Datenverfügbarkeit.

Die strukturierte Programmierung bedient sich im allgemeinen folgender Darstellungsmittel, die sich gegenseitig ergänzen können:

Grafische Darstellungsmittel

meist in Form von Struktogrammen (Nassi-Shneiderman-Diagramme), die verwendeten grafischen Symbole (Strukturblöcke) können sowohl formale als auch verbale Texte aufnehmen; für die verschiedenen Strukturblöcke existieren variierende Darstellungsformen.

 
Pseudocode

Mischung von formalen und verbalen Darstellungsmitteln in Textform,

 
Höhere Programmiersprache

moderne Sprach(version)en sind gut auf die Anforderungen der strukturierten Programmierung abgestimmt, für ältere Sprach(version)en trifft dies oft nicht zu.

Beachtet werden sollte, daß viele Sprachen die strukturierte Programmierung zwar unterstützen, gleichzeitg aber auch Mittel bereitstellen, deren Einsatz den Prinzipien der strukturierten Programmierung zuwiderläuft. Es liegt in der Verantwortung des Programmierers bzw. zusätzlicher Werkzeuge, Verstöße gegen die Prinzipien zu verhindern bzw. zu reduzieren.

Kommentare

Programme sollten grundsätzlich kommentiert werden. Dies betrifft zumindest die Angabe ihrer Funktion und die Beschreibung ihrer Schnittstelle nach außen. Weiterhin sollte der Programmablauf in seinen wichtigsten Schritten kommentiert werden. Bei Entscheidungen, deren Sinnfälligkeit nicht sofort offensichtlich ist, sollten Hintergrundinformationen ergänzt werden.
Für die syntaktische Darstellung von Kommentaren gibt es verschiedene typische Formen:

  • Eine Kommentaranweisung endet entweder prinzipiell mit dem Zeilenende oder mit einem speziellen Symbol, d.h. die Kommentaranweisung kann sich über mehrere Zeilen erstrecken.

  • Eine Kommentaranweisung erfordert entweder eine eigenständige Zeile oder kann innerhalb einer Zeile auf andere Anweisungen folgen (oder ihnen vorangehen).

Beispiel für Visual Basic

' Kleine Schleife, die 10 mal Hallo ausgibt
For i = 1 To 10

MsgBox "Hallo"

Next i

 
1.2 Algorithmus

 

Definition und Eigenschaften

-         Algorithmus (Allgemeine Definition)

·        Problemlösevorschrift, die nur noch aus elementaren Einzelschritten besteht.

·        Folge von Anweisungen, mit denen ein bestimmtes Ziel erreicht werden soll.

·        Ein Algorithmus  stellt demnach einen Vorgang zur Lösung eines Problems dar, der nach einem sich wiederholendem Schema abläuft.

·        Die Ausführung eines Algorithmus übernimmt ein Prozessor, der die Sprache verstehen muss, in der die Anweisungen formuliert sind und die Anweisungen ausführen kann.

·        Den Vorgang der Ausführung nennt man Prozess

·        Den in der Programmiersprache formulierten Algorithmus nennt man Programm.

 Eigenschaften von Algorithmen 

·        Eindeutig. Es darf keine Zweifelsfälle geben.

·        Ausführbar. Der Algorithmus muss in einer dem Prozessor verständlichen Sprache abgefasst sein.

·        Endlich. Die Bearbeitung führt nach endlich vielen Schritten und unter Benutzung endlich vielen Mitteln zu einem Ergebnis.

·        Allgemein. Es wird eine Gruppe von gleichartigen Problemen gelöst.

 Alltagsalgorithmen

 

Prozess

Algorithmus

Typische Anweisung

Reifen Wechseln

Reparaturanleitung

Schrauben lösen

Pullover stricken

Strickmuster

Masche aufnehmen

Kuchen backen

Rezept

Man nehme...

Sonate spielen

Note

Noten spielen

 


 Linearer Algorithmus

·        (Arbeits-) Anweisungen werden linear, d.h. in der vorgegebenen Reihenfolge von Anfang bis Ende ausgeführt.

·        Eine Anweisung muss vollständig ausgeführt werden, bevor die nächste ausgeführt werden kann.

·        Jede Anweisung wird genau einmal bearbeitet, es werden nie zwei Anweisungen gleichzeitig bearbeitet.

Strukturelement


Selektiver Algorithmus (Mit Auswahl)

·        Ausführung einiger Anweisungen ist von bestimmten Bedingungen abhängig.

Strukturelement


Iterativer Algorithmus (Mit Wiederholung)

·        Wiederholungen von Programmteilen durch Schleifen bis eine oder mehrer Bedingungen (Abbruch) erfüllt sind

Strukturelement