Algorithmen und Datenstrukturen Übungsmodul 3

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Advertisements

Rekursion vs. Iteration
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Einführung in die Programmierung Zusammenfassung
Einführung in JavaScript II
Kapitel 6: Klassifizierung von Sortiertechniken
Suche in Texten (Stringsuche )
10. Grundlagen imperativer Programmiersprachen
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Lösung 6.3 Denksportaufgabe
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
DVG Ablaufsteuerung
Algorithmus zur Zerlegung in 3NF (1)
Struktogramme IF-ELSE FOR – Schleife
Informatik 1 Übung 2.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 4 Dr. W. Narzt u. Dr. A. Stritzinger.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Informatik 1 Übung 4.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Algorithmen und Datenstrukturen Übungsmodul 10
Algorithmen und Datenstrukturen SS 2005
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2007 Dr. W. Narzt u. Dr. A. Stritzinger Institut.
Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Algorithmen und Datenstrukturen Übungsmodul 8
Algorithmen und Datenstrukturen Übungsmodul 11
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Algorithmen und Datenstrukturen SS 2005
Algorithmen und Datenstrukturen Übungsmodul 1
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 2 Dr. W. Narzt u. Dr. A. Stritzinger.
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
PHP: Operatoren und Kontrollstrukturen
Hochschule Fulda – FB ET Sommersemester 2014
Code-Optimierung Philipp Bergener Seminar „Übersetzung künstlicher Sprachen“
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Algorithmen und Datenstrukturen 1 SS 2002
Software Engineering Struktogramme
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Informatik Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholugnsanweisungen 3. Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholungsanweisungen.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Algorithmen und Datenstrukturen 1 SS 2002
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
 Präsentation transkript:

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

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" (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

D-Diagramme Idee Rekursive Definition 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 Dies paßt auch zur Objektorientierung; Diskussion des Beispiels, Zeit lassen Welcher Code wird ausgeführt, Abarbeitung bis i =

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

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.

D-Diagramme (4) Beispiel (D-Diagramm?) Für jede Anweisung ein Kasten 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" Dies paßt auch zur Objektorientierung; Diskussion des Beispiels, Zeit lassen Welcher Code wird ausgeführt, Abarbeitung bis i = Für jede Anweisung ein Kasten Pfeile für Gotos Verzeigung ? Bedingung

D-Diagramme (5) D-Diagramm ? j ? p Ja n ? N==1 ? q Nein j ? N==2 n Ja T = 1 B T = T + 1 j ? r Ja ? T*T > N n j Nein ? s Ja ? N <> T * INT (N/T) n Nein C PRINT "Prim" D PRINT "nicht Prim" E END

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)

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

Transformation in D-Diagramme (2) Beispiel

Transformation in D-Diagramme (3) Beispiel D-Diagramm? Code Verdoppelung oder boolesche Hilfsparameter

Transformation in D-Diagramme (4) Lösungen D-Diagramm?

Transformation in D-Diagramme (4) Problem und Lösung D-Diagramm?;

Transformation in D-Diagramme (5) Problem (Kreuzstruktur) Idee: zwei Spieler, die abwechselnd drankommen; r,q == gewonnen

Transformation in D-Diagramme (6) Lösung (Kreuzstruktur) D-Diagramm?

Wie prüft und transformiert man Algorithmen? Transformation Wie prüft und transformiert man Algorithmen? Algorithmus von Jana als Ablaufdiagramm darstellen Prüfen, ob D-Diagramm konform Ablaufdiagramm durch: boolesche Hilfsvariable und 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