Algorithmen in Java. 1. Was sind Algorithmen? 2. Wie beschreibt man Algorithmen? 3. Wie erstellt man Algorithmen? 4. Wie untersucht man Algorithmen?

Größe: px
Ab Seite anzeigen:

Download "Algorithmen in Java. 1. Was sind Algorithmen? 2. Wie beschreibt man Algorithmen? 3. Wie erstellt man Algorithmen? 4. Wie untersucht man Algorithmen?"

Transkript

1 Algorithmen in Java 1. Was sind Algorithmen? 2. Wie beschreibt man Algorithmen? 3. Wie erstellt man Algorithmen? 4. Wie untersucht man Algorithmen? Grundlagen der Programmierung 1 Lernziele - Lerninhalt den Algorithmenbegriff und die Unterschiede zu (alltäglichen) Handlungsabläufen kennen die Kontrollstrukturen von Algorithmen anwenden können einfache Algorithmen selbst entwerfen können Zustandsautomaten als alternative Beschreibung von Abläufen kennen und anwenden können komplexere Algorithmen mittels Top-Down-Verfahren entwerfen können Algorithmen als Java-Methode implementieren können Entwurfsziele der Strukturierten Programmierung kennen Methoden zur Bestimmung der Komplexität von Algorithmen kennen und anwenden können Grundlagen der Programmierung 2 1

2 Was sind Algorithmen? Im Alltag begegnen uns Algorithmen in Form von Handlungsanweisungen. Sie beschreiben wie eine bestimmte Aufgabe gelöst bzw. ein Ziel erreicht werden kann. Beispiele: Ziel: Algorithmus: Ziel: Algorithmus: Ziel: Algorithmus: Gesund werden Nimm täglich zwei Tropfen der Arznei XYZ. Kuchen backen Rezept Modellflugzeug bauen Montageanleitung Grundlagen der Programmierung 3 Was sind Algorithmen? Ziel: Algorithmus: Spielen ( Eile mit Weile ) Spielanleitung (... bei einem 6-er Wurf darf nochmals gewürfelt werden...) Ziel: Werde Millionär Algorithmus: Wiederholen Sie die Schritte 1, 2 und 3, solange bis Sie einen Gewinn in Höhe von einer Million Franken erzielt haben: 1. Lottoschein ausfüllen 2. Schein bei einer Annahmestelle abgeben. 3. Auf die nächste Ziehung warten und Gewinn kassieren Grundlagen der Programmierung 4 2

3 Was sind Algorithmen? Ziel: Zu einem Temperaturwert x in Grad Celsius den entsprechenden Temperaturwert y in Grad Fahrenheit bestimmen. Algorithmus: Berechne diesen mittels der Gleichung y = 9x/5+32 Ziel: Bestimme den Wert x mit x*x = 5 Algorithmus: Rate den Wert x. Ziel: Algorithmus: Beethovensonate spielen Notenblatt Grundlagen der Programmierung 5 Was sind Algorithmen? (Intuitive) Definition: Ein Algorithmus ist eine präzise, endliche Verarbeitungsvorschrift, die genau festlegt, wie Instanzen einer Klasse von Problemen gelöst werden. Er legt fest, wie aus einer zulässigen Eingabe durch Ausführung elementarer (atomarer, primitiver) Operationen die Ausgabe ermittelt werden kann Grundlagen der Programmierung 6 3

4 Was sind Algorithmen? EVA - Prinzip: Eingabe Verarbeitung Ausgabe Eingabe Verarbeitung Ausgabe Grundlagen der Programmierung 7 Was sind Algorithmen? Präzise Definition des Algorithmenbegriffs setzt ein Berechnungsmodell voraus, wie die Registermaschine, die Turing-Maschine, die partiell-rekursiven Funktionen, Semi-Thuesysteme, usw. (in Zeitraum ) Grundlage für die Beantwortung der Frage: Was ist berechenbar? (in der theoretischen Informatik) Die unterschiedlichen Berechnungsmodelle sind äquivalent, also Der richtigen Berechenbarkeitsbegriff ist gefunden (Church sche These, 1936) Grundlagen der Programmierung 8 4

5 Was sind Algorithmen? Ausführende Ausführung Grundlagen der Programmierung 9 Was sind Algorithmen? Programm Prozessor Handlungsanweisung Programmausführung Grundlagen der Programmierung 10 5

6 Ausführung eines Algorithmus in einem Computer Algorithmus Programm in höherer Programmiersprache Programm in Maschinensprache Resultat Programmierung Übersetzung Abarbeitung durch CPU Kontrolle durch OS Grundlagen der Programmierung 11 Was sind Algorithmen? Der Begriff Algorithmus geht auf den Namen des persischen Mathematikers und Astronomen Ibn Musa Al-Chwarismi zurück, der im 9. Jhdt. lebte und das Lehrbuch Regeln der Wiedereinsetzung und Reduktion schrieb. Euklidischer Algorithmus : Ein von Euklid stammender Algorithmus zur Berechnung des grössten gemeinsamen Teilers zweier ganzer Zahlen a und b (ca. 350 v. Chr.). Einer der ältesten Algorithmen der Welt Grundlagen der Programmierung 12 6

7 Informelle Beschreibung durch Text Euklidischer Algorithmus zur Bestimmung des grössten gemeinsamen Teilers zweier natürlicher Zahlen x und y. 1. Lese die beiden natürlichen Zahlen x und y ein. 2. Falls x durch y teilbar ist, d.h. x mod y = 0, so gehe nach Schritt Ersetze x durch y und y durch den Rest der Division x durch y, d.h. Rest = x mod y. 4. Gebe den Wert x als ggt aus Grundlagen der Programmierung 13 Eigenschaften von Algorithmen Statische Finitheit: Die Beschreibung des Verfahrens ist von endlicher Länge Dynamische Finitheit: Zu jedem Ausführungszeitpunkt des Algorithmus werden nur endlich viele Ressourcen belegt Effektivität: Die Wirkung einer einzelnen Anweisung eines Algorithmus ist eindeutig festgelegt und ausführbar Grundlagen der Programmierung 14 7

8 Eigenschaften von Algorithmen Terminierung: Algorithmen kommen nach endlich vielen Schritten (Operationen) zum Stillstand kommen. Bemerkung: In der Informatik spielen auch nicht viele nicht-terminierende Programme eine wichtige Rolle, beispielsweise bei der Prozesssteuerung der Datenübertragung in Netzen interaktiven Programme zur Mensch Maschine Kommunikation (reaktive Systeme) Diese sind keine Algorithmen im engeren Sinn Grundlagen der Programmierung 15 Eigenschaften von Algorithmen Determinismus: Algorithmen, bei denen die Ausführungsreihenfolge der einzelnen Schritte (Operationen) eindeutig festgeliegt, heissen determiniert. In der Theorie spielen auch nicht determinierte Algorithmen eine Rolle. In der Praxis gewinnen zunehmend stochastische (von einem zufälligen Ereignis abhängige) Algorithmen an Bedeutung Grundlagen der Programmierung 16 8

9 Eigenschaften von Algorithmen Komplexität: gibt den benötigten Aufwand zur Berechnung der Resultate an Synonym für Leistungsgrössen, Kenngrössen, etc. die dem Leistungsvergleich von Algorithmen untereinander dienen Korrektheit: wünschenswert, aber: Nachweis sehr aufwendig, in der Praxis unmöglich Nachweis der Korrektheit des Resultats Nachweis der Terminierung Grundlagen der Programmierung 17 Beispiel: Algorithmenentwurf Kaffee kochen Koche Wasser Gib Kaffeepulver in die Tasse Fülle Wasser in die Tasse Grundlagen der Programmierung 18 9

10 Algorithmenentwurf Ein Haushaltsroboter versteht diese Anweisungen erst, wenn diese detaillierter beschrieben werden. Der erste Schritt wird dann zu: Koche Wasser Fülle den Topf mit Wasser Stelle den Topf auf den Herd Schalte den Herd an Warte bis es kocht Schalte die Herdplatte aus Grundlagen der Programmierung 19 Algorithmenentwurf Der zweite Schritt wird ebenfalls verfeinert: Gib Kaffeepulver in die Tasse Öffne Kaffeeglas Entnehme einen Löffel Kaffee Kippe Löffel in die Tasse Schliesse Kaffeeglas Grundlagen der Programmierung 20 10

11 Algorithmenentwurf Versteht der Roboter die Anweisungen immer noch nicht, so müssen die Schritte weiter verfeinert werden. Fülle den Topf mit Wasser Stelle den Topf unter den Wasserhahn Drehe den Wasserhahn auf Warte bis der Topf voll ist Drehe den Wasserhahn zu Grundlagen der Programmierung 21 Algorithmenentwurf Diesem Prinzip der schrittweisen Verfeinerung folgt man so lange, bis man zu atomaren Instruktionen kommt, d.h. Instruktionen, die unmittelbar verstanden und ausgeführt werden können. Man spricht von einem Top-Down-Entwurf Grundlagen der Programmierung 22 11

12 Kontrollstrukturen - Sequenz Sequenz: Der einfachste Algorithmus besteht aus einer Sequenz auszuführender Schritte (Instruktionen). Das heisst: 1. Zu einem bestimmten Zeitpunkt wird genau ein Schritt ausgeführt. 2. Jeder Schritt wird genau einmal ausgeführt und nicht wiederholt. Keiner wird ausgelassen. 3. Die Schritte werden in der gleichen Reihenfolge ausgeführt, in der sie im Text notiert sind 4. Mit der Ausführung des letzten Schrittes endet der gesamte Algorithmus Grundlagen der Programmierung 23 Kontrollstrukturen - Selektion Auswahl (Selektion): Bei der Auswahl werden Verarbeitungen in Abhängigkeit von einer oder mehreren Bedingungen alternativ ausgeführt. Wird benutzt, um eine für die korrekte Abarbeitung des Algorithmus benötigte Vorbedingungen zu verifizieren. die bedingte Verarbeitung die einfache Alternative und die merhfache Alternative Grundlagen der Programmierung 24 12

13 Kontrollstrukturen - Selektion Die bedingte Verarbeitung: Beispiel: Was macht der Roboter, wenn das Kaffeeglas leer ist? Nehme Kaffeeglas aus dem Fach Falls (das Kaffeeglas leer ist) dann nehme ein neues Kaffeeglas aus dem Schrank Öffne das Kaffeeglas Grundlagen der Programmierung 25 Kontrollstrukturen - Selektion Die einfache Alternative gestattet die Auswahl aus zwei Alternativen. Falls (Bedingung) dann Verarbeitung 1 sonst Verarbeitung 2 Fortsetzung Mehrfache Auswahl: Durch Schachtelung der einfachen Auswahl Grundlagen der Programmierung 26 13

14 Kontrollstrukturen - Selektion Die mehrfache Alternative oderfallunterscheidung gestattet die bedingte Auswahl von genau einer aus mehreren Alternativen. Die Auswahl erfolgt in Abhängigkeit vom Wert eines Ausdrucks (Selektor) Falls (Selektor =) Wert 1: Verarbeitung 1 Wert 2: Verarbeitung 2 Wert 3: Verarbeitung 3... sonst: Verarbeitung X Fortsetzung Grundlagen der Programmierung 27 Kontrollstrukturen - Selektion Auswahl (Bedingte Verarbeitung und die einfache Alternative) Einfach: falls (Bedingung) dann {Schritt} Oder: falls (Bedingung) dann {Schritt1} sonst {Schritt2} Pseudocode: if (Bedingung) then {Schritt1} else {Schritt2} end if Java: if (Bedingung) {Schritt1} else {Schritt2} Grundlagen der Programmierung 28 14

15 Kontrollstrukturen - Iteration Wiederholung (Schleife, Iteration): Wiederholt denselben Schritt solange, bis das Endkriterium erreicht ist. Betrachten wir den Schritt 1.1 im Beispiel Kaffee kochen, so kann dieser wie folgt verfeinert werden: Stelle den Topf unter den Wasserhahn Öffne den Wasserhahn Wiederhole Bestimme den Wasserstand im Topf solange bis der Wasserstand den Topfrand erreicht Schliesse den Wasserhahn Die Iteration erlaubt, einen Prozess von unbestimmter (evtl. unendlicher) Dauer in endlicher Form zu beschreiben Grundlagen der Programmierung 29 Implementation von Algorithmen: Kontrollstrukturen Iteration 2 Formen der Iteration: Fusspunktgesteuerte Schleife: wiederhole /* Schleifenrumpf */ solange </* Bedingung */> Java: do { Schleifenrumpf } while (Bedingung); Der Schleifenrumpf wird mindestens einmal durchlaufen. Kopfgesteuerte Schleife solange </* Bedingung */> führe aus /* Schleifenrumpf */ Ende; while (Bedingung) { Schleifenrumpf }; Grundlagen der Programmierung 30 15

16 Implementation von Algorithmen: Kontrollstrukturen Iteration 3 Zählschleife: Bezeichnung der Zählschleife ist meistens for Zählen wird am Anfang durch drei Ausdrücke spezifiert Ausdruck für den Startwert start Iterationsvorschrift iteration Abbruch-, Ausführungskriterium bedingung Implementation in Java: for (start; bedingung; iteration) { Schleifenrumpf... continue;... break; } Grundlagen der Programmierung 31 Komposition von Algorithmen: Komposition: Durch Hintereinanderausführung zweier oder mehrerer Algorithmen, sowie durch Verschachtelung, können neue Algorithmen erzeugt werden. A: A 1, A 2,... Die Kontrollstrukturen Sequenz, Selektion, Iteration und Komposition genügen, um jeden Algorithmus auszudrücken Grundlagen der Programmierung 32 16

17 Wie beschreibt man Algorithmen? Natürliche Sprache erweitert um mathematische Konstrukte Graphische Hilfsmittel Flussdiagramme Struktogramme Pseudocode Programmiersprachen Bemerkung: Die Wahl der Darstellung eines Algorithmus ist eine Frage der Zweckmässigkeit Grundlagen der Programmierung 33 Informelle Beschreibung durch Text Euklidischer Algorithmus zur Bestimmung des grössten gemeinsamen Teilers zweier natürlicher Zahlen x und y. 1. Lese die beiden natürlichen Zahlen x und y ein. 2. Falls x durch y teilbar ist, d.h. x mod y = 0, so gehe nach Schritt Ersetze x durch y und y durch den Rest der Division x durch y, d.h. Rest = x mod y. 4. Gebe den Wert x als ggt aus Grundlagen der Programmierung 34 17

18 Flussdiagramme Auch heute noch populäre Methode Symbole/Pfeile legen die Ausführungsreihenfolge der Aktionen fest Aktionen werden verbal oder mathematisch beschrieben Start Aktion Start Verzweigung If B then 1 else 2 I/O ja 1 B nein 2 I/O Ende Stop Grundlagen der Programmierung 35 Beispiel: Euklidischer Algorithmus Start Eingabe: x, y (natürliche Zahlen) x=y ja ja x := x y; nein x>y nein y:= y x; Ausgabe ggt ist x Stop Grundlagen der Programmierung 36 18

19 Struktogramme (Nassi Shneiderman) S 1 S 2... S n Sequenz von Anweisungen; die Statements S 1, S 2,... S n werden nacheinander ausgeführt ja B nein Selektion: prüfe Bedingung B und verzweige nach S 1, oder S 2 B S 1 S 2 S if B then S 1 else S 2 end Iteration: führe S aus, solange Bedingung B erfüllt ist. while B do S end Grundlagen der Programmierung 37 Beispiel: Euklidischer Algorithmus Eingabe: zwei natürliche Zahlen x, y x y x > y ja nein x := x y ; y := y x ; Ausgabe: ggt ist: x Grundlagen der Programmierung 38 19

20 Pseudosprache case (ausdruck) is when valu1 => /* Aktion1 */; when valu2 => /* Aktion2 */; when valu3 => /* Aktion3 */; when others => /* Aktion4 */; end case; while (ausdruck) loop /* Schleifen-Aktionen */; end loop; loop /* Schleifen-Aktionen */; exit when (ausdruck); end loop; Grundlagen der Programmierung 39 Programmiersprache Algorithmen werden für die Ausführung in einem Computer ausführen in eine Programmiersprache übersetzt. Die natürliche Sprache funktioniert nicht, denn: Das Vokabular ist zu gross, Die grammatischen Regeln sind sehr kompliziert Die Semantik der Worte ist oft nur aus dem Zusammenhang verständlich, z. B. Wink mit dem Zaunpfahl Es gibt keinen Algorithmus, der die natürliche Sprache zu erkennen und aufzuschlüsseln vermag. Also: Algorithmen müssen in einer für den Computer verständlichen Form, den Programmen vorliegen Grundlagen der Programmierung 40 20

21 Programmiersprache Maschinenunabhängige Sprachen (grosse Satz von zulässigen Befehlen) Maschinenabhängige Sprachen (kleiner Satz von zulässigen Befehlen) Von-Neumann-Rechner (Speicher mit einzeln adressierbaren Speicherzellen, in dem Daten und Programm abgelegt sind, Steuer- und Rechenwerk, Eingabe- und Ausgabeeinheiten); Typische Befehle sind, Übertragung von Daten aus den Speicherzellen in eine andere oder in ein Register, Addition zweier Zahlen, die im Register stehen) Syntax legt die Form korrekt geschriebener Programme fest (Definition mittels Backus-Naur-Form (BNF) Semantik legt die Wirkung der einzelnen Sprachelemente fest Grundlagen der Programmierung 41 Lokalitätsprinzip, Linearität Eine Folge (Sequenz) von Anweisungen fasst mehrere Anweisungen, die in einer bestimmten Reihenfolge ausgeführt werden, zu einem Ganzen zusammen. Wenn eine Anweisung nicht primitiv ist, lässt sie sich wiederum in eine Folge von Anweisungen bzw. eine Kontrollstruktur zerlegen Verallgemeinerung -> Definition des Blockbegriffs Grundlagen der Programmierung 42 21

22 Lokalitätsprinzip, Linearität Definition: Block Eine primitive Anweisung (evtl. Sprunganweisung) ist ein Block Wenn B[1],..., B[n] Blöcke sind, so ist die Sequenz begin B[1],..., B[n] end; (in Java: { B[1],..., B[n] } ) ebenfalls ein Block. Wenn A und B Blöcke sind, so ist if (bedingung) then A else B if end; ebenfalls ein Block. Wenn B ein Block ist, so ist while (bedingung) loop B end loop; ebenfalls ein Block. Untergeordnete/übergeordnete Block Grundlagen der Programmierung 43 Lokalitätsprinzip, Linearität Definition: Lokalitätsprinzip Ein Block B erfüllt das Lokalitätsprinzip, wenn B genau einen Eingang und einen Ausgang besitzt. Definition: Linearitätsprinzip Erfüllen die Blöcke B[1],..., B[n] das Lokalitätsprinzip, so erfüllt der Block B bestehend aus der Sequenz dieser Blöcke die Linearitätseingenschaft Grundlagen der Programmierung 44 22

23 Strukturierte Programmierung Hierarchische Struktur von Algorithmen (Dijkstra, Woodger) (Jede Ebene beschreibt den Lösungsalgorithmus vollständig, aber von der obersten zur untersten Ebene nimmt der Konkretisierungsgrad zu) Top-Down-Entwicklung und schrittweise Verfeinerung (Dijkstra, Wirth) (Ausgehend von einer Spezifikation des Problems wird der Lösungsalgorithmus schrittweise durch sukzessive Zerlegung in Teilprobleme bzw. Teillösungen ermittelt) Beschränkte Ablaufsteuerung (Böhm und Jacopini, Wirth) (Ablaufsteuerung eines Algorithmus durch die Basiskontrollelemente, wie Folge, Auswahl und Wiederholung, unbedingte Sprünge nur als Abbruchanweisung im Fehlerfall) Grundlagen der Programmierung 45 Strukturierte Programmierung Single Entry Single Exit (Mills) (Blöcke genügen dem Lokalitätsprinzip, ihre Wirkung lässt sich durch Vor- und Nachbedingung eindeutig beschreiben) Nichtüberlappende Kontroll- und Wirkungsbereiche (Constantine, Myers) (Jeder Block hat seinen eigenen Kontroll- und Wirkungsbereich, diese überlappen sich nicht untereinander) Lokalität der Daten (Dahl, Hoare) (Die logisch-funktionale Struktur und die Struktur der Daten sollen übereinstimmen, d.h. jeder Block verfügt nur über die Daten, die zur Erfüllung seiner Funktion benötigt werden) Grundlagen der Programmierung 46 23

24 Russische Multiplikation 1. Lese die Faktoren a und b ein. 2. Füge das Paar (a,b) in eine leere Liste L ein. 3. Solange (linke Zahl des zuletzt eingefügten Elementes (x,y) aus L ungleich null) Wiederhole Bilde ein neues Paar (x/2,2*y), (wobei Division ohne Rest) und füge es in L ein. Ende; 4. Solange (noch nicht alle Elemente aus L betrachtet) Wiederhole Hole das nächste Element (x,y) aus L. Wenn x ungerade ist, dann wird (x,y) in eine Liste L eingefügt. Ende; 5. Initialisiere eine Variable sum und setze diese auf Null. 6. Solange (noch nicht alle Elemente aus L betrachtet) Wiederhole Hole das nächste Element (x,y) aus L und addiere y zu sum hinzu. Ende; 7. Gebe sum aus Grundlagen der Programmierung 47 Russische Multiplikation 1. Lese die Faktoren a und b ein. 2. Setze lokale Variablen a und b durch x = a und y = b. 3. Initialisiere eine Variable durch sum = Solange (x ungleich 0) Wiederhole Wenn x ungerade ist, dann addiere y zu sum hinzu. Ersetze x und y durch x = x/2 und y = 2*y (wobei Division ohne Rest). Ende; 5. Gebe sum aus Grundlagen der Programmierung 48 24

25 Sieb des Eratosthenes ( v. Chr.) 1. Man schreibe alle Zahlen von 2 bis N auf. 2. Man rahme die Zahl 2 ein und streiche dann jede zweite Zahl. 3. Ist n die erste nicht-gestrichene Zahl, so rahme man n ein und streiche jede n-te Zahl. 4. Man führe Schritt 3 für alle n mit n*n <= N aus. 5. Alle eingerahmten bzw. nicht gestrichenen Zahlen sind Primzahlen. (entnommen aus dem Schülerduden für Mathematik) Grundlagen der Programmierung 49 Sieb des Eratosthenes ( v. Chr.) 1. Man schreibe die Zahlen von 2 bis N in eine Liste L. 2. Solange (die Liste L ist nicht leer) Wiederhole Hole die kleinste Zahl z aus L. Füge z in eine Liste P ein. Entferne jedes Vielfache von z aus L (insbesondere z selbst). Ende; 3. Gebe die Zahlen von P aus Grundlagen der Programmierung 50 25

26 Sieb des Eratosthenes ( v. Chr.) 1. Man schreibe die Zahlen von 2 bis N in eine Liste L. 2. Solange (noch nicht Listenende erreicht) Wiederhole Gehe zur nächstgrösseren nicht-gestrichenen Zahl z. Markiere diese Zahl z. Solange (noch nicht Listenende erreicht) Wiederhole Beginnend mit 2*z entferne jedes Vielfache von z aus L. Ende; Ende; 3. Gebe die markierten Zahlen als Primzahlen aus Grundlagen der Programmierung 51 26

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

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

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus Algorithmen Algorithmusbegriff Klärung der Herkunft des Begriffs Formale Definition von Algorithmus Algorithmusbegriff Algorithmen sind eine der ältesten (abstrakten) Beschreibungstechniken für Abläufe.

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration

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

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

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

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 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man umgangssprachlich,

Mehr

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung Teil I Einführung Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1 Vorbemerkungen Was ist Informatik? Informatik

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Ideen und Konzepte der Informatik

Ideen und Konzepte der Informatik Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert

Mehr

1 Vom Problem zum Program

1 Vom Problem zum Program Ein Problem besteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen. mathematisch: Ein Problem beschreibt eine Funktion f : E A, mit E = zulässige Eingaben und

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

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen. mathematisch: Ein Problem beschreibt eine Funktion f : E A, mit

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

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

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

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

Einfache Bedingte Ausführung

Einfache Bedingte Ausführung Kontrollstrukturen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder

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

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 5. Algorithmen K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 1. Berechne 2 n. Zu lösende Probleme 2. Berechne die Fakultät einer nat. Zahl: n! = 1 * 2 *... n 3. Entscheide,

Mehr

Programmentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ]

Programmentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ] Programmentwurf Bevor man sich daran macht, den Quelltext eines Programmes zu schreiben, sollte man sich einen Plan der Struktur des zukünftigen Programmes machen. Diese Phase eines Softwarentwicklungsprojekts

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

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

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

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

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

5. Strukturierte Programmierung

5. Strukturierte Programmierung 5. Strukturierte Programmierung 5.1 Ziele 5.2 Prinzipien 5.3 Basisstrukturen Folie 115 Apr-04 Ziele der strukturierten Programmierung Unterstützung einer methodischen Vorgehensweise beim Programmentwurf

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Algorithmen. Beispiele: Beispiele: Algorithmen zum Test auf Primzahl. Programmieren - Java I WS 2001

Algorithmen. Beispiele: Beispiele: Algorithmen zum Test auf Primzahl. Programmieren - Java I WS 2001 Algorithmen Ein Algorithmus ist ein Verfahren zur systematischen, schrittweisen Lösung eines Problems. Er besteht aus einzelnen Anweisungen, die in einer bestimmten Reihenfolge, evtl. mehrmals ausgeführt

Mehr

3.4 Ablaufsteuerung (Kontrollstrukturen)

3.4 Ablaufsteuerung (Kontrollstrukturen) 3.4 Ablaufsteuerung (Kontrollstrukturen) Sequenz (Folge von Anweisungen) Der Kaffee-Algorithmus beinhaltet einfache Schritte, die einer nach dem anderen auszuführen sind. Wir sagen, ein solcher Algorithmus

Mehr

BKTM - Programmieren leicht gemacht.

BKTM - Programmieren leicht gemacht. BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi

Mehr

Verifizierende Testverfahren

Verifizierende Testverfahren Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Syntax von LOOP-Programmen

Syntax von LOOP-Programmen LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:

Mehr

1 Programmiersprachen 1.1 1

1 Programmiersprachen 1.1 1 1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada

Mehr

Flussdiagramm / Programmablaufplan (PAP)

Flussdiagramm / Programmablaufplan (PAP) Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze

Mehr

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In

Mehr

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

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-Maschinen: Ein abstrakes Maschinenmodell Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen

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

4.3 Verifikation von Aussagen über Algorithmen

4.3 Verifikation von Aussagen über Algorithmen 4.3 Verifikation von Aussagen über Algorithmen Hoaresche Logik: Kalkül zum Beweisen von Aussagen über Algorithmen und Programme, Programm-Verifikation, [C.A.R. Hoare, 1969]. Mod - 4.51 Statische Aussagen

Mehr

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Algorithmus Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Hier einige informelle Erklärungen zum Algorithmus P

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung Brückenkurs Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 2009/10 Einführung in die Programmierung Erste Programme 2 / 38 Übersicht

Mehr

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert Entscheidungen INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Ablaufstrukturen bis jetzt nur Sequenzen von Code neu Auswahl (Programmverzweigung) - Code aufgrund

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 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung

Mehr

Ein Fragment von Pascal

Ein Fragment von Pascal Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und

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

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

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

WS 05/06 mod Verifikation

WS 05/06 mod Verifikation 3.3 Verifikation WS 05/06 mod 351 Verifikation ist der Beweis der Korrektheit eines Algorithmus relativ zu seiner Spezifikation. Die Aussagen gelten für alle Ausführungen des Algorithmus. Sie werden statisch

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 2 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Informatik Algorithmen und Programme

Informatik Algorithmen und Programme Informatik Algorithmen und Programme Seite 1 Grundlagen der Programmierung: Spezifikation Phasen der Software-Entwicklung Spezifikation Problem und seine Lösung beschreiben vollständig detailliert unzweideutig

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Wiederholung Anweisungen durch Methodenaufrufe Ausgabe

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 - n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

einseitige Selektion zweiseitige Selektion

einseitige Selektion zweiseitige Selektion einseitige Selektion / Die einseitige Selektion gestattet die Ausführung einer eisung (welche wiederum eine Sequenz sein kann), wenn die angegebene wahr () ist. 19 zweiseitige Selektion _1 _2 _1 _2 Die

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

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

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

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Logik. Ernest Peter Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block Aussage

Logik. Ernest Peter Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block Aussage Logik Die Logik ist in der Programmierung sehr wichtig. Sie hilft z.b. bei der systematischen Behandlung von Verzweigungen und Schleifen. z.b. if (X Y und Y>0) then Oder beim Beweis, dass ein Algorithmus

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Tagesprogramm

Tagesprogramm 1 2015-10-22 Tagesprogramm Syntax und Semantik Varianten von Schleifen Varianten von Programmverzweigungen 2 2015-10-22 Syntax und Semantik Darstellung der Syntax Syntax: Aufbau der Sätze bzw. Programme

Mehr

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen Verhalten Def. und Nutzen von Verhalten Algorithmen Pseudocode Schreibtischtest Verhalten & Pseudocode Das Verhalten beschreibt, wie sich die Datenstrukturen (Variablen) eines Programms verändern müssen,

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

Formale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer

Formale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer Formale Systeme Logik: Verifikation von Aussagen über Algorithmen 20.12.2012 Ana Sokolova statt Robert Elsässer Verifikation von Aussagen über Algorithmen Hoaresche Logik: Kalkül zum Beweisen von Aussagen

Mehr

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:

Mehr

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen

Mehr

Von der Chomsky-Hierarchie

Von der Chomsky-Hierarchie Von der Chomsky-Hierarchie zur Backus-Naur-Form Ein Beitrag der Theoretischen Informatik zum Siegeszug des Computers Referat von Helmut Schnitzspan Im Rahmen des Seminars Von der EDV zu Facebook Alexander

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 05: Weitere Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Weitere Kontrollstrukturen Wiederholungsstrukturen (Schleifen) While-,do-,for-Schleifen

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

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

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Anforderungen durch Logiken Modellierung zusammenhängender

Mehr

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt?

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt? Informatik I 14.02.2014 28. Ausblick Informatik I 28. Ausblick Bernhard Nebel Albert-Ludwigs-Universität Freiburg 28.1 28.2 28.3 Was geht nicht? 14.02.2014 Bernhard Nebel (Universität Freiburg) Informatik

Mehr

5.3 Korrektheit und Verifikation

5.3 Korrektheit und Verifikation 5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann

Mehr

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,

Mehr

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte Wirtschaftsinformatik 6a: Modellierung Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte Computertechnik Man kann Software auf 2 Arten herstellen: Entweder macht man sie so klar und einfach,

Mehr

Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking.

Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking. Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking Sebastian Küpper Das makroskopische Modell: Objekte Objekt: Abbild konkreter individuell

Mehr