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

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in die Programmierung Zusammenfassung
Advertisements

Dr. Andreas Winter Sommersemester 2007 Einführung in die Software-Entwicklung © Institut für Informatik Programmier-Richtlinien vgl. auch
10. Grundlagen imperativer Programmiersprachen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Java: Dynamische Datentypen
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. 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
Ergänzung zur Bedeutung von SW-Engineering
Datenströme DVG Datenströme.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
grundlagen der Wirtschafts- informatik
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
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 6
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.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Permanente Datenspeicherung
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
MODULA-2.
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.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
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
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
Berechenbarkeit Klaus Becker Berechenbarkeit.
1 // Laengste Zeile bestimmen // // Liest die Eingabe Zeichen fuer Zeichen, bis // das erscheint. // Die laengste Zeile wird ausgegeben (bei.
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
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.
Der Satz BUCHSTABENABSTAND – WORTZWISCHENRAUM – ZEILENABSTAND.
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.
Tabellengesteuerte Verfahren
 Präsentation transkript:

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

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 2 Schrittweise Verfeinerung l 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

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 3 Schrittweise Verfeinerung l Beispiel: Spaltenweise Textausgabe Die Wörter eines einzulesenden Satzes sollen spaltenweise ausgedruckt werden Die Wörter sind durch (beliebig viele) Leerzeichen voneinander getrennt. Ein Punkt kennzeichnet das Satzende Die Ausgabe soll in nrCols Spalten und nrLines Zeilen erfolgen, sodass der Satz spaltenweise von oben nach unten gelesen werden kann Wörter, die länger als die maximale Spaltenbreite colWidth sind, sollen bei der Ausgabe abgeschnitten werden (mind. 1 Blank zur nächsten Spalte) Nach jeweils nrLines * nCols Wörtern soll eine neue Seite begonnen werden

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 4 Schrittweise Verfeinerung l Beispiel nrCols = 3,nrLines = 4, colWidth = 5 Eingabetext Kräht der Hahn am Mist, ändert sich das Wetter oder es bleibt, wie es ist. Ausgabetext Kräht Mist, Wette1. Seite 2 der änder oder 3 Hahn sich es 4 am das bleib wie2. Seite 2 es 3 ist

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 5 Schrittweise Verfeinerung l Annahmen Als elementare, abstrakte Operationen stehen zur Verfügung t newPage() –zum Wechseln der aktuellen Schreibposition auf Zeile 1, Spalte 1 einer neuen Seite t newColumn( colNr) –zum Wechseln der aktuellen Schreibposition auf Zeile 1 der physischen Spalte colNr (nicht logische Spalte!) t newLine() –zum Wechseln auf eine neue Zeile unter Beibehaltung der logischen Spalte

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 6 Schrittweise Verfeinerung l Grobstruktur writeColumns ( int nrCols int nrLines int colWidth) { // Annahme: Satz besteht aus mindestes 1 Wort repeat { read word write word set position } until (end of sentence) }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 7 Schrittweise Verfeinerung writeColumns ( int nrCols int nrLines int colWidth) { boolean eos char[] word int line = 1 int col = 1 repeat { readWord( colWidth word eos) write( word) setPosition( nrCols nrLines colWidth line col) } until (eos) }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 8 Schrittweise Verfeinerung readWord( int colWidth char[] word boolean eos) { char c skipBlanks( c) fillWord( c colWidth word eos) }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 9 Schrittweise Verfeinerung skipBlanks( char c) { char c repeat { read( c) } until (c != ' ') }

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 10 Schrittweise Verfeinerung fillWord( char c int colWidth char[] word boolean eos) { word = '' int len = 0 while (c != ' ') && (c != '.') { if (len < colWidth) { word += c len++ } read( c) } eos = (c == '.') } // Anmerkung: Punkt am Ende wird nicht mehr mitgeliefert

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 11 Schrittweise Verfeinerung setPosition( nrCols nrLines colWidth line col) { if (line < nrLines) { newLine() line++ } else if (col < nrCols) { newColumn( col * (colWidth + 1) + 1) col++ } else { line = 1, col = 1 newPage() }