Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 3 Dr. W. Narzt u. Dr. A.Stritzinger Institut.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 3 Dr. W. Narzt u. Dr. A.Stritzinger Institut."—  Präsentation transkript:

1 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 3 Dr. W. Narzt u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz

2 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 2 Unbeschränkte Ablaufstrukturen Beispiel (~BASIC) A:PRINT " IST N EINE PRIMZAHL ?" INPUT "Welche Zahl ?"; N PRINT IF N == 1 THEN GOTO C IF N == 2 THEN GOTO D T = 1 B:T = T + 1 IF T * T > N THEN GOTO D IF N <> T * INT (N / T) THEN GOTO B C:PRINT " N IST KEINE PRIMZAHL" GOTO A D:PRINT "N IST EINE PRIMZAHL" GOTO A (da ein Teiler t mit t * t > n einen Gegenteiler n/t mit n/t < t hätte) Problem: schlechte Lesbarkeit, da beliebig gesprungen werden darf

3 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 3 D-Diagramme Idee Beschränkung auf wenige Ablaufstrukturen Folge: weniger Komplexität, bessere Strukturiertheit Rekursive Definition einfache Anweisung S ist ein D-Diagramm wenn S1 und S2 D-Diagramme sind, so sind auch folgende Konstrukte D-Diagramme: S1; S2 // Sequenz if p then S1// Verzweigung if p then S1 else S2 while p do S1 end // Abweisschleife nichts anderes ist ein D-Diagramm

4 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 4 D-Diagramme (2) Grundlegende D-Diagramm Strukturen jeweils genau ein Eingang, ein Ausgang rekursive Komposition dieser Strukturen erlaubt dadurch entstehen neue Strukturen, die wieder sog. reine D-Diagramme sind keine reinen D-Diagramm Strukturen: Repeat, For, Switch

5 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 5 D-Diagramme (3) Erweiterte D-Diagramme Die Erfahrung hat gezeigt, daß einige weitere Strukturen verwendet werden dürfen Repeat-Schleife (Durchlaufschleife) Case Statement (Fallunterscheidung, switch) (For-Schleife) Diese Strukturen können wir zusätzlich einsetzten.

6 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 6 D-Diagramme (4) Beispiel (D-Diagramm?) DIM N = 12 PRINT IF N = 1 THEN GOTO C IF N = 2 THEN GOTO D T = 1 B:T = T + 1 IF T * T > N THEN GOTO D IF N <> T * INT (N / T) THEN GOTO B C:PRINT " N IST KEINE PRIMZAHL" END D:PRINT "N IST EINE PRIMZAHL" END Für jede Anweisung ein Kasten Pfeile für Gotos Verzeigung ? Bedingung

7 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 7 D-Diagramme (5) D-Diagramm ? ? N==1 T = 1 Ja ? N==2 T = T + 1 ? T*T > N ? N <> T * INT (N/T) PRINT "nicht Prim" PRINT "Prim" Ja Nein Ja Nein ? p A ? q END B ? r ? s D C E j j j j n n n n

8 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 8 Nicht D-Diagramm Strukturen Einige grundlegende Strukturen Verzweigung mit Einsprung Verzweigung mit Aussprung (Verzweigung in Verzweigung, die aus der umgebenden Verzweigung rausführt) Schleife mit Einsprung Schleife mit Aussprung (Verzweigung in Schleife, die aus der Schleife rausführt)

9 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 9 Transformation in D-Diagramme Allgemeines Jede beliebige Ablaufstruktur läßt sich als D-Diagramm darstellen (lt. Böhm und Jacopini) Wie kann man ein Nicht-D-Diagramm in ein D-Diagramm transformieren? Mehrere Methoden Einige ändern die Struktur des ursprüngl. Algo. stark Wir -> heuristisch: Codeverdoppelung oder/und Einführung boolescher Hilfsvariablen

10 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 10 Transformation in D-Diagramme (2) Beispiel

11 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 11 Transformation in D-Diagramme (3) Beispiel D-Diagramm? Code Verdoppelung oder boolesche Hilfsparameter

12 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 12 Transformation in D-Diagramme (4) Lösungen D-Diagramm?

13 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 13 Transformation in D-Diagramme (4) Problem und Lösung D-Diagramm?;

14 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 14 Transformation in D-Diagramme (5) Problem (Kreuzstruktur) Idee: zwei Spieler, die abwechselnd drankommen; r,q == gewonnen

15 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 15 Transformation in D-Diagramme (6) Lösung (Kreuzstruktur) D-Diagramm?

16 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 16 Transformation Wie prüft und transformiert man Algorithmen? 1.Algorithmus von Jana als Ablaufdiagramm darstellen 2.Prüfen, ob D-Diagramm konform 3.Ablaufdiagramm durch: a)boolesche Hilfsvariable und b)Code-Verdoppelung in D-Diagramm überführen 4. D-Diagramm prüfen (z.B. von außen nach innen) 5. D-Diagramm in Algorithmenbeschreibungssprache darstellen


Herunterladen ppt "Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 3 Dr. W. Narzt u. Dr. A.Stritzinger Institut."

Ähnliche Präsentationen


Google-Anzeigen