vorkurs informatik sose 16 - ips.tu-braunschweig.de · struktogramme – abweisende schleife –...

78
Vorkurs Informatik SoSe 16 Algorithmen 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 23.03.2016 Technische Universität Braunschweig, IPS Institut für Programmierung und Reaktive Systeme

Upload: lebao

Post on 18-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Vorkurs Informatik SoSe 16Algorithmen 1

Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 23.03.2016

Technische Universität Braunschweig, IPS

Institut für Programmierungund Reaktive Systeme

Page 2: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Inhaltsverzeichnis

Der Algorithmusbegriff

Darstellung von Algorithmen

Programmablaufplan DIN66001-1966

Struktogramme

Sortieren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 2Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 3: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Überblick

Der Algorithmusbegriff

Darstellung von Algorithmen

Programmablaufplan DIN66001-1966

Struktogramme

Sortieren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 3Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 4: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Der Algorithmusbegriff – Handlungsvorschriften

Viele Dinge im Leben werden nach einem festgelegtem Schemadurchgeführt. Diese Schemata regeln, welche Schritte mit welchenObjekten in welcher Reihenfolge (beispielsweise nacheinander,wiederholt oder bedingt) gemacht werden.

Beispiel: Wie heben Sie Geld am Geldautomaten ab?

Von der Handlungsvorschrift zum Algorithmus. . .

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 4Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 5: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Der Algorithmusbegriff – Rezept für Vanillekipferl

200g Mehl

250g Butter

180g Zucker

200g fein gemahlene Mandeln

1 Päckchen Vanillezucker

Zubereitung:

Aus den Zutaten einen Teig kneten. Eine etwa walnussgroße MengeTeig in der Hand rollen und ein Hörnchen formen. Diese nicht zudicht auf ein mit Backpapier ausgelegtes Blech legen und imvorgeheizten Backofen bei schwacher Hitze (ca. 150 ◦C) für ca.10-15 Minuten goldbraun backen.

Solange sie noch warm sind mit einem Gemisch aus 1 TassePuderzucker und 1 Päckchen Vanillezucker bestäuben.

Abkühlen lassen und in einer gut verschließbaren Doseaufbewahren.

Page 6: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Handlungsvorschrift Vanillekipferl I

Implizit können wir dem Rezept folgende Handlungsvorschriftentnehmen:

Nimm eine Schüssel

Fülle 200g Mehl hinein

Fülle 250g Butter hinein

Fülle 180g Zucker hinein

Fülle 200g fein gemahlene Mandeln hinein

Fülle 1 Päckchen Vanillezucker hinein

Knete den Inhalt der Schüssel, bis ein glatter Teig entsteht

Forme aus walnussgroßen Stückchen Teig kleine Hörnchen und legesie auf ein mit Papier ausgelegtes Blech

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 6Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 7: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Handlungsvorschrift Vanillekipferl IISchalte den Backofen auf 150 ◦C

Warte 10 Minuten

Schiebe Blech in den Backofen

Stelle eine Mischung aus einer Tasse Puderzucker und einerPackung Vanillezucker her

Warte 10-15 Minuten bis Vanillekipferl goldbraun

Nimm Blech aus dem Backofen heraus

Bestäube die warmen Kipferl mit Mischung aus Puder- undVanillezucker

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 7Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 8: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Intuitives Algorithmenverständnis

Gegeben sei ein „Problem“ oder eine „Problemklasse“

Ein Algorithmus ist eine Handlungsvorschrift zum „Lösen“ desProblems, wobei

die Handlungsvorschrift erkennbar einen Anfang und ein Ende1 hat,

aus einzelnen Schritten besteht, für die jeweils klar ist, was mit welchenDingen zu tun ist

und die Reihenfolge der Schritte festlegt.

Ein Problem, für dessen Lösung ein Algorithmus existiert, heißtberechenbar.

1Die Beschreibung ist ein endlicher Text, die Ausführung der Handlungsvorschriftdagegen muss nicht enden.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 9: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Vanillekipferl als Algorithmus I

Nimm eine Schüssel

Fülle 200g Mehl hinein

Fülle 250g Butter hinein

Fülle 180g Zucker hinein

Fülle 200g fein gemahlene Mandeln hinein

Fülle 1 Päckchen Vanillezucker hinein

Knete den Inhalt der Schüssel, bis ein glatter Teig entsteht

Forme aus walnussgroßen Stückchen Teig kleine Hörnchen und legesie auf ein mit Papier ausgelegtes Blech

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 9Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 10: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Vanillekipferl als Algorithmus IISchalte den Backofen auf 150 ◦C

Warte 10 Minuten

Schiebe Blech in den Backofen

Stelle eine Mischung aus einer Tasse Puderzucker und einerPackung Vanillezucker her

Warte 10-15 Minuten bis Vanillekipferl goldbraun

Nimm Blech aus dem Backofen heraus

Bestäube die warmen Kipferl mit Mischung aus Puder- undVanillezucker

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 10Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 11: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Der Algorithmusbegriff – Ein Algorithmus?

„Engagement, Teamgeist und das permanente Streben nachPerfektion sind wichtige Bausteine unseres Erfolgs undPhilosophie. Mit technologischer Kompetenz und Innovationskraftbringt XX bewegende Ideen auf die Straße. Der schnellsteSportwagen der Welt, das größte und stärkste Diesel-Aggregat,das je in einen PKW eingebaut wurde oder das sparsamsteAutomobil aller Zeiten sind nur einige Beispiele, wie XX mittechnischen Revolutionen neue Maßstäbe setzt.“

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 11Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 12: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Beispiele für Algorithmen

Koch- und Backrezepte

Bedienungsanleitungen (z.B. für Handys)

Notenfolgen zum Musizieren

Waschmaschinenprogramme

Sortierverfahren

Abfolge in Produktionsstraßen

Berechnungsverfahren:ggT bestimmen

Funktionen ableiten

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 12Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 13: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Der Algorithmusbegriff – Präzisierung

Ein Algorithmus ist eine wohldefinierte Rechenvorschrift, die eine(eventuell leere) Menge von Eingaben verwendet und eine Mengevon Ausgaben erzeugt.

Ein Algorithmus ist also eine Abfolge von Berechnungsschritten, diedie Eingabe in die Ausgabe umwandelt.

Der Algorithmus muss durch einen endlichen Text in einerwohldefinierten Sprache beschrieben sein.

Die Objekte der Berechnung müssen klar sein.

Die elementaren Operationen müssen mechanisch ausführbar sein.

Die Reihenfolge der Operationen muss feststehen.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 13Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 14: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Überblick

Der Algorithmusbegriff

Darstellung von Algorithmen

Programmablaufplan DIN66001-1966

Struktogramme

Sortieren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 14Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 15: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Darstellung von Algorithmen

Man kann einen Algorithmus beispielsweise alsTextPseudocode oder in einer Programmierspracheals Flussdiagramm (Programmablaufplan)Struktogramm (Nassi-Shneiderman-Diagramm). . .

darstellen.Im Rahmen dieses Vorkurses werden wir Struktogramme nachNassi-Shneiderman verwenden, wie sie auch in DIN 66261festgelegt sind.Ein aus verschiedenen Strukturblöcken zusammengesetzteStruktogramm ist im Ganzen rechteckig, d.h. genauso breit wie seinbreitester Strukturblock.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 15Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 16: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Überblick

Der Algorithmusbegriff

Darstellung von Algorithmen

Programmablaufplan DIN66001-1966

Struktogramme

Sortieren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 16Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 17: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Programmablaufplan DIN66001-1966 – Sinnbilder

Sinnbild Benennung und Bemerkung

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Operation, allgemein (process)

Verzweigung (decision)

Unterprogramm (prefdefinedprocess)

Ein- und Ausgabe (input/output)

Operation, allgemein (process)

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Operation, allgemein (process)

Verzweigung (decision)

Unterprogramm (prefdefinedprocess)

Ein- und Ausgabe (input/output)

Verzweigung (decision)

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Operation, allgemein (process)

Verzweigung (decision)

Unterprogramm (prefdefinedprocess)

Ein- und Ausgabe (input/output)

Unterprogramm (predefined process)

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Operation, allgemein (process)

Verzweigung (decision)

Unterprogramm (prefdefinedprocess)

Ein- und Ausgabe (input/output)

Ein- und Ausgabe (input/output)

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 17Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 18: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Programmablaufplan DIN66001-1966 – Sinnbilder

Sinnbild Benennung und Bemerkung

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Schleifenbegrenzung (loop limit)Anfang

Schleifenbegrenzung (loop limit)Ende

Ablauflinie (flow line)Vorzugsrichtungen (Pfeil optional):a) von oben nach untenb) von links nach rechts

Zusammenführen (junction)Ausgang sollte durch einen Pfeilgekennzeichnet werden

Schleifenbegrenzung (loop limit)Anfang

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Schleifenbegrenzung (loop limit)Anfang

Schleifenbegrenzung (loop limit)Ende

Ablauflinie (flow line)Vorzugsrichtungen (Pfeil optional):a) von oben nach untenb) von links nach rechts

Zusammenführen (junction)Ausgang sollte durch einen Pfeilgekennzeichnet werden

Schleifenbegrenzung (loop limit)Ende

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Schleifenbegrenzung (loop limit)Anfang

Schleifenbegrenzung (loop limit)Ende

Ablauflinie (flow line)Vorzugsrichtungen (Pfeil optional):a) von oben nach untenb) von links nach rechts

Zusammenführen (junction)Ausgang sollte durch einen Pfeilgekennzeichnet werden

Ablauflinie (flow line) Vorzugsrichtungen(Pfeil optional):a) von oben nach untenb) von links nach rechts

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14

Sinnbilder:

Sinnbilder für Programmablaufplan nach DIN66001-1966

Sinnbild Bennenung und Bemerkung

Schleifenbegrenzung (loop limit)Anfang

Schleifenbegrenzung (loop limit)Ende

Ablauflinie (flow line)Vorzugsrichtungen (Pfeil optional):a) von oben nach untenb) von links nach rechts

Zusammenführen (junction)Ausgang sollte durch einen Pfeilgekennzeichnet werden

Zusammenführen (junction)Ausgang sollte durch einen Pfeil gekennzeich-net werden

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 18Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 19: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Programmablaufplan DIN66001-1966 – Beispiel

02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 15

Beispiel für Programmablaufplan nach DIN66001-1966

Beginn

Ende

Dreckwäsche in die

Waschmaschine

Waschmittelin die

Waschmaschine

Wäschezusammenlegen

Wäschein den

Trockner

Waschmaschineanstellen

Warten

Trockneranstellen

Warten

Wäschein den Schrank

räumen

Fertig? Fertig?

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 19Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 20: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Überblick

Der Algorithmusbegriff

Darstellung von Algorithmen

Programmablaufplan DIN66001-1966

Struktogramme

Sortieren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 20Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 21: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Struktogramme

Linearer Ablauf (Sequenz):

Anweisung 1

Anweisung 2

Anweisung 3

Anweisung 4

Anweisung 5

Jede Anweisung wird in einenrechteckigen Strukturblock geschrieben.Strukturblöcke können untereinandergestellt werden.Die Strukturblöcke werden nacheinandervon oben nach unten durchlaufen.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 21Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 22: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Struktogramme – VanillekipferlNimm eine SchüsselFülle 200g Mehl hinein

Fülle 250g Butter hinein

Fülle 180g Zucker hinein

Fülle 200g fein gemahlene Mandeln hinein

Fülle 1 Päckchen Vanillezucker hineinKnete den Inhalt der Schüssel, bis ein glatter Teig entsteht

Forme aus walnussgroßen Stückchen Teig kleine Hörnchen und lege sie aufein mit Papier ausgelegtes Backblech

Schalte Backofen auf 150 ◦CWarte 10 MinutenSchiebe Blech in den BackofenWarte 10-15 MinutenStelle eine Mischung aus einer Tasse Puderzucker und einer Packung Vanil-lezucker herNimm Blech aus Backofen herausBestäube die noch warmen Kipferl mit Mischung aus Puder- und Vanillezu-cker

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 22Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 23: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Zweifache Auswahl (alternative Verarbeitung)

Bedingung

Wahr Falsch

Anweisungsblock 1 Anweisungsblock 2

Wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1durchlaufen. Trifft die Bedingung nicht zu (falsch), wird derAnweisungsblock 2 durchlaufen. Ein Anweisungsblock kann aus eineroder mehreren Anweisungen bestehen. Austritt erfolgt nach unten nachAbarbeitung des jeweiligen Anweisungsblocks.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 23Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 24: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Zweifache Auswahl (alternative Verarbeitung)

Anweisungen . . .

Fülle ein Päckchen Vanillezucker hinzuKnete den Inhalt der Schüssel, bis ein glatter Teigentsteht

Ist der Teig fest?

Ja Nein

Fortfahren Füge einen Esslöffel Mehlhinzu

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 24Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 25: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Verschachtelte zweifache Auswahl

Anweisungen . . .

Wird Mehl für das Rezept benötigt?

Ja Nein

Ist Mehl vorrätig?Ja Nein

Fortfahren Setze Mehl aufEinkaufslisteAnweisungen. . .

Fortfahren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 25Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 26: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Struktogramme – Fallauswahl

Variable

Wert 1Anweisungsblock 1

Wert 2Anweisungsblock 2

Wert nAnweisungsblock n

SonstAlternativblock (op-tional)

Besonders bei mehr als drei abzuprüfenden Bedingungen geeignet. DerWert von "Variable-kann bedingt auf Gleichheit wie auch auf Bereiche(größer/kleiner bei Zahlen) geprüft werden und der entsprechendzutreffende „Fall“ mit dem zugehörigen Anweisungsblock wirddurchlaufen.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 26Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 27: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Abweisende (kopfgesteuerte) Schleife

Anweisungen . . .

Bedingung

Anweisungsblock

Anweisungen . . .

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 Schleifezurückgekehrt und erneut mit der Prüfung der Bedingung begonnen.Ergibt die Auswertung der Bedingung falsch, wird unterhalb des Schleifenkörpersfortgefahren (ohne ihn auszuführen).Häufig benutzt man eine Bedingung, deren Wahrheitswert sich im Laufe der Zeitverändert, z.B. indem Variablen im Schleifenkörper verändert werden, die in derBedingung vorkommen. Man führt also die Anweisungen im Schleifenkörpersolange aus, bis die Bedingung nicht mehr zutrifft.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 27Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 28: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Struktogramme – Abweisende Schleife – Beispiel

Anweisungen . . .

Schiebe das Blech in den BackofenKipferl im Backofen noch nicht goldbraun

warte eine MinuteNimm das Blech aus dem OfenAnweisungen . . .

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 28Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 29: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Struktogramme – Durchführung

Probieren Sie diesen Algorithmus doch zu Hause einmal aus.

Wir würden uns im Laufe des Vorkurses über einen Nachweis dererfolgreichen Durchführung freuen!

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 29Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 30: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Überblick

Der Algorithmusbegriff

Darstellung von Algorithmen

Programmablaufplan DIN66001-1966

Struktogramme

Sortieren

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 30Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 31: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Einführung

Sortieren als eines der Standardprobleme der InformatikVerschiedenste Algorithmen– Unterschiedliche Laufzeiten

– Schlecht im Extremfall, gut im Mittel

Wichtige Unterschiede zum menschlichen SortierenUm sich einen Überblick über mehrere Elemente zu verschaffen,müssen sie einzeln angesehen und Zwischenergebnisse gebildetwerden.

Jedes „sich Merken“ oder „Ablegen“ muss in eigens angelegtenSpeicherstellen stattfinden.

Unterschiedliche Arten des Zugriffs auf das n-te Element.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 31Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 32: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren

Algorithmus zur Feststellung der kleinsten Zahl in einer Liste

Eingabe: Eine Liste von Zahlen(dargestellt durch einen verdeckt liegenden Stapel mit Zahlenkarten)

Ausgabe: Die kleinste in der Liste vorkommende Zahl

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 32Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 33: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren

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 (Sieist ja in jedem Fall erstmal die kleinste, da wir nur die eine Karte kennen)

Für jede weitere Karte aus dem Stapel

Zahl der Karte < der bisher kleinsten Zahl?

Ja Nein

Schreibe die Zahl als bisher kleinstegefundene Karte auf die Leerkarte

Fahre fort∅

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 33Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 34: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Algorithmus?

Ist das beschriebene Verfahren ein Algorithmus?

Das Verfahren ist in einer endlichen Beschreibung durch einStruktogramm beschrieben.

Die Objekte der Berechnung sind die Zahlen des Stapels.

Die elementaren Operationen sind das Vergleichen von zwei Zahlenund das Ablegen des Wertes in einer lokalen Variable. Diese sindmechanisch ausführbar.

Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.

Das Verfahren ist ein Algorithmus.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 34Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 35: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Algorithmus?

Ist das beschriebene Verfahren ein Algorithmus?

Das Verfahren ist in einer endlichen Beschreibung durch einStruktogramm beschrieben.

Die Objekte der Berechnung sind die Zahlen des Stapels.

Die elementaren Operationen sind das Vergleichen von zwei Zahlenund das Ablegen des Wertes in einer lokalen Variable. Diese sindmechanisch ausführbar.

Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.

Das Verfahren ist ein Algorithmus.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 34Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 36: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Suche der kleinsten Zahl – Liste

Zahlen nicht mehr als Stapel, sondern als Liste

Zahlen liegen aufgedeckt auf dem Tisch

Zahlen haben eine Position in der Liste, beginnend bei 1

Wir können vorne oder hinten etwas an die Liste anhängen

Wir können Zahlen auch aus der Liste raus nehmen

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 35Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 37: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren

Struktogramm für die Feststellung der kleinsten Zahl und deren Positionin einer Liste

Setze Position der momentan kleinsten Zahl auf 1Setze die momentan kleinsten Zahl auf das erste Element der ListeFür jedes Element aus der Liste

Listenelement < der momentan kleinsten Zahl?

Ja Nein

Setze die momentan kleinste Zahlauf das ListenelementSetze die Position der momentankleinsten Zahl auf die Position dermomentan betrachteten Zahl

Fahre fort

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 36Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 38: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Sortieren mit der Suche des Minimums einer Liste

Grobe Idee:Wir legen eine neue Liste an

Das Minimum und dessen Position wird in der zu sortierenden Listegesucht

Das Minimum wird an die neue Liste angehängt

Das Element an der Stelle des Minimums wird gelöscht

Wir sind fertig, wenn die zu sortierende Liste leer ist

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 37Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 39: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Eine zusätzliche neue Liste ist nicht nötigIdee:

Man benutzt eine Hilfsvariable, die die Position angibt, ab der die Listebereits sortiert ist. Diese Position teilt die Liste in einen linken, sortiertenTeil (Positionen kleiner der Hilfsvariable) und einen rechten, unsortiertenTeil (Positionen größer gleich der Hilfsvariable)

Zu Beginn zeigt die Hilfsvariable auf das erste Element, die kompletteListe 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 derHilfsvariable entspricht

– Versetze die Hilfsvariable um eine Position nach rechts (erhöhe sie um eins)

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 38Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 40: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Ausgangssituation:

5 2 9 3 1

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 39Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 41: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Zum Ende der 1. Iteration:

5 2 9 3 1

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 40Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 42: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Zu Beginn der 2. Iteration:

1 2 9 3 5

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 41Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 43: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Während der 2. Iteration:

1 2 9 3 5

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 42Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 44: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Zu Beginn der 3. Iteration:

1 2 9 3 5

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 43Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 45: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Während der 3. Iteration:

1 2 9 3 5

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 44Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 46: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Zu Beginn der 4. Iteration:

1 2 3 9 5

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 45Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 47: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Während der 4. Iteration:

1 2 3 9 5

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 46Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 48: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Am Ende der 4. Iteration:

1 2 3 5 9

Das Abbruchkriterium (Hilfsvariable auf dem letzten Element der Liste)ist erfüllt und die Liste damit sortiert.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 47Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 49: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 50: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 51: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Austauschoperation

Lege eine Leerkarte (3) als Zwischenspeicher für die Position deskleinsten Elements

5 2 9 3 1

1Leerkarte (1), Position des ersten unsortiertenWertes

Leerkarte (2), Zwischenspeicher für Austausch-operation

Leerkarte (3), Zwischenspeicher für die Positiondes kleinsten Elements

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 50Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 52: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 53: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Austauschoperation

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

5 2 9 3 1

1

5

Leerkarte (1), Position des ersten unsortiertenWertes

Leerkarte (2), Zwischenspeicher für Austausch-operation

Leerkarte (3), Zwischenspeicher für die Positiondes kleinsten Elements

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 52Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 54: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 55: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Austauschoperation

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation(Leerkarte 2)

5 2 9 3 1

1

5

5

Leerkarte (1), Position des ersten unsortiertenWertes

Leerkarte (2), Zwischenspeicher für Austausch-operation

Leerkarte (3), Zwischenspeicher für die Positiondes kleinsten Elements

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 54Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 56: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 57: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Austauschoperation

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

1 2 9 3 1

1

5

5

Leerkarte (1), Position des ersten unsortiertenWertes

Leerkarte (2), Zwischenspeicher für Austausch-operation

Leerkarte (3), Zwischenspeicher für die Positiondes kleinsten Elements

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 56Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 58: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 59: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Austauschoperation

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für dieAustauschoperation

1 2 9 3 5

1

5

5

Leerkarte (1), Position des ersten unsortiertenWertes

Leerkarte (2), Zwischenspeicher für Austausch-operation

Leerkarte (3), Zwischenspeicher für die Positiondes kleinsten Elements

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 58Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 60: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Struktogramm

Lege eine Leerkarte (1) zum Merken der Position ab der noch sortiertwerden mussSchreibe die 1 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 kleinstenElementsLeerkarte (1) nicht der Position des letzten Elements der Liste entspricht

Suche im unsortierten Teil des Feldes (rechts des Zeigers) das kleinsteElement und speichere die Position auf Leerkarte (3)

Sichere den Wert der ersten noch nicht sortierten Karte (Position aufLeerkarte (1)) im Zwischenspeicher für die Austauschoperation (Leer-karte 2)

Überschreibe den Wert der ersten noch nicht sortierten Karte (Positionauf Leerkarte (1)) mit dem gefundenen kleinsten Wert (Position aufLeerkarte (3))

Überschreibe die ursprüngliche Position des kleinsten Wertes (Positionauf Leerkarte (3)) mit dem Wert im Zwischenspeicher für die Austau-schoperation

Erhöhe den Wert auf Leerkarte (1) um eins

Page 61: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort – Austauschoperation

Erhöhe den Wert auf Leerkarte (1) um eins

1 2 9 3 5

2

5

5

Leerkarte (1), Position des ersten unsortiertenWertes

Leerkarte (2), Zwischenspeicher für Austausch-operation

Leerkarte (3), Zwischenspeicher für die Positiondes kleinsten Elements

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 60Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 62: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Ist das beschriebene Verfahren ein Algorithmus?

Das Verfahren ist in einer endlichen Beschreibung durch einStruktogramm gegeben.

Die Objekte der Berechnung sind die Zahlen der Liste.Die Operationen sind:

Finden der kleinsten Zahl einer Menge: Dies sind mechanischausführbar und nicht elementar, aber durch ein Struktogramm näherbeschrieben und in elementare Schritte unterteilt.Schreiben und Lesen von Karten. Dieses ist mechanisch ausführbarund elementar.

Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.

Das Verfahren ist ein Algorithmus.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 61Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 63: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Selection-Sort

Ist das beschriebene Verfahren ein Algorithmus?

Das Verfahren ist in einer endlichen Beschreibung durch einStruktogramm gegeben.

Die Objekte der Berechnung sind die Zahlen der Liste.Die Operationen sind:

Finden der kleinsten Zahl einer Menge: Dies sind mechanischausführbar und nicht elementar, aber durch ein Struktogramm näherbeschrieben und in elementare Schritte unterteilt.Schreiben und Lesen von Karten. Dieses ist mechanisch ausführbarund elementar.

Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.

Das Verfahren ist ein Algorithmus.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 61Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 64: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

In einer Wassersäule sind verschieden große Luftblasen. Dieunterste Luftblase steigt nun langsam auf. Während sie an kleinerenproblemlos vorbeikommt, wird sie durch größere gestoppt. Durchden Zusammenprall setzt sich die größere Luftblase in Bewegung,bis auch diese gestoppt wird oder am oberen Säulenende ankommt.Nun setzt sich abermals die unterste Luftblase in Bewegung. Wenndie Wassersäule eine endliche Anzahl Luftblasen enthält, dann kannirgendwann keine Luftblase mehr aufsteigen, da sich über jederLuftblase eine größere Luftblase befindet.Die Luftblasen sind nun von unten (klein) nach oben (groß) sortiert.Wir werden diese Idee auf eine Liste von Zahlen übertragen. DerWert der Zahl repräsentiert die Größe der Luftblase. Der Anfang derListe ist das untere Ende der Wassersäule, das Ende der Liste istdas obere Ende der Wassersäule.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 62Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 65: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

1. Iteration:

5 3 9 2 1

Die Liste wird von vorne beginnend durchlaufen und die ersten beidenElemente werden miteinander verglichen. Ist das erste Element größerals das zweite Element, dann folgt ein Vertauschen, denn die größerenLuftblasen können an den kleineren vorbei.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 63Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 66: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

1. Iteration:

3 5 9 2 1

Die kleineren Luftblasen stoßen die größeren Luftblasen an undstoppen selbst dabei. Es findet hier also kein Vertauschen der Zahlen„5“ und „9“ statt. Nun wird die „9“ weiter aufsteigen.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 64Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 67: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

1. Iteration:

3 5 9 2 1

Der nächste Vergleich führt wieder zu einem Vertauschen, da dieLuftblase mit der Größe 9 an der kleineren Luftblase mit der Größe 2vorbeikommt und weiter aufsteigen kann.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 65Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 68: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

1. Iteration:

3 5 2 1 9

Der letzte Vergleich führt wieder zu einem Vertauschen. Die Luftblasemit der Größe 9 ist als größte Luftblase an die Oberfläche derWassersäule gestiegen. Wir fahren mit der nächsten Iteration fort.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 66Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 69: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

2. Iteration:

3 5 2 1 9

Die Luftblase mit der Größe 3 stößt die größere Luftblase an und bleibtselbst dabei stehen. Die größere Luftblase steigt weiter auf, es findetkein Vertauschen statt.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 67Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 70: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

2. Iteration:

3 2 1 5 9

Am Ende der zweiten Iteration bleibt die Luftblase der Größe 5 an derLuftblase mit der Größe 9 hängen.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 68Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 71: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

3. Iteration:

2 1 3 5 9

Nach der dritten Iteration sind die größten drei Elemente aufsteigendsortiert.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 69Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 72: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

4. Iteration:

1 2 3 5 9

Die vierte Iteration sortiert die letzten beiden Elemente. Danach ist dieListe aufsteigend sortiert.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 70Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 73: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort – Struktogramm

Hinweis: a sei die Anzahl der zu sortierenden Zahlen

Reserviere eine Hilfsvariable i für die äußere SchleifeSetze i auf 1Reserviere eine Hilfsvariable j für die innere Schleife

i <= a - 1Setze j auf 1

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

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 71Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 74: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

Ist das beschriebene Verfahren ein Algorithmus?

Das Verfahren ist in einem endlichen Text durch ein Struktogrammbeschrieben.

Die Objekte der Berechnung sind die Zahlen der Liste.

Die Operationen sind das Vergleichen und Vertauschen zweierZahlen. Diese sind mechanisch ausführbar.

Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.

Das Verfahren ist ein Algorithmus.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 72Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 75: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Bubble Sort

Ist das beschriebene Verfahren ein Algorithmus?

Das Verfahren ist in einem endlichen Text durch ein Struktogrammbeschrieben.

Die Objekte der Berechnung sind die Zahlen der Liste.

Die Operationen sind das Vergleichen und Vertauschen zweierZahlen. Diese sind mechanisch ausführbar.

Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.

Das Verfahren ist ein Algorithmus.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 72Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 76: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Aufwandsabschätzung

Um den zu leistenden Aufwand für die Durchführung einesAlgorithmus zu bestimmen, muss man sich zuerst die Problemgrößebewusst 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 zusortierenden Elemente.

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 73Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 77: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Sortieren – Aufwandsabschätzung

Für einfache Sortierverfahren ist der Aufwand meist quadratisch zurProblemgröße.

Zu beachten ist hierbei, dass diese Abschätzung nicht allzu genaugenommen werden darf, da konstante Faktoren nicht beachtetwerden.

Wenn wir also von quadratischem Aufwand sprechen, so kann esgenauso gut 100 · n2 sein, als auch 0, 5 · n2 oder auch (n − 1)2.

Es geht aber auch besser . . .

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 74Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme

Page 78: Vorkurs Informatik SoSe 16 - ips.tu-braunschweig.de · Struktogramme – Abweisende Schleife – Beispiel Anweisungen ... Schiebe das Blech in den Backofen Kipferl im Backofen noch

Danke

Vielen Dank für Ihre Aufmerksamkeit!

23.03.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 75Vorkurs Informatik SoSe 16 Institut für Programmierung

und Reaktive Systeme