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 SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut."—  Präsentation transkript:

1 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

2 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 2 Darstellungsarten Ein und Ausgabe in Jana Übungsbesprechung Übung 2 Überblick

3 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 3 Prosa Allgemein verständlich; wenig anschaulich; Gefahr von Mehrdeutigkeit, Unstrukturiertheit Ablaufdiagramm sehr anschaulich; Gefahr von Unstrukturiertheit; Aufwendig zu erstellen Struktogramm anschaulich; Aufwendig zu erstellen Algorithmenbeschreibungssprache anschaulich; flexibel in der Handhabung; präzise oder grob je nach Form; leicht in Programmiersprache übersetzbar Programmiersprache Präziseste und vollständigste Beschreibungsform Alle Variablen und Konstante müssen deklariert sein (sprachabhängig) Alle Anweisungen müssen den syntaktischen Regeln der Sprache entsprechen Darstellungsarten

4 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 4 Ablaufdiagramm

5 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 5 Struktogramm liste[i]<>x

6 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 6 Algorithmenbeschreibungssprache jana (java-based abstract notation for algorithms) int search ( list l int len int x) { Anweisungen return i } sort ( int[1..n] valueArr boolean increase) { Anweisungen }

7 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 7 Programmiersprache Java int search (int[] values, int x) { boolean found = false; int i = 0; while (!found && i < values.length()) { // check if value is x if (values[i] == x) { found = true; } else { i++; } } if (!found) i = -1; return i }

8 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 8 Ein- und Ausgabe in Jana Lesen Lesen eines einzelnen Zeichens mit read( char ch, bool eof). 2. Ausgangsparameter gibt Auskunft, ob tatsächlich gelesen wurde (eof = end of file). Schreiben Generische Funktion write ( value) für Zeichen, Zahlen,... char ch bool eof read( ch, eof) while (! eof) { write( ch) read( ch, eof) } Beispiel Lesen und Schreiben aller Zeichen bis an das Ende im Eingabestrom.

9 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 9 Zeichen und Zahlen in Jana Ord int ord( char ch) Liefert den Ordinalwert (z.B. ASCII-Code) des Zeichens ch int i char c c = 4 i = Ord(c) – Ord(0) Beispiele Umwandeln eines Zeichens (Ziffer) in eine Zahl. Umwandeln von Klein- in Großbuchstaben. char c = g if (a<= c <=z) { int offset = Ord(c)-Ord(a) write( Chr(Ord(A) +offset)) }

10 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 10 Zeichenketten und Zahlen in Jana Beispiel Umwandeln von Zeichenketten (vorzeichenlose, ganze Zahl darstellend) in entsprechende Zahlen. Zeichenkette "123" Zahl 123. Aufgabe Erkennen von fehlerhaften Zeichenketten (z.B. "12x4"). int convert( char[] s) { int value = 0 for(int i=0.. strlen(s)-1){ int digit = Ord(s[i]) – Ord(0) value = value*10 + digit }//for return value }

11 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 11 Dezimal- und Binärdarstellung Frage Wie schaut die Binärdarstellung einer ganzen Zahl aus? Lösungsidee Betrachte nur das letzte Bit der Zahl; letztes Bit ist 1, wenn die Zahl ungerade ist, sonst 0. Stelle das Bit in eine Zeichenkette. Dividiere die Zahl durch 2 und schneide dadurch das letzte Bit ab. Wiederhole den Vorgang solange Zahl > 0.

12 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 12 Dezimal- und Binärdarstellung Algorithmus in Jana char[] bitString( int x) { char[] bitStr = "" while (x>=0) { if ((x%2) == 0) bitStr = "0" + bitStr else bitStr = "1" + bitStr x = x/2 // ganzzahlige Division! } return bitStr }//bitString x x% bitStr

13 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 13 Schachbrettmuster Frage Gesucht ist ein Algorithmus, der ein schachbrettartiges Muster aus zwei verschiedenen Zeichen ausgibt. Erster Entwurf Schleife über alle Zeilen. Schleife über alle Spalten. Gib Zeichen X aus. Tausche Zeichen X mit Zeichen O aus. XOXOXOXO OXOXOXOX XOXOXOXO OXOXOXOX

14 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 14 Schachbrettmuster Algorithmus in Jana chessBoard( int n) { for(int row=1.. n) { for(int col=1..n) { if ( (row+col)%2 == 0){ write(X) } else { write(O) } }//for writeln() // Zeile fertig }//for }//chessBorad


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

Ähnliche Präsentationen


Google-Anzeigen