Konzepte der Informatik

Ähnliche Dokumente
Vorkurs Informatik SoSe 15 Algorithmen 1

BKTM - Programmieren leicht gemacht.

Programmentwurf Prof. Metzler

Einführung in die Informatik I Kapitel II.3: Sortieren

Labor Software-Entwicklung 1

Willkommen zum Vorkurs Konzepte der Informatik Vorkurs Informatik zum WS 2014/2015

Konzepte der Informatik

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Interne Sortierverfahren

Flussdiagramm / Programmablaufplan (PAP)

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

2. Algorithmenbegriff

Thema der Unterrichtseinheit: Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen)

Grundlagen der Programmierung

Programmierung mit C Algorithmen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Algorithmen und Datenstrukturen 1

einseitige Selektion zweiseitige Selektion

Javakurs für Anfänger

Struktogramme. Hinweise 1 Stand:

Arbeitsblätter für Algorithmierung und Strukturierung C #

2 Teil 2: Nassi-Schneiderman

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Anweisungen und Kontrollstrukturen

Kontrollstrukturen -- Schleifen und Wiederholungen

7. Sortieren Lernziele. 7. Sortieren

Algorithmen und Datenstrukturen 1-3. Seminar -

5. Übung - Kanalkodierung/Programmierung

Vorkurs Informatik WiSe 15/16

Prof. Dr. Margarita Esponda

Komplexität von Algorithmen:

Grundlagen der Informatik

Schleifen: Immer wieder dasselbe tun

2. Programmierung in C

Sortierverfahren für Felder (Listen)

Übung Algorithmen und Datenstrukturen

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Grundlegende Sortieralgorithmen

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

Suchen und Sortieren

Objektorientierte Programmierung

Übung: Algorithmen und Datenstrukturen SS 2007

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Dr. Monika Meiler. Inhalt

In diesr Schachtel befindet sich ein Zettel, auf dem ein Wert oder eine Zeichenfolge stehen kann, z.b. 5.

ModProg 15-16, Vorl. 5

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen und ihre Programmierung -Teil 2-

Schleifenanweisungen

Algorithmen und Datenstrukturen 1

Tutoraufgabe 1 (Sortieralgorithmus):

Institut für Programmierung und Reaktive Systeme 24. Juni Programmieren II. 14. Übungsblatt

Kapitel 1: Informationsverarbeitung durch Programme

Vom Leichtesten zum Schwersten Sortieralgorithmen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

Webbasierte Programmierung

Konzepte der Informatik

Javakurs für Anfänger

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

fl diese Variablen haben jeweils den Wahrheitswert "wahr" oder "falsch", es sind damit boolesche Variablen (Datentyp: bool bzw.

Sortieralgorithmen. Selection Sort

DIN FB Technologie und Management DIN DIN 66001

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Inhalt. 3. Spezielle Algorithmen

Einführung in die Programmierung Wintersemester 2011/12

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Mathematik AG. Geschickt gesucht ist halb gefunden: Suchen und Sortieren mit Mathe

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer

Informatik I: Einführung in die Programmierung

Tag 3 Repetitorium Informatik (Java)

Nassi-Shneiderman-Diagramm - Wikipedia

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen

Datenstrukturen und Algorithmen

Untere Schranke für allgemeine Sortierverfahren

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Einführung in die Programmierung mit BlueJ

Tabellenkalkulation mit Microsoft Excel -Teil 4-

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Mathematischer Vorkurs

Einstieg in die Informatik mit Java

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Labor Industrielle Netzwerke. Versuch 2: Tastaturentprellung

Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen

3. Übungsblatt zu Algorithmen I im SoSe 2017

Transkript:

Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Konzepte der Informatik Vorkurs Informatik zum WS 2013/2014 16.09. - 27.09.2013 Dr. Werner Struckmann / Hendrik Freytag 1. April 2010 Referent Kurztitel der Präsentation (bitte im Master einfügen) Seite 1

Wiederholung: Struktogramme Linearer Ablauf (Sequenz): Anweisung 1 Anweisung 2 Anweisung 3 Anweisung 4 Jede Anweisung wird in einen rechteckigen Strukturblock geschrieben. Strukturblöcke können untereinander gestellt werden. Die Strukturblöcke werden nacheinander von oben nach unten durchlaufen. 17.09.2013 Konzepte der Informatik Seite 2

Wiederholung: Struktogramme Zweifache Auswahl (alternative Verarbeitung) Wahr Anweisungsblock 1 Bedingung Anweisungsblock 2 Falsch Wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen. Trifft die Bedingung nicht zu (falsch), wird der Anweisungsblock 2 durchlaufen. Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Austritt erfolgt nach unten nach Abarbeitung des jeweiligen Anweisungsblocks. 17.09.2013 Konzepte der Informatik Seite 3

Wiederholung: Struktogramme Abweisende (vorprüfende kopfgesteuerte) Schleife... Bedingung Anweisungsblock... Wiederholungsstruktur mit vorausgehender Bedingungsprüfung: Zuerst wird die Bedingung ausgewertet: Ergibt sie wahr, wird der Schleifenkörper (Anweisungsblock) einmal ausgeführt. Danach wird zum Beginn der Schleife zurückgekehrt und erneut mit der Prüfung der Bedingung begonnen. Ergibt die Auswertung der Bedingung falsch, wird unterhalb des Schleifenkörpers fortgefahren (ohne ihn auszuführen). Häufig benutzt man eine Bedingung, deren Wahrheitswert sich im Laufe der Zeit verändert, z.b. indem Variablen im Schleifenkörper verändert werden, die in der Bedingung vorkommen. Man führt also die Anweisungen im Schleifenkörper solange aus, bis die Bedingung nicht mehr zutrifft. 17.09.2013 Konzepte der Informatik Seite 4

Struktogramme: Fallauswahl Wenn n = 1, mache x Wenn n = 2, mache y Wenn n = 3, mache z... Wahr n = 1 Falsch Anweisungsblock für n = 1 Anweisungsblock 2 Wahr n = 2 Falsch Anweisungsblock für 2 usw. 17.09.2013 Konzepte der Informatik Seite 5

Struktogramme Fallauswahl Variable Wert(ebereich) 1 Wert(ebereich) 2 Wert(ebereich) n sonst Anweisungs- Anweisungs- Anweisungs- Alternativblock block 1 block 2 block n (optional) Besonders bei mehr als drei abzuprüfenden Bedingungen geeignet. Der Wert von "Variable" kann bedingt auf Gleichheit wie auch auf Bereiche (größer/kleiner bei Zahlen) geprüft werden und der entsprechend zutreffende "Fall" mit dem zugehörigen Anweisungsblock wird durchlaufen. 17.09.2013 Konzepte der Informatik Seite 6

Selection-Sort Idee: Zu Beginn liegt der Stapel unsortierter Zahlen verdeckt vor einem. Man durchsucht den Stapel nach der kleinsten Zahl und legt diese vor sich hin. Man sucht solange die kleinste Karte im Reststapel und legt sie rechts neben die schon aufgedeckten (und sortierten) Karten, bis der Stapel leer ist und somit alle Karten sortiert vor einem liegen. Umsetzung: Man nutzt den bereits vorhandenen Algorithmus zum Finden der kleinsten Zahl und passt ihn an, sodass nicht das Element selbst, sondern seine Position innerhalb der Liste zurückgegeben wird. 16.09.2013 Konzepte der Informatik Seite 7

Struktogramm für die Feststellung der kleinsten Zahl in einem Stapel Lege eine Leerkarte zum Merken der kleinsten bisher gefundenen Zahl (lokale Variable) Schreibe die Zahl auf der ersten Karte des Stapels auf die Leerkarte (Sie ist ja in jedem Fall erstmal die kleinste, da wir nur die eine Karte kennen) Solange der Stapel nicht leer ist Nehme die oberste Karte vom Stapel Ja Zahl der Karte < der bisher kleinsten Zahl? Nein Schreibe die Zahl als bisher kleinste gefundene Karte auf die Leerkarte Fahre fort 17.09.2013 Konzepte der Informatik Seite 8

Selection-Sort Oftmals arbeitet man bei Sortierverfahren mit Listen, daher werden wir die Idee auf eine Listenstruktur übertragen. Idee: Man benutzt eine Hilfsvariable, die die Position angibt, ab der die Liste bereits sortiert ist. Diese Position teilt die Liste in einen linken, sortierten Teil (Positionen kleiner der Hilfsvariable) und einen rechten, unsortierten Teil (Positionen größer gleich der Liste) Zu Beginn zeigt die Hilfsvariable auf das erste Element, die komplette Liste ist also unsortiert (Positionen größer gleich der Hilfsvariable). Solange der Zeiger nicht auf dem letzten Element steht, tue folgendes: Suche im unsortierten Teil des Feldes das kleinste Element Vertausche dieses Element mit dem Element dessen Position der Hilfsvariable entspricht Versetze die Hilfsvariable um eine Position nach rechts (erhöhe sie um eins) 16.09.2013 Konzepte der Informatik Seite 9

Selection-Sort Struktogramm Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiert werden muss Schreibe die 0 auf Leerkarte (1) (das gesamte Feld ist unsortiert) Lege eine Leerkarte (2) als Zwischenspeicher für die Austauschoperation Lege eine Leerkarte (3) als Zwischenspeicher für die Position des kleinsten Elements Solange der Leerkarte (1) nicht der Position des letzten Elements der Liste entspricht Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinste Element und speichere die Position auf Leerkarte (3) Sichere den Wert der ersten noch nicht sortierten Karte (Position auf Leerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leerkarte 2) Überschreibe den Wert der ersten noch nicht sortierten Karte (Position auf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position auf Leerkarte (3)) Überschreibe die ursprüngliche Position des kleinsten Wertes (Position auf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austauschoperation Erhöhe den Wert auf Leerkarte (1) um eins 17.09.2013 Konzepte der Informatik Seite 10

: Bubble Sort Idee: größere Luftblasen steigen an kleineren Luftblasen vorbei auf Irgendwann sind die Luftblasen von unten (klein) nach oben (groß) sortiert. photo by Jonas N on Flickr 17.09.2013 Konzepte der Informatik Seite 11

Bubble Sort 17.09.2013 Konzepte der Informatik Seite 12

Bubble Sort 17.09.2013 Konzepte der Informatik Seite 13

Bubble Sort 17.09.2013 Konzepte der Informatik Seite 14

Bubble Sort 17.09.2013 Konzepte der Informatik Seite 15

Bubble Sort 17.09.2013 Konzepte der Informatik Seite 16

Bubble Sort 1. Iteration 5 3 9 2 1 Die Liste wird von vorne beginnend durchlaufen und die ersten beiden Elemente werden miteinander verglichen. Ist das erste Element größer als das zweite Element, dann folgt ein Vertauschen, denn die größeren Luftblasen können an den kleineren vorbei. 17.09.2013 Konzepte der Informatik Seite 17

Bubble Sort 1. Iteration 3 5 9 2 1 Die kleineren Luftblasen stoßen die größeren Luftblasen an und stoppen selbst dabei. Es findet hier also kein Vertausch der Zahlen 5 und 9 statt. Nun wird die 9 weiter aufsteigen. 17.09.2013 Konzepte der Informatik Seite 18

Bubble Sort 1. Iteration 3 5 2 9 1 Der nächste Vergleich führt wieder zu einem Vertauschen, da die Luftblase mit der Größe 9 an der kleineren Luftblase mit der Größe 2 vorbeikommt und weiter aufsteigen kann. 17.09.2013 Konzepte der Informatik Seite 19

Bubble Sort 1. Iteration 3 5 2 1 9 Der letzte Vergleich führt wieder zu einem Vertauschen. Die Luftblase mit der Größe 9 ist als größte Luftblase an die Oberfläche der Wassersäule gestiegen. Wir fahren mit der nächsten Iteration fort. 17.09.2013 Konzepte der Informatik Seite 20

Bubble Sort 2. Iteration 3 5 2 1 9 Die Luftblase mit der Größe 3 stößt die größere Luftblase an und bleibt selbst dabei stehen. Die größere Luftblase steigt weiter auf, es findet kein Vertauschen statt. 17.09.2013 Konzepte der Informatik Seite 21

Bubble Sort 2. Iteration 3 2 1 5 9 Am Ende der zweiten Iteration bleibt die Luftblase der Größe 5 an der Luftblase mit der Größe 9 hängen. 17.09.2013 Konzepte der Informatik Seite 22

Bubble Sort 3. Iteration 2 1 3 5 9 Nach der dritten Iteration sind die größten drei Elemente aufsteigend sortiert. 17.09.2013 Konzepte der Informatik Seite 23

Bubble Sort 4. Iteration 1 2 3 5 9 Die vierte Iteration sortiert die letzten beiden Elemente. Danach ist die Liste aufsteigend sortiert. 17.09.2013 Konzepte der Informatik Seite 24

Bubble Sort Reserviere eine Hilfsvariable i für die äußere Schleife Setze i auf 1 Reserviere eine Hilfsvariable j für die innere Schleife Solange i <= a - 1 Setze j auf 1 Solange j <= a - 1 j-te Zahl > j+1te Zahl? Ja Nein Tausche Zahl j mit Zahl j+1 Fahre fort Erhöhe j um eins Erhöhe i um eins Hinweis: a sei die Anzahl der zu sortierenden Zahlen 17.09.2013 Konzepte der Informatik Seite 25

Bubble Sort Ist das beschriebene Verfahren ein Algorithmus? Das Verfahren ist in einem endlichen Text durch ein Struktogramm beschrieben. Die Objekte der Berechnung sind die Zahlen der Liste. Die Operationen sind das Vergleichen und Vertauschen zweier Zahlen. Diese sind mechanisch ausführbar. Die Reihenfolge der Operationen ist ebenfalls durch das Struktogramm festgelegt. Das Verfahren ist ein Algorithmus. 17.09.2013 Konzepte der Informatik Seite 26

Aufwandsabschätzung Um den zu leistenden Aufwand für die Durchführung eines Algorithmus' zu bestimmen, muss man sich zuerst die Problemgröße bewusst machen. Sie stellt ein Maß dar, wie schwierig bzw. umfangreich die Aufgabe bzw. das Problem ist. Üblicherweise wird die Problemgröße mit n benannt. Für Sortieralgorithmen ist die Problemgröße die Anzahl der zu sortierenden Elemente. 17.09.2013 Konzepte der Informatik Seite 27

Aufwandsabschätzung Für einfache Sortierverfahren ist der Aufwand meist quadratisch zur Problemgröße. Zu beachten ist hierbei, dass diese Abschätzung nicht allzu genau genommen werden darf, da konstante Faktoren nicht beachtet werden. Wenn wir also von quadratischem Aufwand sprechen, so kann es genauso gut 100*n² sein, als auch 0,5*n² oder auch (n - 1)². Es geht aber auch besser... 17.09.2013 Konzepte der Informatik Seite 28

Bubble Sort: Verbesserung Reserviere eine Hilfsvariable i für die äußere Schleife Setze i auf 1 Reserviere eine Hilfsvariable j für die innere Schleife Reserviere eine Hilfsvariable s für die innere Schleife Solange i <= a - 1 und s = 'nein' Setze j auf 1 Setze s auf 'ja' Solange j <= a - 1 j-te Zahl > j+1te Zahl? Ja Nein Tausche Zahl j mit Zahl j+1 Fahre fort Setze s auf 'nein' Erhöhe j um eins Erhöhe i um eins 17.09.2013 Konzepte der Informatik Seite 29

Zusammenfassung Selection Sort Bubble Sort Aufwandsabschätzung Einfache Algorithmen: quadratisch 15:30 16:45 A1: HS 65.4 B1: IZ 161 C1: IZ 160 A2: HS 65.4 B2: IZ 161 C2: IZ 160 A3: HS 65.2 B3: IZ 305 C3: IZ 160 17.09.2013 Konzepte der Informatik Seite 30

Vielen Dank für Ihre Aufmerksamkeit! 17.09.2013 Konzepte der Informatik Seite 31