Vorkurs Informatik WiSe 16/17 - Technische Universität Braunschweig

Werbung
Institut für Programmierung
und Reaktive Systeme
Vorkurs Informatik WiSe 16/17
Konzepte der Informatik
Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016
Technische Universität Braunschweig, IPS
Inhaltsverzeichnis
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 5
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Studium
Im ersten Semester Informatik wird Grundlegendes beleuchtet:
Mathematik
Programmierung
Algorithmen und Datenstrukturen
Vorlesungsbeginn: 17. Okt. 2016
Vorkurse sollen den Einsteig erleichtern, Vorkurse sind keine
Pflichtvoraussetzung fürs Studium!
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 6
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Vorkurs
Ziel des Vorkurses Informatik – Algorithmen
Grundlegende 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
Zielgruppe
Studierende, die wenige Vorkenntnisse mit Informatik haben.
Insbesondere, wenn Sie
keinen Grund- oder Leistungskurs Informatik belegt haben,
keine Programmiererfahrung haben.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 7
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
07.10 Rucksackproblem und dynamische Programmierung
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
07.10 Rucksackproblem und dynamische Programmierung
10.10 Suchverfahren und Bäume
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
07.10 Rucksackproblem und dynamische Programmierung
10.10 Suchverfahren und Bäume
11.10 Graphen und Wegfindung mit Dijkstra
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
07.10 Rucksackproblem und dynamische Programmierung
10.10 Suchverfahren und Bäume
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
07.10 Rucksackproblem und dynamische Programmierung
10.10 Suchverfahren und Bäume
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Ablaufplan
04.10 Algorithmen und ihre Darstellung
05.10 Einfache Sortierverfahren
06.10 Weitere Sortierverfahren und Rucksackprobleme
07.10 Rucksackproblem und dynamische Programmierung
10.10 Suchverfahren und Bäume
11.10 Graphen und Wegfindung mit Dijkstra
12.10 Gerichtete Graphen und Darstellung
13.10 Codierung von Zeichen
14.10 Codierung von Medien
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 8
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Übungen
Ab 14:00 bis 17:00
Theorie
Werkzeuge (Unix)
Programmieren (Java)
Selbst aufteilen!
Räume:
IZ 161 Theorie
IZ G40 Rechnerraum
IZ 359 Rechnerraum
IZ 443 Rechnerraum (nur Programmieren)
IZ 251 Laptopgruppe
IZ 305 Laptopgruppe
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 9
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Einführung
Informatik - was ist das?
Informatik setzt sich aus den Worten Information und Mathematik
oder Automatik zusammen.
Informatik ist die Wissenschaft von der systematischen Verarbeitung
von Informationen, insbesondere der automatischen Verarbeitung
durch Rechenanlagen.
Computer sind die Werkzeuge der Informatiker.
E.W. Dijkstra: „In der Informatik geht es genauso wenig um
Computer, wie in der Astronomie um Teleskope.“
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 10
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Einführung – Gliederung der Informatik
Hauptgebiete:
Interdisziplinäre Nebengebiete:
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 11
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 12
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Handlungsvorschriften
Viele Dinge im Leben werden nach einem festgelegtem Schema
durchgeführt.
Schemata regeln, welche Schritte mit welchen Objekten in welcher
Reihenfolge gemacht werden.
Beispiel: Wie heben Sie Geld am Geldautomaten ab?
Von der Handlungsvorschrift zum Algorithmus. . .
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 13
Vorkurs Informatik WiSe 16/17
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 Menge
Teig in der Hand rollen und ein Hörnchen formen. Diese nicht zu
dicht auf ein mit Backpapier ausgelegtes Blech legen und im
vorgeheizten 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 Tasse
Puderzucker und 1 Päckchen Vanillezucker bestäuben.
Abkühlen lassen und in einer gut verschließbaren Dose
aufbewahren.
Der Algorithmusbegriff – Handlungsvorschrift I
Implizit können wir dem Rezept folgende Handlungsvorschrift
entnehmen:
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 lege
sie auf ein mit Papier ausgelegtes Blech
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 15
Vorkurs Informatik WiSe 16/17
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 einer
Packung Vanillezucker her
Warte 10-15 Minuten bis Vanillekipferl goldbraun
Nimm Blech aus dem Backofen heraus
Bestäube die warmen Kipferl mit Mischung aus Puder- und
Vanillezucker
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 16
Vorkurs Informatik WiSe 16/17
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“ des
Problems, wobei
die Handlungsvorschrift erkennbar einen Anfang und ein Ende1 hat,
aus einzelnen Schritten besteht, für die jeweils klar ist, was mit welchen
Dingen zu tun ist
und die Reihenfolge der Schritte festlegt.
Ein Problem, für dessen Lösung ein Algorithmus existiert, heißt
berechenbar.
1
Die Beschreibung ist ein endlicher Text, die Ausführung der Handlungsvorschrift
dagegen muss nicht enden.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 17
Vorkurs Informatik WiSe 16/17
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 lege
sie auf ein mit Papier ausgelegtes Blech
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 18
Vorkurs Informatik WiSe 16/17
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 einer
Packung Vanillezucker her
Warte 10-15 Minuten bis Vanillekipferl goldbraun
Nimm Blech aus dem Backofen heraus
Bestäube die warmen Kipferl mit Mischung aus Puder- und
Vanillezucker
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 19
Vorkurs Informatik WiSe 16/17
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 seventh
month dies... and the Dark Lord will mark him as his equal, but he
will have power the Dark Lord knows not... and either must die at
the 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 as
the seventh month dies . . .
J.K. Rowling’s The Order of the Phoenix.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 20
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff – Ein Algorithmus?
Engagement, Teamgeist und das permanente Streben nach Perfektion sind wichtige Bausteine unseres Erfolgs. Und unserer Philosophie. Mit technologischer Kompetenz und Innovationskraft
bringt XX bewegende Ideen auf die Straße. Der schnellste Sportwagen der Welt, das größte und stärkste Diesel-Aggregat, das
je in einen PKW eingebaut wurde oder das sparsamste Automobil aller Zeiten sind nur einige Beispiele, wie XX mit technischen
Revolutionen neue Maßstäbe setzt.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 21
Vorkurs Informatik WiSe 16/17
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 in
bestimmten zeitlichen Abständen zu dem Gebräu zusammenzumischen. Die benötigte
Baumschlangenhaut sowie das Zweihorn-Horn ist nicht im öffentlichen Handel erhältlich.
Die Herstellung des Trankes dauert mehrere Wochen, wobei bestimmte Mondphasen zu
beachten sind. Alle Details sind in Zaubertränke und Zauberbräue von Arsenius Bunsen
nachzulesen. Der fertige Trank sieht aus wie dunkler, träge blubbernder Schleim.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 22
Vorkurs Informatik WiSe 16/17
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 bestimmen
Funktionen ableiten
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 23
Vorkurs Informatik WiSe 16/17
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 Menge
von Ausgaben erzeugt.
Ein Algorithmus ist also eine Abfolge von Berechnungsschritten, die
die Eingabe in die Ausgabe umwandelt.
Der Algorithmus muss durch einen endlichen Text in einer
wohldefinierten 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.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 24
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 25
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Darstellung von Algorithmen
Man kann einen Algorithmus beispielsweise als
Text
Pseudocode oder in einer Programmiersprache
Als Flussdiagramm (Programmablaufplan)
Struktogramm (Nassi-Shneiderman-Diagramm)
...
darstellen.
Wir verwenden Struktogramme nach DIN 66261
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 26
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 27
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Sinnbilder:
Sinnbilder
für Programmablaufplan nach DIN66001-1966
Sinnbilder:
Bennenung und Bemerkung
Sinnbild
Sinnbilder:
Programmablaufplan
DIN66001-1966
–(process)
Sinnbilder
Bennenung
und Bemerkung
Sinnbild
Operation,
allgemein
Sinnbilder:
Bennenung
und Bemerkung
Sinnbild
Operation,
allgemein
(process)
Bennenung
und
Bemerkung
Sinnbild
Operation, allgemein (process)
Sinnbild
Benennung und Bemerkung
Operation, allgemein (process)
Verzweigung (decision)
Operation,
allgemein
(process)
Verzweigung
(decision)
Verzweigung (decision)
Verzweigung
(decision)
Verzweigung
(decision)
Unterprogramm
(prefdefined
process)
Unterprogramm (prefdefined
process)
Unterprogramm (prefdefined
Unterprogramm
(pre-defined process)
process)
Unterprogramm
(prefdefined
Einund Ausgabe (input/output)
process)
Ausgabe
(input/output)
Ein- Einund und
Ausgabe
(input/output)
Ein- und Ausgabe (input/output)
Ein- und Ausgabe (input/output)
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 13
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 28
02.04.2014
| Vorkurs Informatik – Algorithmen 1 | Seite 13
Vorkurs Informatik
WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Sinnbilder für Programmablaufplan nach DIN66001-1966
Sinnbilder:
Sinnbilder:
Sinnbilder:
Programmablaufplan
Sinnbild
Sinnbild
Sinnbilder:
Sinnbild
Sinnbild
Sinnbild
DIN66001-1966
– Sinnbilder
Bennenung
Bemerkung
Bennenung
undund
Bemerkung
Bennenung und Bemerkung
Schleifenbegrenzung
(loop
limit)
Schleifenbegrenzung
(loop
limit)
Bennenung
und Bemerkung
Schleifenbegrenzung
(loop
limit)
Anfang
Benennung
und
Bemerkung
Anfang
Anfang
Schleifenbegrenzung (loop limit)
Schleifenbegrenzung
(loop limit)
Anfang
Anfang
Schleifenbegrenzung
(loop
limit)
Schleifenbegrenzung
(loop
limit)
Schleifenbegrenzung
(loop limit)
Ende
Ende
Schleifenbegrenzung
(loop
Ende
Schleifenbegrenzung
(looplimit)
limit)
Ende
Ende
Ablauflinie
(flow
line)
Vorzugsrichtungen
Ablauflinie
(flow
line)
Ablauflinie
(flow
line)
Ablauflinie
(flow line)
Vorzugsrichtungen
(Pfeil
optional):
(Pfeil
optional):
Vorzugsrichtungen
(Pfeil
optional):
Vorzugsrichtungen
(Pfeil
optional):
a) von
oben
nach
unten
a) von
oben
nach
unten
a) von
oben
nach
unten
Ablauflinie
(flow
line)
a)
obenlinks
nach
unten
b) von
nach
rechts
b) von
von
nach
rechts
b) von
linkslinks
nach
rechts
Vorzugsrichtungen
(Pfeil optional):
b) von links nach rechts
a) von oben nach unten
Zusammenführen
(junction)
Zusammenführen
(junction)
Zusammenführen
(junction)
b)
von links nach rechts
Zusammenführen
(junction)
Ausgang
sollte
durch
einen
Pfeil
Ausgang
sollte
durch
einen
Pfeil
gekennzeichAusgang
sollte
durch
einen
Pfeil
sollte durch
einen Pfeil
gekennzeichnet
werden
gekennzeichnet
werden
net Ausgang
werden
Zusammenführen
(junction)
gekennzeichnet werden
Ausgang sollte durch einen Pfeil
gekennzeichnet werden
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 14
| Vorkurs Informatik
– Algorithmen
1 | Garbe
Seite 14Seite 29
04.10.2016 Dr. 02.04.2014
Werner Struckmann
/ Stephan
Mielke, Jakob
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Programmablaufplan
DIN66001-1966
– Beispiel
Beispiel für Programmablaufplan
nach DIN66001-1966
Beginn
Dreckwäsche
in die
Waschmaschine
Fertig?
Waschmittel
in die
Waschmaschine
Warten
Waschmaschine
anstellen
ja
Fertig?
ja
nein
nein
Wäsche
in den
Trockner
Trockner
anstellen
Warten
Wäsche
zusammenlegen
Wäsche
in den Schrank
räumen
Ende
02.04.2014 | Vorkurs Informatik – Algorithmen 1 | Seite 15
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 30
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 31
Vorkurs Informatik WiSe 16/17
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 einen
rechteckigen Strukturblock geschrieben.
Strukturblöcke können untereinander
gestellt werden.
Die Strukturblöcke werden nacheinander
von oben nach unten durchlaufen.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 32
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Struktogramme – Vanillekipferl
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 lege sie auf
ein mit Papier ausgelegtes Backblech
Schalte Backofen auf 150 ◦ C
Warte 10 Minuten
Schiebe Blech in den Backofen
Warte 10-15 Minuten
Stelle eine Mischung aus einer Tasse Puderzucker und einer Packung Vanillezucker her
Nimm Blech aus Backofen heraus
Bestäube die noch warmen Kipferl mit Mischung aus Puder- und Vanillezucker
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 33
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Struktogramme – Alternative Auswahl
Bedingung
Wahr
Anweisungsblock 1
Falsch
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.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 34
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Struktogramme – Alternative Auswahl
Anweisungen . . .
Fülle ein Päckchen Vanillezucker hinzu
Knete den Inhalt der Schüssel, bis ein glatter Teig
entsteht
Ist der Teig fest?
Ja
Fortfahren
Nein
Füge einen Esslöffel Mehl
hinzu
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 35
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Struktogramme – Verschachtelte Auswahl
Anweisungen . . .
Wird Mehl für das Rezept benötigt?
Ja
Ist Mehl vorrätig?
Ja
Nein
Fortfahren
Setze Mehl auf
Einkaufsliste
∅
Anweisungen
...
Nein
Fortfahren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 36
Vorkurs Informatik WiSe 16/17
∅
Institut für Programmierung
und Reaktive Systeme
Struktogramme – Fallauswahl
Variable
Wert 1
Anweisungsblock 1
Wert 2
Anweisungsblock 2
Wert n
Anweisungsblock n
Sonst
Alternativblock (optional)
Prüft auf mehrere Bedingungen
Reihenfolge wichtig
Gleichheits- oder Bereichsprüfung möglich
Besitzt Standardfall
Sonst wie „Auswahl“
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 37
Vorkurs Informatik WiSe 16/17
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ühren
Sonst: 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.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 38
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Struktogramme – Abweisende Schleife – Beispiel
Anweisungen . . .
Schiebe das Blech in den Backofen
Kipferl im Backofen noch nicht goldbraun
warte eine Minute
Nimm das Blech aus dem Ofen
Anweisungen . . .
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 39
Vorkurs Informatik WiSe 16/17
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 der
erfolgreichen Durchführung freuen!
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 40
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Überblick
Der Algorithmusbegriff
Darstellung von Algorithmen
Programmablaufplan DIN66001-1966
Struktogramme
Vorschau: Sortieren
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 41
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Vorschau: Sortieren – Einführung
Sortieren als eines der Standardprobleme der Informatik
Verschiedenste Algorithmen
– Unterschiedliche Laufzeiten
– Schlecht im Extremfall, gut im Mittel
Wichtige Unterschiede zum menschlichen Sortieren
Um sich einen Überblick über mehrere Elemente zu verschaffen,
müssen sie einzeln angesehen und Zwischenergebnisse gebildet
werden.
Jedes „sich Merken“ oder „Ablegen“ muss in eigens angelegten
Speicherstellen stattfinden.
Unterschiedliche Arten des Zugriffs auf das n-te Element.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 42
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Vorschau: 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 (Sie
ist 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
Schreibe die Zahl als bisher kleinste
gefundene Karte auf die Leerkarte
Nein
Fahre fort
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 43
Vorkurs Informatik WiSe 16/17
∅
Institut für Programmierung
und Reaktive Systeme
Vorschau: Sortieren – Algorithmus?
Ist das beschriebene Verfahren ein Algorithmus?
Das Verfahren ist in einer endlichen Beschreibung durch ein
Struktogramm beschrieben.
Die Objekte der Berechnung sind die Zahlen des Stapels.
Die elementaren Operationen sind das Vergleichen von zwei Zahlen
und das Ablegen des Wertes in einer lokalen Variable.
Die Reihenfolge der Operationen ist ebenfalls durch das
Struktogramm festgelegt.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 44
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Vorschau: Sortieren – Algorithmus?
Ist das beschriebene Verfahren ein Algorithmus?
Das Verfahren ist in einer endlichen Beschreibung durch ein
Struktogramm beschrieben.
Die Objekte der Berechnung sind die Zahlen des Stapels.
Die elementaren Operationen sind das Vergleichen von zwei Zahlen
und das Ablegen des Wertes in einer lokalen Variable.
Die Reihenfolge der Operationen ist ebenfalls durch das
Struktogramm festgelegt.
Das Verfahren ist ein Algorithmus.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 44
Vorkurs Informatik WiSe 16/17
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 gestern zum Finden der kleinen Zahl
Anpassen des Algorithmus damit die Position der Karte im Stapel
zurückgegeben wird.
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 45
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Zusammenfassung
Informatik
Algorithmus
Backen
Sortieren
Darstellung von Algorithmen
Morgen:
Sortieren
Gleich:
Programmieren
Literatur:
Abenteuer Informatik, 3. Auflage Jens Gallenbacher Springer
Spektrum
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 46
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Karte
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 47
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Danke
Vielen Dank für Ihre Aufmerksamkeit!
04.10.2016 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe Seite 48
Vorkurs Informatik WiSe 16/17
Institut für Programmierung
und Reaktive Systeme
Herunterladen