Vom Problem über den Algorithmus zum Programm

Größe: px
Ab Seite anzeigen:

Download "Vom Problem über den Algorithmus zum Programm"

Transkript

1 2 Vom Problem über den Algorithmus zum Programm Computer sind heute praktisch überall zu finden. Entsprechend groß ist die Vielzahl der Problemstellungen, mit denen man bei der Entwicklung von Programmen und Software-Systemen konfrontiert ist. Viele Problemstellungen erscheinen auf den ersten Blick recht weit von dem entfernt, was von Rechnern zu bewältigen ist, oder scheinen von sehr unterschiedlicher Natur zu sein. Um mit diesen Schwierigkeiten zurecht zu kommen, bietet die Informatik Problemlösungsstrategien an, die sich bewährt haben. In Abschnitt 2.1 dieses Kapitels stellen wir eine Vorgehensweise vor, in deren Zentrum das Konzept des Algorithmus steht. Der Begriff des Algorithmus wird in Abschnitt 2.2 behandelt. Abschnitt 2.3 präsentiert ein Beispiel zur Verdeutlichung der Vorgehensweise. 2.1 Vorgehensweise bei der Lösung von Programmierproblemen In Abbildung 2.1 ist eine klassische Vorgehensweise dargestellt, nach der Probleme in der Informatik gelöst werden können. Das Ziel einer Problemlösung ist, ausgehend von einer Problemstellung ein System zu finden, das diese Lösung darstellt. Diese Vorgehensweise lässt sich in drei Schritten aufgliedern. Ausgangspunkt ist eine gegebene Problemstellung, für die eine Lösung durch den Rechner gesucht wird. Nachfolgend wird mittels Abstraktion aus dem Problem im Idealfall ein Algorithmus erstellt. Der Algorithmus ist im nächsten Schritt in ein Programm zu transferieren, welches dann auf einem Rechner ausgeführt wird. Das Programm stellt die Lösung des Problems dar. Programmierprobleme entstammen dabei üblicherweise der realen Welt. Deshalb ist es in der Phase der Abstraktion notwendig, die realen Gegebenheiten in eine abstrakte Form, die durch Algorithmen beschrieben werden kann, zu überführen. Resultierend wird ein informationsverarbeitendes System hergeleitet, das durch ein Programm gegeben ist. Die eigentliche Ausführung geschieht dann auf einem Rechner (Computer, Maschine). H. Müller, F. Weichert, Vorkurs Informatik, DOI / _2, Springer Fachmedien Wiesbaden 2013

2 16 2 Vom Problem über den Algorithmus zum Programm Reale Welt Abstrakte Objekte Informationsverarbeitendes System Rechner Problem Abstraktion Algorithmus Darstellung Programm Realisierung Maschine Problemanalyse funktionale Spezifikation Algorithmenentwurf Darstellung in formalisierter Sprache für Ausführung durch Rechner Umsetzung in Elementarschritte einer Maschine Abbildung 2.1: Vorgehensweise zur Lösung von Problemen in der Informatik Aufgaben der Abstraktion sind die Problemanalyse, funktionale Spezifikation und der Algorithmenentwurf. Innerhalb der funktionalen Spezifikation wird beschrieben, was der Algorithmus genau leisten soll. Im Anschluss wird festgelegt wie er zu realisieren ist. Der Übergang vom Algorithmus zum Programm, die sogenannte Darstellung, bedeutet Beschreibung in formalisierter Sprache zur Ausführung durch den Rechner. Die letzte Stufe, der Übergang vom Programm zur Maschine, Realisierung genannt, besteht in der Umsetzung des Programms in Elementarschritte einer Maschine. 2.2 Algorithmen Das zentrale Konzept bei dieser Vorgehensweise ist offensichtlich der Algorithmus. Ein Algorithmus ist eine endliche Vorschrift zur eindeutigen Überführung von Eingabegrößen zu Ausgabegrößen in einer endlichen Zahl von Schritten. Diese Definition hört sich möglicherweise etwas abstrakt an, solche Vorschriften sind jedoch im täglichen Leben durchaus gebräuchlich. Betrachten wir beispielsweise einmal das folgende Backrezept für einen Marmorkuchen: Beispiel: Backrezept für einen Marmorkuchen Zutaten: 300g Mehl, 1 TL Backpulver, 300g Butter, 5 Eier, 250g Zucker, 1 Prise Salz, 3 EL ungesüßtes Kakaopulver, 1 guter El Schokocreme

3 2.2 Algorithmen 17 Abbildung 2.2: Algorithmische Beschreibung für das Backen eines Marmorkuchens Zubereitung: Butter mit Zucker und Salz schaumig rühren. Eier vorsichtig zugeben. Backpulver zum Mehl geben und über die Eier-Buttermasse sieben. Kastenkuchen oder Kranzkuchenform gut ausfetten und eventuell mit Semmelbrösel oder Gries ausstreuen. Die Hälfte des Teiges einfüllen. Unter die andere Hälfte das Kakaopulver und Schokocreme rühren. Auf den hellen Teig geben und mit einer Gabel spiralförmig durch den Teig ziehen. Oberfläche glatt streichen. Im Backofen bei 180 Grad Minuten backen. Kuchen 10 min in der Form auskühlen lassen. Den fertigen Marmorkuchen aus der Form stürzen und auf einem Kuchengitter vollständig erkalten lassen. Das Backrezept weist tatsächlich die wesentlichen Eigenschaften eines Algorithmus auf: die Endlichkeit der Länge der Beschreibung, die Terminierung, d. h. die Beendigung nach endlich vielen Operationen sowie die eindeutige Reihenfolge der Operationen. Allein die eindeutige Wirkung der Anweisungsfolge mag beim Backen nicht immer gegeben sein: die resultierenden Kuchen könnten durchaus etwas unterschiedlich aussehen und schmecken.

4 18 2 Vom Problem über den Algorithmus zum Programm Zusammenfassung 2.1 (Algorithmus): Ein Algorithmus ist eine Folge einfacher Anweisungen, die folgende Eigenschaften aufweisen: Endlichkeit: Die Beschreibung ist endlich lang. Terminierung: Nach Durchführung endlich vieler Operationen kommt das Verfahren zum Stillstand. Eindeutige Reihenfolge: Die Reihenfolge, in der die Operationen anzuwenden sind, ist festgelegt. Eindeutige Wirkung: Die Wirkung jeder Anweisung der Anweisungsfolge und damit der gesamten Folge ist eindeutig festgelegt. 2.3 Beispiel: Jüngster Studierender Wir wollen nun die oben geschilderte Vorgehensweise zur Lösung von Programmierproblemen an einem Beispielproblem des Jüngster Studierender illustrieren. Aufgabe ist es, in einer Menge von Studierenden den jüngsten zu finden. Zur Lösung des Problems sind sechs Teilschritte notwendig, die im Folgenden näher beschrieben werden: 1. Problem formulieren Wir wollen den jüngsten Studierenden in einer Vorlesung finden. 2. Problemanalyse, Problemabstraktion, Problemspezifikation Eine wesentliche Frage bei der Problemanalyse ist, ob es überhaupt eine Lösung gibt. Für unser Problem ist dies klar, es gibt eine Lösung. Es stellt sich hierbei allerdings die Frage, ob es genau eine Lösung gibt. Wenn man etwas genauer darüber nachdenkt, kommt man zu dem Schluss, dass es keine eindeutige Lösung gibt. Es könnte sein, dass es mehrere Studierende gibt, bei denen die Anforderungen erfüllt sind. Die Problemabstraktion wirft ebenfalls einige Fragen auf, die im Folgenden zu behandeln sind. Eine erste Frage ist sicherlich: Was ist Alter? Alter kann als ganze positive Zahl verstanden werden. Wenn es allerdings mehrere Studierende mit der gleichen ganzen positiven Zahl als Alter gibt, könnte man auf die Idee kommen, auch gebrochene Zahlen zu berücksichtigen. Eine andere Möglichkeit wäre, das Alter in Jahren, Monaten und Tagen zu messen. Wir werden uns bei dem gegebenen Problem des jüngsten Studierenden für die Version der ganzen positiven Zahl entscheiden. Eine weitere Frage ist: Was ist jüngster? Hierzu ist es notwendig, eine Ordnungsrelation zu haben. Diese ist auf ganzen positiven Zahlen natürlich durch die übliche <-Relation gegeben. Die letzte Frage, die wir uns stellen, ist: Müssen Personenangaben über die Studierenden vorhanden sein und in welcher Form? Eine Möglichkeit ist, dass die Studierenden anwesend sind, etwa während einer Vorlesung in einem Hörsaal. Eine andere Version ist, dass eine Liste

5 2.3 Beispiel: Jüngster Studierender 19 mit Personenangaben von Studierenden vorliegt, die natürlich eine Altersangabe, aber auch weitere Kennzeichen wie den Namen enthalten kann. Abhängig von der Gegebenheit ist das Problem in recht unterschiedlicher Weise lösbar. Wir entscheiden uns hier für die Möglichkeit mit der Liste von Personenangaben, da sie sich für die rechnerbasierte Lösung besser eignet. Man kann sich nun überlegen, ob tatsächlich der Name des jüngsten Studierenden gesucht werden soll. Vielleicht ist es zunächst einmal ratsam, sich nur mit dem Problem des Auffindens des Alters des jüngsten anwesenden Studierenden zu befassen. Dies führt zu einer Überarbeitung der Problemformulierung: Finde das Alter des jüngsten Studierenden. Solche Entscheidungskorrekturen über die Problemstellung sind tatsächlich auch in der Praxis üblich, sie erfolgen dann normalerweise in Rücksprache mit dem Kunden, der von der Notwendigkeit zu überzeugen ist. Ausgehend von diesen Überlegungen können wir nun unser Problem in abstrahierter Form spezifizieren: Problem: Minimum einer Menge von Zahlen Gegeben: Eine Folge a 0,...,a n 1 von positiven ganzen Zahlen, n > 0. Gesucht: Der kleinste Wert a der gegebenen Zahlen, d. h. a = min(a 0,...,a n 1 ). 3. Algorithmenentwurf Für den Entwurf von Algorithmen zur Lösung eines Problems stehen eine Reihe von Vorgehensweisen zur Verfügung. Zwei weitverbreitete Strategien sind: Top-Down-Strategie: Das gegebene Gesamtproblem wird in möglichst einfache Teilprobleme zerlegt, die dann einzeln gelöst werden. Aus den Lösungen dieser Teilprobleme wird dann die Lösung des Gesamtproblems abgeleitet. Diese Strategie wird auch als Divide and Conquer -Strategie bezeichnet. Wir werden auf diese Herangehensweise im Abschnitt 6 Rekursion zurückkommen. Bottom-Up-Strategie: Hierbei besteht das Gesamtproblem aus mehreren Teilproblemen. Diese Teilprobleme werden geeignet zusammengefügt, um eine Lösung des Gesamtproblems zu generieren. Das Minimum einer Menge von Zahlen lässt sich jedoch einfacher finden. Eine sicherlich naheliegende Strategie ist, die Menge Element für Element durchzugehen und sich das kleinste bisher gesehene Element zu merken. Dies ist die Vorgehensweise, der auch im Pseudocode in Abbildung 2.3 gefolgt wird. Pseudocode ist eine leicht formalisierte, aber noch nahe an der üblichen Sprache durchgeführte Formulierung eines Algorithmus, von der aus der Schritt zu einem Programm nicht mehr sehr groß ist. Der Pseudocode wird in Kapitel 3, das den Algorithmenentwurf zum Thema hat, erklärt. 4. Nachweis der Korrektheit (Semantik, Verifikation) Fragen, die im Zusammenhang mit dem Nachweis der Korrektheit gestellt werden, sind: Terminiert der Algorithmus, d. h., hört er irgendwann einmal auf zu arbeiten? Liefert er immer das richtige Ergebnis? Um solche Fragen zu beantworten, gibt es spezielle Formalismen und

6 20 2 Vom Problem über den Algorithmus zum Programm Setze merker auf a 0 ; Setze i auf 1; Solange i < n ist, fuehre aus: Wenn a i < merker, dann Setze merker auf a i ; Erhoehe i um 1; Gib merker zurueck; Abbildung 2.3: Pseudocode für den Algorithmus Minimumsuche Mechanismen. Eine Vorgehensweise besteht darin, die Wirkung von Einzelschritten eines Algorithmus zu spezifizieren. Dies kann über Aussagen geschehen, die den Zustand der Berechnung nach Ausführung des Einzelschrittes in Abhängigkeit des Zustandes vor Ausführung von Einzelschritten beschreiben. Durch Zusammensetzen der Aussagen entlang der Einzelschritte eines Algorithmus ist es dann möglich, eine Aussage über den Zustand der Berechnung nach Abarbeiten des Algorithmus zu treffen, d.h des Ergebnisses, in Abhängigkeit des Zustandes der Berechnung vor der Ausführung des Algorithmus, der Eingabe, zu machen. Auf diese Weise wird dem sprachlichen Aufbau eines Algorithmus, der sogenannten Syntax, eine inhaltliche Bedeutung, eine so genannte Semantik zugeordnet. Wir werden uns in Kap. 18 Compiler und formale Sprachen mit Syntax und Semantik befassen, dabei allerdings die Frage des Nachweises der Korrektheit nicht mehr aufgreifen. Dieser ist einer der Schwerpunkte des Informatikstudiums. 5. Aufwandsanalyse Durch Aufwandsanalyse soll herausgefunden werden, welche Rechnerressourcen bei der Abarbeitung des Algorithmus gebraucht werden. Rechnerressourcen sind beispielsweise der Bedarf an Speicher zur Ablage der benötigten Daten und der Zeitbedarf für die Ausführung des Algorithmus. Der Algorithmus zur Minimumsuche ist in beiderlei Hinsicht recht genügsam. Die Anzahl der Schritte, die bei n gegebenen Zahlen auszuführen ist, ist offensichtlich proportional zu n: jedes Element wird genau einmal angesehen und die Anzahl der Aktionen für jedes Element ist konstant, da nur ein Vergleich des aktuellen Wertes mit dem gemerkten Minimum und möglicherweise eine Aktualisierung des gemerkten Minimums durchzuführen sind. Dies ist im Prinzip optimal, denn jedes Element der Menge muss mindestens ein Mal angesehen werden, da es sonst sein könnte, dass sich das minimale unter den nicht betrachteten befindet. Auch der Bedarf an Speicher ist proportional zu n, da neben den n Elementen im Wesentlichen nur das gemerkte Minimum gespeichert werden muss. Wir werden in Kapitel 12, das sich mit der Analyse des asymptotischen Aufwands von Algorithmen befasst, genauer auf die Aufwandsanalyse des Minimumsuche-Algorithmus eingehen. 6. Programmierung Bei der Programmierung geht es darum, den Algorithmus in einer Programmiersprache zu

7 2.3 Beispiel: Jüngster Studierender 21 class ProgrammMinSuche{ public static void main(string[] args){ int[] a = {11,7,8,3,15,13,9,19,18,10,4}; int merker = a[0]; int i = 0; int n = a.length; while (i < n){ if (a[i] < merker) merker = a[i]; i = i + 1; } System.out.println(merker); } } Abbildung 2.4: Java-Programm zur Minimumsuche formulieren, sodass er letztendlich durch einen Rechner ausführbar wird. Der Quellcode in Abbildung 2.4 zeigt ein Java-Programm, das den Algorithmus aus Pseudocode 2.3 realisiert. Offensichtlich ist diese Darstellung recht formal und für den menschlichen Leser mit scheinbar überflüssigen Dingen versehen. Dieser Formalismus erlaubt es jedoch dem Rechner, das Programm automatisch zu analysieren und auszuführen. Das gezeigte Programm soll nur zur Illustration dienen und muss an dieser Stelle nicht verstanden werden. Es wird in Kapitel 4 Grundkonzepte der Programmierung besprochen, mit dem die Einführung in die Programmierung beginnt. Zusammenfassung 2.2 (Vorgehensweise bei der Lösung von Programmierproblemen): Bei der Lösung eines algorithmisch orientierten Programmierproblems sind im Allgemeinen folgende Schritte durchzuführen: 1. Problem formulieren 2. Problemanalyse, Problemabstraktion, Problemspezifikation 3. Algorithmenentwurf 4. Nachweis der Korrektheit, Verifikation 5. Aufwandsanalyse 6. Programmierung Aufgabe 2.1: Geben Sie analog zum Backrezept weitere Beispiele für algorithmenartige Anweisungen aus dem täglichen Leben an.

8 22 2 Vom Problem über den Algorithmus zum Programm Aufgabe 2.2: Wir wollen feststellen, ob sich in einer Liste von Studierenden eine Person mit dem Alter 19 befindet. Spezifizieren Sie das Problem in abstrahierter Form analog zur Vorgehensweise beim Problem Jüngster Studierender. Aufgabe 2.3: Geben Sie abstrahierte Formulierungen für die folgenden Probleme an: a) Gibt es in der Vorlesung einen Teilnehmenden mit dem Namen Müller? b) Überprüfen Sie, ob sich innerhalb der Veranstaltung zwei Personen mit gleichem Nachnamen befinden.

9

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen FD Informatik Mauch SSDL (WHRS) Reutlingen Algorithmen Überblick Definition Notwendigkeit Realisierung Grundkonzepte Umsetzung im Unterricht Algorithmus? Ein Algorithmus ist eine Verwaltungsvorschrift,

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

Grundlagen der Informatik I Einführung

Grundlagen der Informatik I Einführung Grundlagen der Informatik I Einführung Konzepte imperativer Programmierung : Six, H.W., 99 Themen der heutigen Veranstaltung 1. Informatik, Computer, Programmierung 2. Problem und Algorithmus 3. Programme

Mehr

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

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Einführende Beispiele 2. Algorithmen Täglich werden Verarbeitungsvorschriften

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax Einführung in die Programmierung für NF Algorithmen, Datentypen und Syntax Ziele Begriffsbildungen: InformaCk, Algorithmus, Programm, Compiler und andere Einordnung von Java Ein einfaches Java- Programm

Mehr

11. Rekursion, Komplexität von Algorithmen

11. Rekursion, Komplexität von Algorithmen 11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv

Mehr

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? 1. Einführung Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? Wie beschreiben wir Algorithmen? Nach welchen Kriterien

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Informatik 1 Teil 1 - Wintersemester 2012/2013 Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann übernommen 0. Rechner und Programmierung

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

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

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Informatik Teil 1 Wintersemester 2011/2012 Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann übernommen Inhalt 1. Algorithmen -

Mehr

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07 Vortrag am 17.11.2006 Nichtdeterministische Turingmaschinen und NP Yves Radunz Inhaltsverzeichnis 1 Wiederholung 3 1.1 Allgemeines........................................

Mehr

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de

Mehr

Marmorkuchen im Weckglas

Marmorkuchen im Weckglas Marmorkuchen im Weckglas Laut meinem Papa gibt es einen Kuchen, der niemals auf der Kaffeetafel fehlen darf und von dem man auch nie genug bekommen kann: Dettinger Marmorkuchen. Frisch ist er doch eigentlich

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus Problemreduktion durch Transformation am Beispiel des Erweiterten Euklidschen Algorithmus Wolfgang Windsteiger JKU Linz, A 4040 Linz, Austria Kurzfassung Transformation beschreibt im Wesentlichen die algorithmische

Mehr

Inhalt. 6 Liebe Leserinnen, liebe Leser. 9 Backen ohne Kohlenhydrate

Inhalt. 6 Liebe Leserinnen, liebe Leser. 9 Backen ohne Kohlenhydrate Inhalt 6 Liebe Leserinnen, liebe Leser 9 Backen ohne Kohlenhydrate 10 Süßer Genuss ohne Kohlenhydrate 11 Kleine Zutaten-Warenkunde 12 Noch ein paar Tipps 14 Das Wichtigste in Kürze 17 Backrezepte mal ganz

Mehr

Definition: (Kette, noethersche Ordnung)

Definition: (Kette, noethersche Ordnung) 3. Funktionales Programmieren 3.4 Semantik, Testen und Verifikation Definition: (Kette, noethersche Ordnung) Sei (M, ) eine Ordnung. Eine Folge ϕ : N M heißt eine (abzählbar unendliche) aufsteigende Kette,

Mehr

Das Praktikum mit Seminar vertieft die in der Vorlesung erworbenen Fähigkeiten in theoretischer und praktischer Hinsicht:

Das Praktikum mit Seminar vertieft die in der Vorlesung erworbenen Fähigkeiten in theoretischer und praktischer Hinsicht: 66/2006 vom 13.10.2006 FU-Mitteilungen Seite 25 e. Module affiner Bereiche Modul: Chemie für Physiker Aneignung der Grundlagen der Chemie mit Ausnahme der organischen Chemie sowie Erlangung eines Allgemeinwissens

Mehr

Kapitel 1 1 Einleitung

Kapitel 1 1 Einleitung Kapitel 1 Einleitung 1 1 1 Einleitung 1 Einleitung Die Informatik begegnet uns im Alltag ständig. Einmal natürlich als Rechenanlagen, die wir in Büros, Arztpraxen und zu Hause sehen. Zum anderen ist sie

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de

Mehr

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Definition: (Kette, noethersche Ordnung) Definition: (Kette, noethersche Ordnung) (2) Lemma: Terminierungskriterium:

Definition: (Kette, noethersche Ordnung) Definition: (Kette, noethersche Ordnung) (2) Lemma: Terminierungskriterium: Definition: (Kette, noethersche Ordnung) Definition: (Kette, noethersche Ordnung) (2) Sei (M, ) eine Ordnung. Eine Folge ϕ : N M heißt eine (abzählbar unendliche) aufsteigende Kette, wenn für alle i N

Mehr

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2007/08 Literatur Herbert Klaeren, Michael Sperber. Die Macht der Abstraktion. Teubner Verlag,

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Algorithmenkonstruktion

Algorithmenkonstruktion Algorithmenkonstruktion Thomas Röfer Praktische Informatik 2 VAK: 03-700.02 Voraussetzung: 03-700.01 (PI-1) ECTS: 6 Rückblick PI-1 Statistik Gesamt: 347 Studierende Übungen erfolgreich absolviert: 274

Mehr

1 Programmierfehler und ihre Behebung

1 Programmierfehler und ihre Behebung 1 Programmierfehler und ihre Behebung (kleiner lebenspraktischer Ratgeber) Grundsätze: Jeder Mensch macht Fehler... insbesondere beim Programmieren. Läuft ein Programm, sitzt der Fehler tiefer. Programmierfehler

Mehr

REZEPT. Zitronen-Mohn-Mini-Gugelhüpfe N 05. Backbube Markus Hummel Gugelhüpf

REZEPT. Zitronen-Mohn-Mini-Gugelhüpfe N 05. Backbube Markus Hummel  Gugelhüpf REZEPT REZEPTTITEL Zitronen-Mohn-Mini-Gugelhüpfe AUS DEM FEATURE Gugelhüpf KONTRIBUTOR Backbube Markus Hummel www.backbube.com LEBENLANG N 05 ZUTATEN ZUBEREITUNG Teig: 35 g Butter 50 g Zucker 1 Ei (M)

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

Mehr

Abstrakte Algorithmen und Sprachkonzepte

Abstrakte Algorithmen und Sprachkonzepte Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise

Mehr

Abschnitt 2: Daten und Algorithmen

Abschnitt 2: Daten und Algorithmen Abschnitt 2: Daten und Algorithmen 2. Daten und Algorithmen 2.1 Zeichenreihen 2.2 Datendarstellung durch Zeichenreihen 2.3 Syntaxdefinitionen 2.4 Algorithmen 2 Daten und Algorithmen Einf. Progr. (WS 08/09)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken

Mehr

11. Rekursion, Komplexität von Algorithmen

11. Rekursion, Komplexität von Algorithmen nwendung der Rekursion 11. Rekursion, Komplexität von lgorithmen Teil 2 Java-eispiele: Power1.java Hanoi.java Rekursiv definierte Funktionen - Fibonacci-Funktion - Fakultät, Potenz -... Rekursiver ufbau

Mehr

Didaktik der Informatik. Abschnitt 4 Lernziele Dr. Nicole Weicker

Didaktik der Informatik. Abschnitt 4 Lernziele Dr. Nicole Weicker Didaktik der Informatik Abschnitt 4 Lernziele Dr. Nicole Weicker Lernziele Definition Ein Lernziel ist eine sprachliche Formulierung, die beschreibt, welche Lernergebnisse und welches Verhalten innerhalb

Mehr

Lösungsvorschlag Serie 2 Rekursion

Lösungsvorschlag Serie 2 Rekursion (/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma

Mehr

Einführung in die Informatik Iterationen

Einführung in die Informatik Iterationen Einführung in die Informatik Iterationen Konstruktion, Anwendungen, Varianten Wolfram Burgard 1 Motivation Im vorangegangenen Kapitel haben wir mit der while-schleife eine Form von Wiederholungsanweisungen

Mehr

Funktionale Programmiersprachen

Funktionale Programmiersprachen Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Von Labyrinthen zu. Algorithmen

Von Labyrinthen zu. Algorithmen Von Labyrinthen zu 4 Gerald Futschek Charakterisierung Algorithmus Ein Algorithmus ist ein schrittweises Verfahren ist exakt beschrieben liefert nach endlich vielen Schritten das Ergebnis (terminiert)

Mehr

Einführung in die Informatik Iterations

Einführung in die Informatik Iterations Motivation Einführung in die Informatik Iterations Konstruktion, Anwendungen, Varianten Wolfram Burgard Im vorangegangenen Kapitel haben wir mit der while-schleife eine Form von Wiederholungsanweisungen

Mehr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr 4. Übung Abgabe bis 25.11.2016, 16:00 Uhr Aufgabe 4.1: Verklemmungsbedingungen a) Welche drei Bedingungen müssen gelten, damit es zu einer Verklemmung in einem parallelen System kommen kann? b) Nach welcher

Mehr

DOWNLOAD. Schokoladen pudding, Marmorkuchen und Waffeln. Einfaches Kochen nach Fotos, Band 1. D. Thoma-Heizmann / F. Strobel

DOWNLOAD. Schokoladen pudding, Marmorkuchen und Waffeln. Einfaches Kochen nach Fotos, Band 1. D. Thoma-Heizmann / F. Strobel DOWNLOAD D. Thoma-Heizmann / F. Strobel Schokoladen pudding, Marmorkuchen und Waffeln Einfaches Kochen nach Fotos, Band 1 Downloadauszug aus dem Originaltitel: SCHOKOLADENPUDDING 1 Zutaten für 2 Personen

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

Mehr

KUCHENVERKAUF. Hier findet ihr leckere und einfache Kuchenrezepte für jeden Geschmack!

KUCHENVERKAUF. Hier findet ihr leckere und einfache Kuchenrezepte für jeden Geschmack! MARMORKUCHEN 200 g weiche Butter 180 g Zucker 3 Eier 250 g Mehl 3 Teelöffel Backpulver 1/4 Teelöffel gemahlene Vanille 2 Esslöffel Milch 20 g Kakaopulver 20 g Zucker 3 Esslöffel Milch Prise Salz... VORBEREITUNGEN:

Mehr

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

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Einleitung Was ist Informatik? 5 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Programmierung 13 2 Vom Problem über den Algorithmus zum Programm 15 2.1 Vorgehensweise bei der

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik Was ist ein Algorithmus? Ein Algorithmus ist eine eindeutige Handlungsvorschrift, [bestehend] aus endlich vielen, wohldefinierten

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

1 Funktionale vs. Imperative Programmierung

1 Funktionale vs. Imperative Programmierung 1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.

Mehr

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 12. März 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) : 2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine

Mehr

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung

Mehr

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I

Mehr

Vanillekipferl. Zutaten:

Vanillekipferl. Zutaten: Lebkuchen 350 g Mehl 300 g Zucker 150 g Früchte, gehackte, kandierte (nach Geschmack) kann man auch weglassen 100 g Haselnüsse, gemahlene 3 TL Lebkuchengewürz 1 TL Nelke(n), gemahlen 1 EL Vanillezucker

Mehr

Interne Sortierverfahren

Interne Sortierverfahren Angewandte Datentechnik Interne Sortierverfahren Interne Sortierverfahren Ausarbeitung einer Maturafrage aus dem Fach A n g e w a n d t e D a t e n t e c h n i k Andreas Hechenblaickner 5CDH HTBLA Kaindorf/Sulm

Mehr

Suchen und Sortieren

Suchen und Sortieren Ideen und Konzepte der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen

Mehr

1 Abstrakte Datentypen

1 Abstrakte Datentypen 1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;

Mehr

Kinder-Kategorie. Wir haben den Kuchen halbiert und dann umgedreht, damit er aussieht wie ein Schmetterling. Schmetterlingstorte:

Kinder-Kategorie. Wir haben den Kuchen halbiert und dann umgedreht, damit er aussieht wie ein Schmetterling. Schmetterlingstorte: Schmetterlingstorte: Zutaten: 2 Eier 100 g Zucker 100 g Mehl 2 Pck. Vanillezucker ½ TL Backpulver 500 g Quark 125 g Zucker 375 ml Sahne 1 Dose Mandarinen 1 Pck. weiße Gelatine 3 EL Rum Fett und Semmelbrösel

Mehr

Programmieren für Fortgeschrittene

Programmieren für Fortgeschrittene Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2011/12 Programmieren für Fortgeschrittene Rekursive Spezifikationen Die folgende

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

Algorithmen und Datenstrukturen Sommersemester 2007

Algorithmen und Datenstrukturen Sommersemester 2007 Algorithmen und Datenstrukturen Sommersemester 2007 Steffen Reith reith@informatik.fh-wiesbaden.de Fachhochschule Wiesbaden 4. April 2007 Steffen Reith Algorithmen und Datenstrukturen 4. April 2007 1 /

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 30. Ausblick Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13.02.2016 1 13.02.2016 B. Nebel Info I 3 / 17 Programmieren jedenfalls ein bisschen Python-Programme

Mehr

Einführung in die Informatik Algorithms

Einführung in die Informatik Algorithms Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren

Mehr

124 Kompetenzorientierte Aufgaben im Informatikunterricht

124 Kompetenzorientierte Aufgaben im Informatikunterricht 124 Kompetenzorientierte Aufgaben im Informatikunterricht 4.2 Aufgaben 4.2.1 Aufgabe 1: Kühlschrank 4.2.1.1 Aufgabenstellung Ein einfacher Kühlschrank besitzt einen Ein-Aus-Schalter, der jederzeit betätigt

Mehr

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te 1 Einführung: Algorithmen Algorithmen und Datenstrukturen WS 2012/13 Pro f. Dr. Sán do r Fe k e te Literatur 1.1 Was ist ein Algorithmus? Ein Algorithmus ist eine aus endlich vielen Schritten bestehende

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr