Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmen und Datenstrukturen SS 2005

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmen und Datenstrukturen SS 2005"—  Präsentation transkript:

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

2 Überblick Darstellungsarten Ein und Ausgabe in Jana
Übungsbesprechung Übung 2 Präsentation von 2 Übungen; bei der Präsentation kann der Quelltext von mir am Beamer dargestellt werden. Musterlösung oder eine Übung muß verfügbar sein, um Laborbetrieb zu gewährleisten

3 Darstellungsarten Prosa Ablaufdiagramm Struktogramm
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 User: integer erwartet, String eingegeben Device: Hardware Fehler: Printer ausgeschaltet, Festplatte defekt, Web-page kurzfristig nicht erreichbar Physical: Disk full, Mem full Code errors: Eine Methode wird inkorrekt ausgeführt, ungültiger Array index

4 Ablaufdiagramm Liest durch komma separierte Integers aus einer Datei
Problem im Beispiel: Was ist geschehen, wenn –1 zurückgegeben wird File zu ende, Disk defekt, an der Lesestelle steht kein auswertbarer Integer "I23" (Buchstabe I) Vöest; interner Fehler der Java Maschine, Speicher voll

5 Struktogramm Liest durch komma separierte Integers aus einer Datei
liste[i]<>x Liest durch komma separierte Integers aus einer Datei Problem im Beispiel: Was ist geschehen, wenn –1 zurückgegeben wird File zu ende, Disk defekt, an der Lesestelle steht kein auswertbarer Integer "I23" (Buchstabe I) Vöest; interner Fehler der Java Maschine, Speicher voll

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 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 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) } Beispiel Lesen und Schreiben aller Zeichen bis an das Ende im Eingabestrom.

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

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 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 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 100 50 25 12 6 3 1 x%2 1 bitStr 00 100 0100 00100 100100

13 Schachbrettmuster Frage Erster Entwurf
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 XOXOXOXO OXOXOXOX XOXOXOXO OXOXOXOX

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 }//chessBorad


Herunterladen ppt "Algorithmen und Datenstrukturen SS 2005"

Ähnliche Präsentationen


Google-Anzeigen