Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.

Slides:



Advertisements
Ähnliche Präsentationen
Klassen - Verkettete Liste -
Advertisements

Einführung in die Programmierung Zusammenfassung
der Universität Oldenburg
Verteilte Software - Java - Prozedurale Programmierung 1
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
WHILE - Anweisung.
FOR Anweisung.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Einführung in die Programmierung Datensammlung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 4 Dr. W. Narzt u. Dr. A. Stritzinger.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Programmierung Wintersemester 2009/10 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.
Abteilung für Telekooperation Übung Softwareentwicklung 2 für Wirtschaftsinformatik Dr. Wieland Schwinger
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.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
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.
Algorithmen und Datenstrukturen Übungsmodul 3
C# Symbole Syntax Name = (letter | '_' | {letter | digit | '_'}.
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
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
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 Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Variablen und Datentypen
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
1 // 9_1_Datei_IO //Elementare Verwendung von Dateien // Vorsicht: nicht robust, #include const int maxLen = 70; void Schreiben(char *, ofstream *); void.
Aufgaben zu Rückgabewerten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
 Präsentation transkript:

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 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 2 Lösung Übung 2 Schrittweise Verfeinerung Übungsbesprechung Übung 4 Überblick

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 3 Schrittweise Verfeinerung Grundidee Zerlege eine Aufgabe in Teilaufgaben und betrachte jede Teilaufgabe für sich. Zerlege Teilaufgaben weiter in Teilaufgaben bis diese so einfach geworden sind, dass man sie mit Hilfe elementarer Aktionen lösen kann Das Zerlegen einer Aufgabe in Teilaufgaben führt meist zu neuen Prozeduren; das ist aber nicht zwingend. Ergibt: TOP-DOWN Entwurf von Algorithmen Engl: Stepwise Refinement

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 4 Schrittweise Verfeinerung Beispiel: Wörter Zählen Wörter zählen mit beliebigen Leerzeichen XXXX XXXX XXXX # 1. Schritt int countWords(char[] line) { int nrOfWords; while (!endeErreicht) { überspringeLeerzeichen; if (wortKannGelesenWerden) nrOfWords++; } return nrOfWords; }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 5 Schrittweise Verfeinerung Beispiel: Wörter Zählen Wörter zählen mit beliebigen leerzeichen XXXX XXXX XXXX # 2. Schritt int countWords(char[] line) { int i = 0; int nrOfWords = 0; while (!line [i] == '#') { skipBlanks( i, line); // i at next char if (skipWord( i, line)) nrOfWords++; } return nrOfWords; }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 6 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe Idee: Text linksbündig (in einer Datei); Ziel: Zentriert ausgeben Eingabe XXXX XXXX XXXX#// 1 blank garantiert XXXXXXXXX XXXX XXXX XXXX XXXX# XX XX# Ausgabe: Zentriert XXXX XXXX XXXX XXXXXXXXX XXXX XXXX XXXX XXXX XX vordefiniert: r ead(char ch, boolean eof) write(char [] line) + writeln

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 7 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe Eingabe Operator + char[] + char[] 'Uni' + 'Linz führt zu 'UniLinz' char[] + char 'Uni' + ' ' +'Linz' führt zu 'Uni Linz' Operator = char[] = char[] Kopiert die gesamte Zeichenkette

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 8 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe centerText(int width) { char []line boolean eof readLine( line, eof ) while (!eof) { formatLine( line, width) writeLine( line) readLine( line, eof) }//while }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 9 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe readLine(char[] line, boolean eof){ line = '' readCharacter( ch, eof) while (!eof && !endOfline) { line = line + ch readCharacter( ch, eof) }//while }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 10 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe readLine(char[] line, boolean eof){ line = '' char ch read( ch, eof) while (!eof && ch != '#') { line = line + ch read( ch, eof) }//while } endOfLine refined, readCharacter replaced

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 11 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe formatLine(char[] line, int width) { int offset char[]centeredLine = '' offset = offsetFromLeft( line, width) for (int i = 1.. offset) { centeredLine = centeredLine + ' ' }//for centeredLine = centeredLine + line line = centeredLine }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 12 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe formatLine(char[] line, int width) { int offset char[] centeredLine = '' offset = (width-strlen(line)) / 2 for (int i = 1.. offset) { centeredLine = centeredLine + ' ' }//for centeredLine = centeredLine + line line = centeredLine } OffsetFromLeft refined

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 13 Schrittweise Verfeinerung Beispiel: Zentrierte Ausgabe centerText(int width) { char[] line bool eof readLine( line, eof) while (!eof) { formatLine( line, width) writeln( line) readLine( line, eof) }//while } writeLine replaced

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 14 Übung 4 Mehrere Verfeinerungsschritte angeben (kommentieren!) Annahmen kommentieren, falls Angabe unklar