Algorithmen in Java. 1. Was sind Algorithmen? 2. Wie beschreibt man Algorithmen? 3. Wie erstellt man Algorithmen? 4. Wie untersucht man Algorithmen?
|
|
- Stephan Siegel
- vor 7 Jahren
- Abrufe
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 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
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
MehrLearning 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.
MehrMartin 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
MehrInformatik. 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 -
MehrAlgorithmen 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
MehrEinfü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,
MehrIdeen 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
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
MehrEinfü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
MehrProgramm 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
MehrIdeen 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
Mehr1 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
MehrInformatik 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
Mehr1 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
MehrInhalt. 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
MehrIdeen 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
MehrInformatik 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;
MehrInhalt. 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
MehrEinfache 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
Mehr2.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
Mehr5. 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,
MehrProgrammentwurf 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
MehrJavakurs 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
MehrGrundlagen 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
MehrAlgorithmen 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
MehrGrundlagen 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
MehrObjektorientierte 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
Mehr5. 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
MehrLOOP-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
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
MehrKontrollfluss. 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
MehrWintersemester 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;
MehrAlgorithmen. 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
Mehr3.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
MehrBKTM - 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
MehrVerifizierende 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
MehrEINI 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
MehrGedä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
MehrSyntax 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:
Mehr1 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
MehrFlussdiagramm / Programmablaufplan (PAP)
Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze
MehrKapitel 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
MehrFD 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,
MehrTuring-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
MehrAlgorithmen 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 /
Mehr4.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
MehrAlgorithmus. 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
MehrEinfü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
MehrEntscheidungen. 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
MehrIdeen 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
MehrTag 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
MehrEin 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
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
MehrKapitel 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.
MehrProgrammiersprache 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.)
MehrWS 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
MehrGrundlagen 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:
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
MehrJavakurs 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
MehrKontrollstrukturen -- 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
MehrInformatik 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
MehrMartin 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
Mehrn 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
MehrDank. 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) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
Mehreinseitige 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
MehrAlgorithmen 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
MehrGrundlagen 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) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrInformatik. 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
MehrAlgorithmen 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
MehrLogik. 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
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrLOOP-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: ; :=
MehrTagesprogramm
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
MehrVerhalten. 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,
MehrBerechenbarkeit 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.
MehrFormale 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
MehrAlgorithmen 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:
MehrMä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
MehrVon 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
MehrJavakurs 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
MehrEinfü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
Mehr2. 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
MehrInformatik 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
Mehr4.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
MehrWas 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
MehrInformatik 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
Mehr5.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
MehrGliederung. 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,
MehrWirtschaftsinformatik 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,
MehrEinfü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