Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Vorkurs Informatik WiSe 17/18Konzepte der Informatik
Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017
Technische Universität Braunschweig, IPS
Institut für Programmierungund Reaktive Systeme
Inhaltsverzeichnis
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 2Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Studium
Im ersten Semester Informatik wird Grundlegendes beleuchtet:MathematikProgrammierungAlgorithmen und Datenstrukturen
Vorlesungsbeginn: 16. Okt. 2017Vorkurse sollen den Einsteig erleichtern, Vorkurse sind keine
Pflichtvoraussetzung fürs Studium!
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 3Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Vorkurs
Ziel des Vorkurses Informatik – AlgorithmenGrundlegende Einführung in algorithmisches Denken
Was ist ein Algorithmus?Was sind Berechnungsschritte?In welcher Reihenfolge sollen sie ausgeführt werden?Eingaben, Ausgaben, Zwischenergebnisse. . .
anhand von Beispielen: Sortierverfahren, Graphenalgorithmen
ZielgruppeStudierende, die wenige Vorkenntnisse mit Informatik haben.Insbesondere, wenn Sie
keinen Grund- oder Leistungskurs Informatik belegt haben,
keine Programmiererfahrung haben.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 4Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
09.10 Rucksackproblem und dynamische Programmierung
10.10 Bäume und Suchverfahren
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 5Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Übungen
Von 13:45 Uhr bis 16:30 Uhr
Theorie
Programmieren (Java)
Werkzeuge (Unix)Räume:
IZ 161 - Theorie mit ColinIZ G40 - Programmieren mit TholeIZ 443 - Programmieren mit DanielPK 4.8 - Programmieren mit NicoleIZ 359 - NutShell mit PaulHS 65.2 - NutShell mit JeffHS 65.2 - NutShell mit Lennart
Selbst aufteilen!
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 6Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Einführung
Informatik - Was ist das?
Informatik setzt sich aus den Worten Information und Mathematikoder Automatik zusammen.
Informatik ist die Wissenschaft von der systematischen Verarbeitungvon Informationen, insbesondere der automatischen Verarbeitungdurch Rechenanlagen.
Computer sind die Werkzeuge der Informatiker.
E.W. Dijkstra: „In der Informatik geht es genauso wenig umComputer, wie in der Astronomie um Teleskope.“
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 7Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Einführung – Gliederung der Informatik
Hauptgebiete:
Interdisziplinäre Nebengebiete:
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 8Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 9Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Handlungsvorschriften
Viele Dinge im Leben werden nach einem festgelegtem Schemadurchgeführt
Schemata regeln, welche Schritte mit welchen Objekten in welcherReihenfolge gemacht werden.
Beispiel: Wie heben Sie Geld am Geldautomaten ab?
Von der Handlungsvorschrift zum Algorithmus. . .
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 10Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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.
Der Algorithmusbegriff – Handlungsvorschrift 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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 12Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Handlungsvorschrift II
Schalte 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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 13Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Intuitives Verstä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 Ende hat,aus einzelnen Schritten besteht, für die jeweils klar ist, was mit welchenDingen zu tun istund die Reihenfolge der Schritte festlegt.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 14Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – 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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 15Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Als Algorithmus II
Schalte 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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 16Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Ein Algorithmus?
The one with the power to vanquish the Dark Lord approaches...born to those who have thrice defied him, born as the seventhmonth dies... and the Dark Lord will mark him as his equal, but hewill have power the Dark Lord knows not... and either must die atthe hand of the other for neither can live while the other survives...the one with the power to vanquish the Dark Lord will be born asthe seventh month dies . . .
J.K. Rowling’s The Order of the Phoenix.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 17Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Ein Algorithmus?
Zum Brauen des Vielsaft-Trankes benötigt man folgende Zutaten:
Florfliegen,
Blutegel,
Flussgras,
Knöterich,
gemahlenes Horn eines Zweihorns,
kleingeschnittene Baumschlangenhaut und
ein Stück der Person, in die man sich verwandeln möchte (z.B. Haare).
Alle Zutaten sind in der vorgeschriebenen Menge und vorgegebener Reihenfolge und inbestimmten zeitlichen Abständen zu dem Gebräu zusammenzumischen. Die benötigteBaumschlangenhaut sowie das Zweihorn-Horn ist nicht im öffentlichen Handel erhältlich.Die Herstellung des Trankes dauert mehrere Wochen, wobei bestimmte Mondphasen zubeachten sind. Alle Details sind in Zaubertränke und Zauberbräue von Arsenius Bunsennachzulesen. Der fertige Trank sieht aus wie dunkler, träge blubbernder Schleim.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 18Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Beispiele
Koch- und Backrezepte
Bedienungsanleitungen (z.B. für Handys)
Notenfolgen zum Musizieren
Waschmaschinenprogramme
Sortierverfahren
Abfolge in Produktionsstraßen
Berechnungsverfahren:ggT bestimmenFunktionen ableiten
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 19Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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. 1
Die Objekte der Berechnung müssen klar sein.Die elementaren Operationen müssen mechanisch ausführbar sein.Die Reihenfolge der Operationen muss feststehen.
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.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 20Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 21Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Darstellung von Algorithmen
Man kann einen Algorithmus beispielsweise alsTextPseudocode oder in einer ProgrammierspracheAls Flussdiagramm (Programmablaufplan)Struktogramm (Nassi-Shneiderman-Diagramm). . .
darstellen.
Wir verwenden Struktogramme nach DIN 66261
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 22Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 23Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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 (pre-defined 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)
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 24Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 25Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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?
nein nein
ja ja
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 26Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 27Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 28Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 29Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Struktogramme – Alternative Auswahl
Bedingung
Wahr Falsch
Anweisungsblock 1 Anweisungsblock 2
Anweisungsblock 1 wenn Bedingung wahr
Sonst Block 2
Blöcke bestehen wieder aus weiteren Blöcken
Am Ende wird die Auswahl verlassen
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 30Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Struktogramme – Alternative Auswahl
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
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 31Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Struktogramme – Verschachtelte Auswahl
Anweisungen . . .
Wird Mehl für das Rezept benötigt?
Ja Nein
Ist Mehl vorrätig?Ja Nein
Fortfahren Setze Mehl aufEinkaufslisteAnweisungen. . .
∅
Fortfahren
∅
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 32Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Struktogramme – Fallauswahl
Variable
Wert 1Anweisungsblock 1
Wert 2Anweisungsblock 2
Wert nAnweisungsblock n
SonstAlternativblock (op-tional)
Prüft auf mehrere Bedingungen
Reihenfolge wichtig
Gleichheits- oder Bereichsprüfung möglich
Besitzt Standardfall
Sonst wie „Auswahl“
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 33Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Struktogramme – Abweisende Schleife
Anweisungen . . .
Bedingung
Anweisungsblock
Anweisungen . . .
Wiederholungsstruktur mit vorausgehender Bedingungsprüfung:
Zuerst Bedingung auswerten:
Bei wahr: Schleifenkörper ausführenSonst: Beende die Schleife ohne Ausführung des Körpers
Nach jeder Ausführung des Körpers wird die Bedingung erneut geprüft
Bedingungen sollten keine Konstanten sein ⇒ Endlosschleife
Schleifen führen solange ihren Körper aus bis die Bedingung falsch ist.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 34Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Struktogramme – Abweisende Schleife – Beispiel
Anweisungen . . .
Schiebe das Blech in den BackofenKipferl im Backofen noch nicht goldbraun
warte eine MinuteNimm das Blech aus dem OfenAnweisungen . . .
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 35Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
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!
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 36Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 37Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Vorschau: 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.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 38Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Vorschau: Sortieren
Struktogramm für die Feststellung der kleinsten Zahl in einem StapelLege 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∅
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 39Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Vorschau: 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.
Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.
Das Verfahren ist ein Algorithmus.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 40Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Vorschau: 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.
Die Reihenfolge der Operationen ist ebenfalls durch dasStruktogramm festgelegt.
Das Verfahren ist ein Algorithmus.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 40Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Vorschau: Sortieren – Selection-Sort
Idee:
1. Zu Beginn liegt der Stapel unsortierter Zahlen verdeckt vor einem.
2. Man sucht die kleinste Karte und legt sie vor sich.
3. Man wiederholt 2. so lange bis der Stapel leer ist
Umsetzung:
Benutzt den Algorithmus von eben zum Finden der kleinen Zahl
Anpassen des Algorithmus damit die Position der Karte im Stapelzurückgegeben wird.
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 41Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Zusammenfassung
InformatikAlgorithmus
BackenSortieren
Darstellung von Algorithmen
Morgen:
Sortieren
Gleich:
Programmieren
Literatur:
Abenteuer Informatik, 3. Auflage Jens Gallenbacher SpringerSpektrum
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 42Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Übungen
Von 13:45 Uhr bis 16:30 Uhr
Theorie
Programmieren (Java)
Werkzeuge (Unix)Räume:
IZ 161 - Theorie mit ColinIZ G40 - Programmieren mit TholeIZ 443 - Programmieren mit DanielPK 4.8 - Programmieren mit NicoleIZ 359 - NutShell mit PaulHS 65.2 - NutShell mit JeffHS 65.2 - NutShell mit Lennart
Selbst aufteilen!
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 43Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Karte
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 44Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme
Danke
Vielen Dank für Ihre Aufmerksamkeit!
04.10.2017 Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk Seite 45Vorkurs Informatik WiSe 17/18 Institut für Programmierung
und Reaktive Systeme