Post on 19-Oct-2020
Vorkurs Informatik SoSe 18Java – Einführung
Dr. Werner Struckmann / Maximilian von Unwerth, 23.03.2018
Technische Universität Braunschweig, IPS
Institut für Programmierungund Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
StudiumIm ersten Studium der Informatik wird gelernt (Pflicht):
ProgrammierungAlgorithmen und DatenstrukturenLogik + Theoretische InformatikTechnische InformatikSoftware EngineeringDatenbankenComputernetzeBetriebssystemeIT-Sicherheit
Vorlesungsbeginn: 03. Apr. 2018Vorkurse sollen den Einsteig erleichtern, Vorkurse sind KEINE
Pflichtvoraussetzung fürs Studium!
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 2Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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…
an Hand von Beispielen: Sortierverfahren, GraphenalgorithmenZielgruppeStudierende, die wenige Vorkenntnisse mit Informatik haben.Insbesondere, wenn Sie
keinen Grund- oder Leistungskurs Informatik belegt haben,keine Programmiererfahrung haben.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 3Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Ablaufplan
23.03 Algorithmen, Java-Einführung
26.03 Einfache Sortierverfahren
27.03 Rucksackprobleme, Suchen
28.03 Bäume und Graphen, Dijkstra
29.03 Mehr...
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 4Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Ablaufplan
23.03 Algorithmen, Java-Einführung
26.03 Einfache Sortierverfahren
27.03 Rucksackprobleme, Suchen
28.03 Bäume und Graphen, Dijkstra
29.03 Mehr...
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 4Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Ablaufplan
23.03 Algorithmen, Java-Einführung
26.03 Einfache Sortierverfahren
27.03 Rucksackprobleme, Suchen
28.03 Bäume und Graphen, Dijkstra
29.03 Mehr...
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 4Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Ablaufplan
23.03 Algorithmen, Java-Einführung
26.03 Einfache Sortierverfahren
27.03 Rucksackprobleme, Suchen
28.03 Bäume und Graphen, Dijkstra
29.03 Mehr...
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 4Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Ablaufplan
23.03 Algorithmen, Java-Einführung
26.03 Einfache Sortierverfahren
27.03 Rucksackprobleme, Suchen
28.03 Bäume und Graphen, Dijkstra
29.03 Mehr...
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 4Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Übungen
Von 13:00 Uhr bis 16:00 Uhr
Am Dienstag ab 13.30 Uhr.
Theorie
Programmieren (Java)
Werkzeuge (Unix)
Räume:
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 5Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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.“
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 6Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Einführung – Gliederung der InformatikHauptgebiete:
Interdisziplinäre Nebengebiete:
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 7Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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…
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 8Institut 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-15Minuten 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 Dose aufbewahren.
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Der Algorithmusbegriff – Handlungsvorschrift IImplizit 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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 10Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Der Algorithmusbegriff – Handlungsvorschrift IISchalte den Backofen auf 150 ◦C
Warte 10 Minuten
Schiebe Blech in den Backofen
Stelle eine Mischung aus einer Tasse Puderzucker und einer PackungVanillezucker 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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 11Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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 ist
und die Reihenfolge der Schritte festlegt.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 12Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 13Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Der Algorithmusbegriff – Als Algorithmus IISchalte den Backofen auf 150 ◦C
Warte 10 Minuten
Schiebe Blech in den Backofen
Stelle eine Mischung aus einer Tasse Puderzucker und einer PackungVanillezucker 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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 14Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Der Algorithmusbegriff – Ein Algorithmus?
The one with the power to vanquish the Dark Lord approaches... bornto 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 powerthe Dark Lord knows not... and either must die at the hand of the otherfor neither can live while the other survives... the one with the power tovanquish the Dark Lord will be born as the seventh month dies …
J.K. Rowling’s The Order of the Phoenix.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 15Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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 undein 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.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 16Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Der Algorithmusbegriff – Beispiele
Koch- und Backrezepte
Bedienungsanleitungen (z.B. für Handys)
Notenfolgen zum Musizieren
Waschmaschinenprogramme
Sortierverfahren
Abfolge in ProduktionsstraßenBerechnungsverfahren:
ggT bestimmen
Funktionen ableiten
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 17Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Der Algorithmusbegriff – Präzisierung
Ein Algorithmus ist eine wohldefinierte Rechenvorschrift, die eine(eventuell leere) Menge von Eingaben verwendet und eine Menge vonAusgaben 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 Handlungsvorschrift
dagegen muss nicht enden.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 18Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Darstellung von Algorithmen
Man kann einen Algorithmus beispielsweise alsText
Pseudocode oder in einer Programmiersprache
Als Flussdiagramm (Programmablaufplan)
Struktogramm (Nassi-Shneiderman-Diagramm)
…darstellen.
Wir verwenden Struktogramme nach DIN 66261
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 19Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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)
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 20Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 21Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 22Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Struktogramme
Linearer Ablauf (Sequenz):
Anweisung 1Anweisung 2Anweisung 3Anweisung 4Anweisung 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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 23Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Struktogramme – VanillekipferlNimm eine SchüsselFülle 200g Mehl hineinFülle 250g Butter hineinFülle 180g Zucker hineinFülle 200g fein gemahlene Mandeln hineinFülle 1 Päckchen Vanillezucker hineinKnete den Inhalt der Schüssel, bis ein glatter Teig entstehtForme aus walnussgroßen Stückchen Teig kleine Hörnchen und lege sie aufein mit Papier ausgelegtes BackblechSchalte Backofen auf 150 ◦CWarte 10 MinutenSchiebe Blech in den BackofenWarte 10-15 MinutenStelle eine Mischung aus einer Tasse Puderzucker und einer Packung Vanille-zucker herNimm Blech aus Backofen herausBestäube die noch warmen Kipferl mit Mischung aus Puder- und Vanillezucker
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 24Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Struktogramme – Alternative Auswahl
Bedingung
Wahr Falsch
Anweisungsblock 1 Anweisungsblock 2
Anweisungsblock 1 wenn Bedingung wahrSonst Block 2Blöcke bestehen wieder aus weiteren BlöckenAm Ende wird die Auswahl verlassen
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 25Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Struktogramme – Alternative Auswahl
Anweisungen …Fülle ein Päckchen Vanillezucker hinzuKnete den Inhalt der Schüssel, bis ein glatter Teig ent-steht
Ist der Teig fest?
Ja Nein
Fortfahren Füge einen Esslöffel Mehlhinzu
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 26Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Struktogramme – Verschachtelte Auswahl
Anweisungen …Wird Mehl für das Rezept benötigt?
Ja NeinIst Mehl vorrätig?
Ja NeinFortfahren Setze Mehl auf
EinkaufslisteAnweisungen …∅
Fortfahren
∅
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 27Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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“
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 28Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Struktogramme – Abweisende Schleife
Anweisungen …Bedingung
AnweisungsblockAnweisungen …
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üftBedingungen sollten keine Konstanten sein⇒ EndlosschleifeSchleifen führen solange ihren Körper aus bis die Bedingung falsch ist.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 29Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 30Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 31Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Vorschau: Sortieren – Einführung
Sortieren als eines der Standardprobleme der InformatikVerschiedenste Algorithmen– Unterschiedliche Laufzeiten
– Schlecht im Extremfall, gut im MittelWichtige Unterschiede zum menschlichen Sortieren
Um sich einen Überblick über mehrere Elemente zu verschaffen, müssensie einzeln angesehen und Zwischenergebnisse gebildet werden.
Jedes „sich Merken“ oder „Ablegen“ muss in eigens angelegtenSpeicherstellen stattfinden.
Unterschiedliche Arten des Zugriffs auf das n-te Element.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 32Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Vorschau: Sortieren
Struktogramm für die Feststellung der kleinsten Zahl in einem StapelLege eine Leerkarte zum Merken der kleinsten bisher gefundenen Zahl (lo-kale Variable)Schreibe die Zahl auf der ersten Karte des Stapels auf die Leerkarte (Sie istja 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.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 33Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 34Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 34Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
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 istUmsetzung:
Benutzt den Algorithmus von eben zum Finden der kleinen Zahl
Anpassen des Algorithmus damit die Position der Karte im Stapelzurückgegeben wird.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 35Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Zusammenfassung
InformatikAlgorithmus
BackenSortieren
Darstellung von Algorithmen
Morgen:Sortieren
Gleich:Programmieren
Literatur:Abenteuer Informatik, 3. Auflage Jens Gallenbacher SpringerSpektrum
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 36Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Überblick
Einführung in die Programmierung zur Vereinfachung des Einstiegsins StudiumErstellung von ausführbaren Programmen für den ComputerDenk- und Vorgehensweisen beim ProgrammierenInhalte:
Hello WorldDatentypenAusdrückeVariablenArraysMethodenRekursionObjektorientierte Programmierung
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 37Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Die Java-Programmiersprache
Ursprünglich entwickelt von Sun Microsystems
Gehört nun zu Oracle
Plattformunabhängig
Kompilierte Sprache
Objektorientiert
Kompilierte Programme werden auf einer virtuellen Maschineausgeführt
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 38Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Arbeitsumgebung
Um Java-Programme zu schreiben, wird folgendes benötigtEin Text-Editor
Notepad++VimEmacsSublime Text
Alternativ: Eine integrierte EntwicklungsumgebungIntellij IDEANetbeansEclipse
Das Java Development Kit JDK (nicht zu verwechseln mit der JavaRuntime Edition JRE)
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 39Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Arbeitsablauf
1. PlanungAnalyse des ProblemsAnalyse der Anforderungen an die LösungBenötigte DatenobjekteLaufzeitumgebungMögliche Ansätze
2. ProgrammierungProgramm wird geschriebenFür kompilierte Sprachen: Kompilieren des ProgrammsAusführen des Programms
3. TestenMacht das Programm, was es soll?
Zwischen den Phasen wird hin und her gewechselt, je nachEntwicklungsmodell (siehe Software Engineering 1)
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 40Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Programmierung
Erstellen einer Textdatei mit Programmcode
Tipp: Texteditor auf UTF-8 umstellen, erspart Ärger mit Umlauten!
Programmcode in ausführbaren (Byte)Code übersetzen (.class-Datei)
Befehl: javac Quelldatei
Bytecode auf der JVM ausführen
Ausführung startet mit der main-Methode
Ausführung: java Klassenname
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 41Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Programmierung
Erstellen einer Textdatei mit Programmcode
Tipp: Texteditor auf UTF-8 umstellen, erspart Ärger mit Umlauten!
Programmcode in ausführbaren (Byte)Code übersetzen (.class-Datei)
Befehl: javac Quelldatei
Bytecode auf der JVM ausführen
Ausführung startet mit der main-Methode
Ausführung: java Klassenname
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 41Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Programmierung
Erstellen einer Textdatei mit Programmcode
Tipp: Texteditor auf UTF-8 umstellen, erspart Ärger mit Umlauten!
Programmcode in ausführbaren (Byte)Code übersetzen (.class-Datei)
Befehl: javac Quelldatei
Bytecode auf der JVM ausführen
Ausführung startet mit der main-Methode
Ausführung: java Klassenname
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 41Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
„Hello World“
public class Hello {public static void main(String[] args) {
System.out.println("Hello World!");}
}
Programm besteht aus mindestens einer KlasseKlassenname steht hinter classDateiname muss Klassenname + .java seinmain-Methode ist Ausgangspunkt für die AusführungProgramm führt Folge von Anweisungen aus, von oben nach untenAnweisungen (Statements) enden mit einem Semikolon (;)Aufruf von System.out.println() gibt etwas aus.
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 42Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Die main-Methode
Ausführung startet mit der ersten Anweisung der main-Methode
public static void main(String[] args)
Muss in einer Klasse stehen
Signatur wird verständlicher, sobald Methoden behandelt werden
Bis dahin: Programmgerüst mit Klasse und main-Methodeübernehmen
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 43Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Ausgeben von Text
System.out.println("Text") gibt Text mit Zeilenumbruch am Endeaus
System.out.print("Text") gibt Text ohne Zeilenumbruch am Ende aus
"Text" kann durch eine Zahl ersetzen werden: System.out.println(42)
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 44Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Rechnen mit Java
public class Rechnen {public static void main(String[] args) {System.out.println(1 + 1);System.out.println(2 * 2.5);System.out.println(4 - 0.5);System.out.println(4.0 / 3);System.out.println(4 / 3); // Warum 1?System.out.println(7 % 3); // Was wird hier berechnet?System.out.println(8 % 3); // Was wird hier berechnet?System.out.println(9 % 3); // Was wird hier berechnet?System.out.println(1 + 2 * 2 / 3);
}}
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 45Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Überblick und Ausblick
Die Sprache Java
Arbeitsablauf
„Hello World“
main-Methode als Ausgangspunkt
Ausgabe mit Java
Rechnen mit Java
Morgen: Ausdrücke, Variablen, Datentypen
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 46Institut für Programmierung
und Reaktive Systeme
Der Algorithmusbegriff Darstellung von Algorithmen Programmablaufplan DIN66001-1966 Struktogramme Vorschau: Sortieren Java Arbeitsablauf „Hello World“ Danke
Danke
Vielen Dank für Ihre Aufmerksamkeit!
23.03.2018 Dr. Werner Struckmann / Maximilian von Unwerth Vorkurs Informatik SoSe 18 Seite 47Institut für Programmierung
und Reaktive Systeme