07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 28<br />

2.5 Schachtelung der drei Algorithmenstrukturen<br />

(2.50) Übb Diese drei Algorithmenstrukturen Folge, Auswahl, Wiederholung können beliebig<br />

ineinander geschachtelt werden. (Die Schachtelung einer Folge innerhalb einer Auswahl oder<br />

Wiederholung ist bereits in früheren Diagrammen angedeutet worden.)<br />

Nur durch Benutzung dieser drei Strukturen mit der Möglichkeit, sie ineinander zu schachteln,<br />

können beliebig komplizierte Algorithmen gebaut werden. Wie bereits in (2.13b) erwähnt,<br />

reichen diese Grundstrukturen aus; insbesondere ist es nicht nötig, direkte Sprunganweisungen<br />

( ” goto“) zu benutzen. Solche Sprunganweisungen sind im Rahmen dieses Kurses für die<br />

Studierenden verboten; daher werden sie in C ++ auch nicht eingeführt.<br />

Theoretisch kann die Schachtelung in beliebige Tiefe gehen. Eine für die Praxis äußerst<br />

wichtige Grenze liegt in der Forderung, dass die Algorithmenstruktur für den menschlichen<br />

Leser noch überschaubar bleiben muss. Daher wird in diesem Kurs auf das Lay-out von<br />

Programmtext (als Pseudocode oder in einer Programmiersprache) sehr großer Wert gelegt.<br />

Im folgenden Punkt (2.51) werden die Grundregeln erläutert; dieselben Regeln, dort noch<br />

etwas ausführlicher, werden in (4.73) auf C ++ angewendet.<br />

Die Punkte (2.52) und (2.53) bringen Beispiele für Schachtelungen. Das zweite Beispiel, der<br />

Algorithmus ” Bubble-Sort“, kann ggf. auch für spätere Anwendungen benötigt werden; ein<br />

Auswendiglernen ist nicht erforderlich, Erinnern und Wiederauffinden reichen aus.<br />

(2.51) Empf – für Studierende nicht nur eine Empfehlung, sondern ein Muss –<br />

Anfang und Ende der verschiedenen Schachtelungsebenen müssen streng beachtet werden.<br />

Im Pseudocode geschieht dieses durch Einrückungen, vgl. (2.52a).<br />

Wichtig wird es beim Programmieren sein, selbst so viel Disziplin beim Lay-out des<br />

Programmtextes zu zeigen, dass die Einrückungen für die einzelnen Schachtelungsebenen<br />

genau vorgenommen werden (je Schachtelungsstufe mit einem bestimmten<br />

Einrückabstand) – und zwar nur wegen der Übersichtlichkeit für den betrachtenden<br />

Menschen. Ein C ++-Compiler überliest die Einrückungen. da die Sprache ein beliebiges<br />

Lay-out gestattet.<br />

Auch hierbei gilt weiterhin (2.22b): Jede Anweisung sollte jeweils (i. a.) in eine Zeile<br />

geschrieben werden. Ist eine Anweisung zu lang: Fortsetzung eingerückt in der<br />

Folgezeile.<br />

Ausnahmen, und zwar keine Einrückung, obwohl Fortsetzung einer Anweisung (einer<br />

Kontrollstruktur):<br />

• Zweiseitige Auswahl: SONST direkt unter WENN, nicht eingerückt (2.32, 2.34 ↑↑),<br />

• WENN-SONSTWENN-Kette (2.36),<br />

• Fußgesteuerte Wiederholung: SOLANGE direkt unter TUE, nicht eingerückt –<br />

obwohl problematisch (2.42 Anm); zu C ++/C s. (4.73).<br />

Im Struktogramm werden die Schachtelungsebenen durch ein echtes Ineinander-Schachteln<br />

der Rechtecke deutlich, vgl. (2.52c).<br />

(2.52) Bsp Zu den Schachtelungsebenen des folgenden Beispiels: In der obersten (ersten) Schachtelungsebene<br />

gibt es – neben der Angabe der benötigten Speicherplätze – insgesamt drei Anweisungen.<br />

Die zweite unter ihnen hat eine Unterstruktur, sie ist eine zweiseitige Auswahl;<br />

in der nächsten Schachtelungsebene sieht man, dass sowohl der DANN-Zweig als auch der<br />

SONST-Zweig wieder aus je einer zweiseitigen Auswahl (jeweils zweite Schachtelungsebene)<br />

bestehen. Die einzelnen Zuweisungen stehen in der dritten Schachtelungsebene.<br />

(a) Pseudocode – einmal normal mit Einrückungen, einmal mit Extrakennzeichnung der Schachtelungsebenen:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!