DAP 1. Datenstrukturen, Algorithmen und Programmierung. Bernhard Steffen. Lehrstuhl für Programmiersysteme

Größe: px
Ab Seite anzeigen:

Download "DAP 1. Datenstrukturen, Algorithmen und Programmierung. Bernhard Steffen. Lehrstuhl für Programmiersysteme"

Transkript

1 DAP 1 Datenstrukturen, Algorithmen und Programmierung Bernhard Steffen Lehrstuhl für Programmiersysteme B. Steffen 1

2 Was ist Informatik? Informatik ist die Wissenschaft von der Informationsverarbeitung. Auffallend ist, daß in dieser Definition das Wort Computer nicht vorkommt. Im Vordergrund stehen prinzipielle Fragen wie: B. Steffen 2

3 Wo liegen die Grenzen des (automatisch) Berechenbaren? Wie können komplexe Probleme zuverlässig behandelt werden? Warum ist eine Programmier-, Modellierungs- oder Spezifikationssprache so und nicht anders entworfen worden? (formales Sprachdesign) Welche Maschinenarchitekturen sind zur Realisierung spezieller Problemklassen am besten geeignet? (abstrakte Maschinen- und Berechnungsmodelle, verteilte Systeme und parallele Algorithmen) Was sind die wesentlichen Charakteristika eines Problems in Hinblick auf eine abstrakte Modellierung (Problemanalyse, Requirements Engineering)? Wann läßt sich ein gegebenes Verfahren einsetzen (Anwendungsprofile)? Wer sind die zukünftigen Interessenten und Anwender (Relevanzanalyse)? B. Steffen 3

4 Wissenschaftliche Einordnung geisteswissenschaftliche Natur ingenieurwissenschaftlicher Charakter mathematischer Charakter B. Steffen 4

5 Mathematische Wurzeln Algebra Logik Statistik Zahlentheorie Operations Research Informationstheorie Codierungstheorie Modelltheorie Kryptographie Topologie Geometrie Kontrolltheorie Kybernetik B. Steffen 5

6 Auseinandersetzung mit Abstrakten Strukturen Programmstrukturen, Sprachstrukturen, Datenstrukturen, Rechnerstrukturen,... Strukturwissenschaft B. Steffen 6

7 Historie bis Ende der 80er B. Steffen 7

8 Anfänge des Rechnens Jahr Entwicklungsschritt 1700 v. Chr. Älteste schriftliche Rechenaufgabe, auf Papyrus in Ägypten 300 v. Chr. Euklidischer Algorithmus 5. Jh. n. Chr. Benutzung von Dezimalzahlen in Indien 820 n. Chr. Mukhammad ibn Musa Al-Chowarizmi (etwa ), persischer Mathematiker und Astronom, Buch über Algebra 1202 Liber abaci (erste systematische Einführung in Rechnen mit Dezimalzahlen) von Leonardo von Pisa, genannt Fibonacci (etwa ), italienischer Mathematiker 1524 Rechenbuch von Adam Riese ( ) B. Steffen 8

9 Erste Ansätze zu Rechenmaschinen Jahr Entwicklungsschritt 1623 Mechanische Rechenmaschine für vier Grundrechenarten von Wilhelm Schickard ( ) 1641 Maschine zur Addition von sechsstelligen Zahlen, konstruiert von Blaise Pascal ( ) 1673 Gottfried Wilhelm Leibniz ( ) konstruiert Rechenmaschinen mit Staffelwalzen für vier Grundrechenarten, befasst sich auch mit dualem Zahlensystem 1774 Erste zuverlässig arbeitende mechanische Rechenmaschine, in Serie hergestellt von Philipp Matthäus Hahn ( ) B. Steffen 9

10 Erste Ansätze zu Rechenmaschinen Jahr um 1800 Entwicklungsschritt Mittels Lochkarten gesteuerter automatischer Webstuhl von Joseph-Marie Jacquard ( ) 1833 Analytical Engine von Charles Babbage ( ); Lady Augusta Ada Byron ( ), Countess of Lovelace, entwickelt dazu die erste Programmiersprache 1886 Erfindung der Lochkarte von Hermann Hollerith ( ); Entwicklung verschiedener elektrischer Lochkartenmaschinen (u.a. Einsatz zur Volkszählung); Programmierung mittels Steckkarten B. Steffen 10

11 Erste Meilensteine der Computerentwicklung Jahr Entwicklungsschritt 1934 Konrad Zuse ( ) beginnt mit Planung einer programmgesteuerten Rechenmaschine auf Basis des dualen Zahlensystems und Gleitkomma-Zahlendarstellung 1939 Alan M. Turing ( ) entwickelt ein nach ihm benanntes Maschinenmodell, das als Grundlage der Berechenbarkeitstheorie dient 1941 Z3 von Zuse fertiggestellt; sie ist die erste funktionsfähige programmgesteuerte Rechenmaschine; (Telefon-) Relais als Schaltelemente; Programmierung mithilfe von Lochstreifen (Filmrollen), die bei Bedarf zu Schleifen zusammengeklebt werden konnten; Multiplikationszeit: ca. 3 s 1944 Howard Hathaway Aiken ( ) erbaut Mark I, Rechenautomat auf Basis von Dezimalzahlen B. Steffen 11

12 Erste Meilensteine der Computerentwicklung Jahr Entwicklungsschritt 1946 ENIAC: Erster elektronischer Rechner (18000 Elektronenröhren, 1500 Relais), gebaut von John Presper Eckert (1919*) und John William Mauchly ( ) Multiplikationszeit: ca. 3 ms; John von Neumann ( ) erfindet den Programmspeicher 1949 EDSAC: Erster universeller Digitalrechner mit gespeichertem Programm von Maurice Vincent Wilkes (1913*) 1950 Erster russischer Rechner von S.A. Lebedev fertiggestellt (MESM, mit Röhren als Schaltelementen) ab 1950 Industrielle Serienproduktion von elektronischen Rechenanlagen B. Steffen 12

13 Hauptquelle: D. Roller Informatik - Grundlagen. Mit einer Einführung in PASCAL. Springer-Verlag, Heidelberg, Weiterführende Literatur: J.A.N. Lee: Computer Pioneers. IEEE Computer Society Press, (80 SR 800 L478) K. Zuse. Der Computer - mein Lebenswerk. Springer-Verlag, Heidelberg, (80 SR 800 Z96(2)) F.L. Bauer. Konrad Zuse - Fakten und Legenden. Informatik Spektrum, Band 19, Heft 6, Dezember 1996, R. Rojas. Die Architektur der Rechenmaschinen Z1 und Z3 von Konrad Zuse. Informatik Spektrum, Band 19, Heft 6, Dezember 1996, K. Ganzhorn, W. Walter. Die geschichtlicheentwicklung der Datenverarbeitung. IBM Deutschland GmbH, Böblingen, 1975 B. Steffen 13

14 Computereinteilung in Generationen Generation Merkmale 1 Bis Ende der 50er Jahre Hardware: Elektronenröhren (Schaltzeit 1 ms; störanfällig) und Relais (Schaltzeit 0,1 s; relativ zuverlässig) als Schaltelemente; Drucker und Magnetbänder als Peripheriegeräte Software: Praktisch keine (System-) Software; Programmierung in Maschinencode (Zahlenkolonnen) 2 ab 1957 bis Ende der 60er Jahre Hardware: Transistoren (Schaltzeit 10 µs) als Schaltelemente; Ferritkern-, Band-, Trommel-, Plattenspeicher; Lochstreifen als neues Peripheriegerät Software: Erste Betriebssysteme für Stapelverarbeitung (Batch-Betrieb); erste problemorientierte Programmiersprachen (COBOL, FORTRAN, ALGOL, LISP) B. Steffen 14

15 Computereinteilung in Generationen Generation Merkmale 3 ab Mitte der 60er Jahre Hardware: Mikromodultechnik (integrierte Schaltkreise): ca. 20 Schaltelemente pro cm 2 (Schaltzeit ca. 10 ns); Kanäle, Magnetplatten und Bildschirme (Terminals) statt Teletypes als typischeperipheriegeräte Software: Betriebssysteme mit Dialogbetrieb, Datenbanken, Programmiersprache ALGOL 68 4 ab Anfang der 70er Jahre Hardware: Überwiegend hochintegrierte Schaltkreise (LSI); kompletter Prozessor auf einem Chip; PCs und Workstations; 8-BitArchitektur Software: Strukturierte Programmierung, Software-Engineering, imperative Programmiersprachen PASCAL, C; funktionale Programmiersprache ML, Betriebssysteme mit Mehrbenutzerbetrieb (Time-sharing) und lokale Netzwerke; Microcomputer und erstes portables Betriebssystem (UNIX) B. Steffen 15

16 Computereinteilung in Generationen Generation Merkmale 5 seit Anfang der 80er Jahre Hardware: Höchstintegrierte Schaltkreise (VLSI): mehrere Prozessoren auf einem Chip; Homecomputer, PCs und Workstations; 16- und 32-Bit-Architektur Software: Graphik; globale Vernetzung; Künstliche Intelligenz (KI) Logikorientierte Programmiersprachen (PROLOG); objektorientierte Programmiersprachen (Smalltalk) 6 seit Anfang der 90er Jahre Hardware: Hochprogrammierbare Bausteine (Field Programmable Gate Arrays); Embedded Systems Software: Ereignisorientierte Programmierung; Internetprogrammierung, Middleware, Integrationsframeworks. Programmiersprachen: JAVA, Delphi, Erlang und Modellierurng in UML B. Steffen 16

17 Computereinteilung in Generationen Generation Merkmale 7 seit Anfang 2000 Hardware: SoCs (Systems on a Chip, MEMSs (Micro-electro-mechanical systems) Software: Heterogene, sich dynamisch entwickelnde Netzwerke von Systemen und Endgeräten. Programmiertechnologie zunehmend Model Driven Design. Hauptquelle der historischen Angaben: D. Roller Informatik - Grundlagen. Mit einer Einführung in PASCAL. Springer-Verlag, Heidelberg, B. Steffen 17

18 Einteilung der Informatik Theoretische Informatik Theorie der Berechenbarkeit Praktische Informatik Algorithmen und Datenstrukturen Technische Informatik Entwicklung von Hardwarekomponenten (Schaltkreise, -netze, -werke) Angewandte Informatik Automatisierungs- Technik in Konstruktion und Produktion Komplexitätstheorie Programmiersprachen und Übersetzer Rechnerorganisation und -architektur Computergraphik und Simulation Theorie der formalen Sprachen, Automatentheorie Programmiermethoden und -werkzeuge Periphere Geräte und Rechnernetze Kaufmännische Datenverarbeitung u. Büroautomatisation Formale Semantik, Programmverifikation Betriebssysteme, Informationssysteme Quelle: D. Roller Informatik - Grundlagen. Mit einer Einführung in PASCAL. Springer-Verlag, Heidelberg, B. Steffen 18

19 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen / Großen 3. Struktur und Invarianz 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 19

20 Programmieren im Großen B. Steffen 20

21 Programmentwicklungsphasen 1. Analyse 2. Modellierung 3. Design 4. Implementierung 5. Test Organisiert in einem iterativen Prozess B. Steffen 21

22 Abstraktion & Kompositionalität Modelle Architekturen Konzepte Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 22

23 getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 23

24 Programm-Strukturen Schleifen x = n; y = 1; while (x > 1) { y = y x; x = x-1; } Rekursion Fak(n) = if n = 1 then 1 else n Fak(n-1) Fak(n) = n B. Steffen 24

25 Programm-Strukturen Schleifen, Rekursion Prozeduren, Module Prog Begin End Proc Fak. : Fak(n) B. Steffen 25

26 Problem getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 26

27 Analyse B. Steffen 27

28 Lehrer Schueler Elternteil B. Steffen 28

29 Modelle Implementierungen Problemorientiert Problem getestete Produkte Algorithmen & Datenstrukturen B. Steffen 29

30 Assoziation Geschäftsprozeß Szenario Statische Konzepte Dynamische Konzepte Vererbung Paket Botschaft Zustandsautomat Attribut Operation Statisches Modell Basiskonzepte Objekt Klasse Dynamisches Modell B. Steffen 30

31 Modellierung B. Steffen 31

32 B. Steffen 32

33 Modelle Architekturen Implementierungen Plattformorientiert Problem getestete Produkte Problemorientiert Algorithmen & Datenstrukturen B. Steffen 33

34 Architektur-Design B. Steffen 34

35 Modelle Architekturen Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 35

36 SW-Management 1 Grundlagen SW-Entwicklung 1 Die Planungsphase SW-Qualitätssicherung 1 Grundlagen 2 Planung 2 Die Definitionsphase 2 Qualitätssicherung 3 Organisation 3 Die Entwurfssphase 3 Manuelle Prüf methoden 4 Personal 4 Die Implementierungsphase 4 Prozeßqualität 5 Leitung 5 Die Abnahme und Einführungsphase 5 Produktqualität -Komponenten 6 Kontrolle 6 Die Wartungs- und Pflegephase 6 Produktqualität -Systeme B. Steffen 36

37 Modelle Architekturen Konzepte Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 37

38 Konzeptuelle Strukturen 1 (Sprach-Design) x = 1 x = x + 1 x = x + 1 x =? Granularität? Java: X += ++X + X++? B. Steffen 38

39 Konzeptuelle Strukturen 2 (Sprach-Design) M M M K T K T Wer entscheidet? B. Steffen 39

40 Abstraktion & Kompositionalität Modelle Architekturen Konzepte Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 40

41 Abstraktion und Kompositionalität Konzentration auf das Wesentliche Konzentration auf spezielle Aspekte Konzentration auf Entscheidbares Ersetzen von Gleichem durch Gleiches Hierarchische (Programm-)Entwicklung Bibliothekskonzepte B. Steffen 41

42 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen / Großen 3. Struktur und Invarianz 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 42

43 Programmieren im Kleinem B. Steffen 43

44 Phasen der Programmentwicklung im Kleinen reale Welt abstrakte Objekte informationsverarb. System Abstraktion Darstellung Realisierung Problem Algorithmus Programm Problemanalyse, funktionale Spezifikation, Algorithmenentwurf Darstellung in formalisierter Sprache zur Ausführung durch Rechner Umsetzung in Elementarschritte einer Maschine Maschine B. Steffen 44

45 Schlüsselkriterien Korrektheit Effizienz Algorithmik Skalierbarkeit Implementierung Integration B. Steffen 45

46 Vorgehen bei der Programmentwicklung im Kleinen 1. Problemformulierung 2. Problemanalyse, Problemabstraktion und -formalisierung, Problemspezifikation 3. Algorithmenentwurf 4. Korrektheitsnachweis (Semantikanalyse) 5. Aufwandsanalyse (Komplexitätsanalyse) 6. Programmkonstruktion 7. Verifikation und Test B. Steffen 46

47 Vorgehen bei der Programmentwicklung im Grossen 1. Analyse 2. Modellierung 3. Design 4. Implementierung 5. Test Organisiert in einem iterativen Prozess B. Steffen 47

48 Problemformulierung/Analyse 1. Finden einer Zahl in einer Zahlenmenge. 2. Algorithmische Idee: Das Telefonbuchprinzip: Vorsortieren Intervallschachtelung B. Steffen 48

49 Algorithmenentwurf Umsetzen der algorithmischen Idee in eine abstrakte, eindeutig interpretierbare Beschreibungsform. Klassisch sind die Flußdiagramme. Festlegen konzeptuell günstiger Datenstrukturen, hier sortierte Listen natürlicher Zahlen. Verwenden von Variablen L und R zur Charakterisierung des aktuellen Suchintervalls. B. Steffen 49

50 Flußdiagramme Start Stop z = 0 Wende Formel (3) an ja nein a<b a>b a==b? Vergleiche a und b a==b Lies x ein Gib x aus B. Steffen 50

51 Start Flußdiagramm zum Binären Suchen lies x ein L=1 R=n found=false L<=R && found==false? nein gib found aus gib Index m aus ja m=(l+r) / 2 End a[m]==x? ja found=true nein a[m]<x? ja L=m+1 nein vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite6-10 R=m-1 B. Steffen 51

52 x {n 1, n 2,..., n k }? n 1 n k 1 1 n + 2 n k-1 n k n k L Instruktionen: n m = x? nein n m < x? nein! R := m-1 m Hilfsvariablen: L = 1 R = k Found = FALSE m = (k + 1) DIV 2 R B. Steffen 52

53 x {n 1, n 2,..., n k }? n 1 n k 1 1 n + 2 n k-1 n k n k L R m Hilfsvariablen: L = 1 R = m - 1 Found = FALSE m = (k + 1) DIV 2 B. Steffen 53

54 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k L R m Instruktionen: m := ( L+ R) DIV 2 Hilfsvariablen: L = 1 R = k Found = FALSE m = (k + 1) DIV 2 B. Steffen 54

55 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k L m R Instruktionen: n m = x? nein n m < x? ja! L:= m+1 Hilfsvariablen: L = 1 R = k Found = FALSE m = ( L+ R) DIV 2 B. Steffen 55

56 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k m L R Instruktionen: m := ( L+ R) DIV 2 Hilfsvariablen: L = m+1 R = k Found = FALSE m = ( L+ R) DIV 2 B. Steffen 56

57 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k L m R Und so weiter... Hilfsvariablen: L = m+1 R = k Found = FALSE m = ( L+ R) DIV 2 B. Steffen 57

58 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Instruktionen: 12 = 10? nein 12 < 10? nein! R := 7 Hilfsvariablen: L = 1 R = 15 Found = FALSE m = 8 B. Steffen 58

59 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L R m Instruktionen: m:= 4 Hilfsvariablen: L = 1 R = 7 Found = FALSE m = 8 B. Steffen 59

60 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Instruktionen: 7 = 10? nein 7 < 10? ja! L:= 5 Hilfsvariablen: L = 1 R = 7 Found = FALSE m = 4 B. Steffen 60

61 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? m L R Instruktionen: m:= 6 Hilfsvariablen: L = 5 R = 7 Found = FALSE m = 4 B. Steffen 61

62 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Instruktionen: 10 = 10? ja! Found := TRUE Hilfsvariablen: L = 5 R = 7 Found = FALSE m = 6 B. Steffen 62

63 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Hilfsvariablen: L = 5 R = 7 Found = TRUE m = 6 B. Steffen 63

64 Korrektheitsnachweis 1. Symbolische Ausführung des Beschreibung 2. Analyse der Randfälle, z.b. R =1 oder L= R 3. Mathematischer Korrektheitsbeweis vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite10-11 B. Steffen 64

65 Aufwandsanalyse Hierarchische Untersuchung des Aufwandswachstums bei wachsenden Inputparamtern von Elementaroperationen Schleifen- oder Rekursionsrümpfen vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite12-13 Iterationskonstrukten: Wie oft werden sie durchlaufen? Beim binären Suchen beobachten wir bzgl. des Parameters n: Elementaroperationen/Rümpfe haben konstanten Aufwand Die Schleife wird maximal log 2 (n)+1-mal durchlaufen. Man sagt, der Algorithmus hat logarithmische Komplexität. B. Steffen 65

66 Programmkonstruktion 1. Automatisch, z.b. durch Compilation 2. Halbautomatisch über formale Transformationsregeln 3. Manuell, durch freie Programmierung 4. Gemischt, durch gezielte Computerunterstützung: Extraktion von Schnittstellencode Erzeugung von Klassenstrukturen Generierung von Datenstrukturen vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite13-14 B. Steffen 66

67 L = 1; R = n; found = false; while (( L<=R) && (found = = false)) { m = (L+R) / 2; if (a[m] = = x) {found = true;} else { if (a[m] < x) {L = m+1;} else { R = m-1; } } } B. Steffen 67

68 Programmanalyse und Verifikation Verifikation á la Floyd und Hoare Programm- und Datenflußanalyse Type- und Rangechecking Modelchecking B. Steffen 68

69 Testmethoden Komponententest Integrationstest Funktionale Tests Regressionstest Performancetests B. Steffen 69

70 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen / Großen 3. Struktur und Invarianz 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 70

71 Struktur und Invarianz B. Steffen 71

72 Abstraktionsebenen Objekte der realen Welt Begriffsbildung Abstraktion Verstehen Begreifen Begriffe, Information Darstellung Interpretation Repräsentationen B. Steffen 72

73 Eine Beispielinstanz ein konkreter Apfel Abstraktion (nicht alle Äpfel sind gleich) Verstehen (sich einen Apfel vorstellen) Begriffe: Apfel, pomme, apple, Boskop Darstellung Interpretation Repräsentationen: Apfel oder A p f e l B. Steffen 73

74 Semantikschemata Definition (Semantikschemata) Ein Semantikschema ist ein TupelR, I,. mit R: Menge der Repräsentationen oder Nachrichten I: Menge der Begriffe oder Informationen. R I: Semantik(-Relation) oder Interpretation. vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite16-19 B. Steffen 74

75 Numerierungssysteme 25, 98 Abstraktion (Zahl, statt Objekt) Verstehen fünfundzwanzig, Begriffe: quatrevingtdixhuit, Darstellung Interpretation Repräsentationen:, (Babylonische Notation) XXV, LXXXXVIII oder XCVIII (Römische Notation) B. Steffen 75

76 Konvention Fallsr, i., so ist i eine Information zur Repräsentation r. Im folgenden schreiben wir oft i r anstelle von r, i.. Also r = df { i I r, i. } Ist r einelementig, so schreiben wir auch i = r. B. Steffen 76

77 Unärdarstellung natürlicher Zahlen R u = df {,,,...}, I u = df = df {1, 2,...} Natürliche Zahlen (als Begriffe bzw. Informationen, nicht als ihre Darstellung im Dezimalsystem! Siehe auch nächstes Beispiel),. u = df {..., k k }. k Die Semantik einer Nachricht aus k Strichen ist also die natürliche Zahl k. B. Steffen 77

78 Dezimaldarstellung natürlicher Zahlen R N = df {1, 2,..} Dezimalrepräsentation der natürlichen Zahlen, I N = df = df {1,2,...} Natürliche Zahlen (als Begriffe bzw. Informationen, nicht als ihre Notation im Dezimalsystem!),. N = df { (1,1), (2,2), (3,3),...}. B. Steffen 78

79 Binärdarstellung natürlicher Zahlen R B = df {(d i ) i n d i {0, 1}, n 0 }. I B = df 0 = df {0,1, 2,...} Natürliche Zahlen (wieder als Begriffe bzw. Informationen, nicht als ihre Notation im Dezimalsystem), n. B = df {(d i ) i n, d i *2 n - i n 0 } i=0 B. Steffen 79

80 Kardinalzahlen in MODULA-2 R K = df {0,1,...,2 B -1}, I K = df 0 = df {0, 1, 2,...} Natürliche Zahlen (wieder als Begriffe bzw. Informationen, nicht als ihre Notation im Dezimalsystem),. K = df {k, k k R K }. B. Steffen 80

81 Vervollständigte Kardinalzahlen Achtung: Folie verändert! R uo = df R k {underflow, overflow}, I uo = df, r uo = df {i i > 2 B -1}, falls r = overflow {i i < 0}, falls r = underflow r K, sonst B. Steffen 81

82 Formale Eigenschaften Ein Semantikschema R, I,. heißt total, falls r R. r. eindeutig gdw.. eine totale Funktion ist, d.h. falls r R. {i r,i. } = 1. Falls. eindeutig ist, so heisst. injektiv gdw.. injektiv ist, d.h. falls r 1,r 2 R. r 1 = r 2 r 1 = r 2. surjektiv gdw.. surjektiv ist, d.h. falls vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite19 19 i I.r R. r = i. B. Steffen 82

83 Kodierung Äquivalenztransformation r R. r = f (r) 1 2 f R 1 R Kongruenztransformation I r, r' R. r = r' f (r) = f (r') B. Steffen 83

84 Kodierung Äquivalenztransformation r R. r = f (r) 1 2 Kongruenztransformation r,r' R. r = r' f (r) = f (r') Zusammenhang vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite19-21 f (r) =r = r' =f (r') qed B. Steffen 84

85 Kodierung succ mod 2 mod 2 {0,1} Äquivalenztransformation? n. n mod 2 succ(n) mod 2 Insbesondere: 1 mod 2 = 1 0 = 2 mod 2 = succ(1) mod 2 B. Steffen 85

86 Kodierung succ mod 2 mod 2 {0,1} Kongruenztransformation? n, m. n mod 2 = m mod 2 succ(n) mod 2 = succ(m) mod 2 B. Steffen 86

87 Kodierung succ mod k mod k {0,,k-1} Kongruenztransformation? n,m. n mod k = m mod k succ(n) mod k = succ(m) mod k B. Steffen 87

88 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen 3. Struktur und Invarianz (induktives Vorgehen) 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 88

89 Induktives Definieren Die induktive Definition einer Menge erfolgt durch Angabe 1. einer Menge elementarer Grundobjekte oder atomarer Bausteine und 2. einer Menge von Operatoren, die es erlauben, kleinere Bausteine entsprechend einer Konstruktionsvorschrift zu größeren Einheiten zusammenzusetzen. B. Steffen 89

90 Syntax Boolescher Terme Sei ID eine Menge von Identifikatoren (Variablen). Die Menge BT aller Booleschen Terme über ID ist wie folgt definiert: 1. true, false und Identifikatoren id aus ID sind Boolesche Terme, sogenannte atomare Boolesche Terme oder kurz Atome. 2. Sind t 1 und t 2 Boolesche Terme, so sind auch ( t 1 ), die Negation von t 1, (t 1 t 2 ), die Konjunktion von t 1 und t 2 und (t 1 t 2 ), die Disjunktion von t 1 und t 2 Boolesche Terme. 3. Weitere Boolesche Terme gibt es nicht. vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite24 24 B. Steffen 90

91 Backus-Naur-Form (BNF) linke Seite ::= rechte Seite N (N T ) * T die Menge der atomaren syntaktischen Objekte der Sprache, die durch die BNF beschrieben wird (T: Terminale ), N eine Menge von Regelbezeichnern (N: Nichtterminale ), `* der sequentielle Iterator. Solche Beschreibungen nennt man auch kontextfreie Grammatiken. B. Steffen 91

92 Konvention Man schreibt statt LS ::= RS 1, LS ::= RS 2,... LS ::= RS n oft kurz: LS ::= RS 1... RS n B. Steffen 92

93 Syntax Boolescher Terme in BNF ABT ::= true false id, BT ::= ABT ( BT) (BT BT) (BT BT) mit id ID, oder alternativ kurz BT ::= true false id ( BT) (BT BT) (BT BT) vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite24 24 B. Steffen 93

94 BNF als Generatorbeschreibung Erweiterung von ::= N x (N T )* auf Worte durch: (N T )* x (N T )* mit w 1 A w 2 w 1 w w 2 gdw. A ::= w ist BNF-Produktion BT ::= true false id ( BT) (BT BT) (BT BT) Beispiel: ((x y) z) vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite21-22 BT (BT BT) ((BT BT) BT) ((x BT) BT) ((x y) BT) ((x y) z) B. Steffen 94

95 BNF als Akzeptor durch Reduktion BT ::= true false id ( BT) (BT BT) (BT BT) Beispiel: ( ( x y ) z ) BT BT BT BT vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite21-22 BT B. Steffen 95

96 Axiomatische Begründung: die Peano-Axiome P1 1 ist eine natürliche Zahl: 1 P2 Jede natürliche Zahl besitzt eine eindeutig bestimmte natürliche Zahl als Nachfolger: n. m. m = succ(n) ( m'. m' = succ(n)m= m') P3 1 ist nicht Nachfolger einer natürlichen Zahl: n. 1 = succ(n) P4 Verschiedene natürliche Zahlen haben verschiedene Nachfolger: m,n. n m succ(n) succ(m) B. Steffen 96

97 Axiomatische Begründung: die Peano-Axiome P5 Axiom der vollständigen Induktion: Ist eine Aussage über natürliche Zahlen für 1 wahr und läßt sich ihre Gültigkeit für jede größere natürliche Zahl aus der Gültigkeit der Aussage für ihren Vorgänger ableiten, dann ist sie für jede natürliche Zahl wahr. ( A(1) ( n. (A(n) A(succ(n)))) ) n. A(n) Eine Aussage ist eine totale Funktion A : vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite22-24 B. Steffen 97

98 1. n i= 1 i = n ( n + 1), 2 Summe der ersten n natürlichen Zahlen. 2. n i= 1 2 (2i 1) = n, Summe der ersten n ungeraden Zahlen. 3. n i= 1 2 i = n ( n + 1), Summe der ersten n geraden Zahlen. 4. n i= 1 i 2 = n ( n + 1) (2n + 1), 6 Summe der ersten n Quadratzahlen. B. Steffen 98

99 5. n i= 1 i 3 = n ( n + 1), Summe der ersten n Kubikzahlen. 6. Es gibt n! Permutationen über n Objekten. 7. Es gibt 2 n Teilmengen von n-elementigen Mengen. 8. Es gibt 2 n Binärworte der Länge n. B. Steffen 99

100 Beispielbeweis Beh.: n. {0,1} n = 2 n Beweis durch vollständige Induktion nach n. IA: (n=1): {0,1} 1 = {0,1} = 2 = 2 1 IV: Die Behauptung gelte für n: {0,1} n = 2 n IS: (nn+1): {0,1} n+1 = {w0 w {0,1} n } {w1 w {0,1} n } = 2 n + 2 n = 2 n+1 B. Steffen 100

101 Kaninchenpopulation B. Steffen 101

102 B. Steffen 102

103 Adäquatheit Fibonacci-Funktion fib : 0 fib(0) = fib(1) = 1; fib(n) = fib(n-2) + fib(n-1). Fakt: n 0. fib(n) 2 n. (A(1) ( n. (A(n) A(n + 1))) ) n. A(n) Und nun? B. Steffen 103

104 Verallgemeinertes Induktionsprinzip Satz Läßt sich eine Aussage über natürliche Zahlen für jede natürliche Zahl aus der Gültigkeit der Aussage für alle kleineren natürlichen Zahlen ableiten, dann ist sie für jede natürliche Zahl wahr. ( n. ( m < n. A(m)) A(n) ) n. A(n) vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite24-25 B. Steffen 104

105 Überblick Beweisverpflichtungen A'(1) n. ( A'(n) A'(n+1) ) n. A'(n) n. ( m < n. A(m) A(n) ) n. A (n) A'(n) ist definiert durch m < n. A(m) B. Steffen 105

106 Rückführung verallgemeinerter auf vollständige Induktion vollständige Induktion A'(n) = df ( m < n. A(m)) trans A(n) n. A'(n) adapt n. A(n) verallgemeinerte Induktion B. Steffen 106

107 Adäquatheit Fibonacci-Funktion fib(0) = fib(1) = 1; fib(n) = fib(n -2) + fib(n-1). Fakt: n 0. fib(n) 2 n. (A(1) ( n. (A(n) A(n + 1))) ) n. A(n) ( n. ( m < n. A(m)) A(n) ) n. A(n) B. Steffen 107

108 Beh.: n 0. fib(n) 2 n Beweis durch verallgemeinerte Induktion nach n. Sei n 0 und es gelte: ) m < n. fib(m) 2 m zu zeigen: fib(n) 2 n Fallunterscheidung: 1) n=0: fib(0) = ) n=1: fib(1) = ) n 2: fib(n) = fib(n-2) + fib(n-1) (nach ) 2 n n-1 2 n qed. B. Steffen 108

109 Bäume Ein (endlicher) Baum ist ein Tripel (V, E, r) bestehend aus einer endlichen Knotenmenge V einer endlichen Kantenmenge E VV und einem ausgezeichneten Element r, der Wurzel wobei: B. Steffen 109

110 Tiefe eines Knotens innerhalb eines Baumes jeder Knoten v V\{r} genau einen Vorgänger hat, d.h. es gibt genau eine Kante, die v als rechte Komponente hat. r keinen Vorgänger hat, d.h. es gibt keine Kante, die r als rechte Komponente hat jeder Knoten v V von r aus erreichbar ist, d.h. es gibt eine Folge von Kanten (einen Weg) der Form (r,v 1 ), (v 1,v 2 ),...,(v k-1,v k ), (v k,v) die Länge des eindeutigen Weges von r nach v nennt man die Tiefe von v. B. Steffen 110

111 Beispiele von Bäumen Binärer Baum Syntaxbaum Strukturbaum und viele mehr... B. Steffen 111

112 binärer Baum Tiefe B. Steffen 112

113 Syntax- Baum Tiefe * 1 * a b + y x a b 4 ((a b) + (-(7+b))) + ((y+x) (a+5)) B. Steffen 113

114 Syntax- Baum Tiefe IN + 0 succ(succ(succ(succ(0)))) + * 1 succ(succ(succ(0))) * succ(succ(0)) a b + y x a 5 3 succ(0) 7 b 4 0 B. Steffen 114

115 Tiefe eines Baumes Die Tiefe eines Baumes ist die Länge seines längsten Weges. Dieser Weg geht offenbar immer von r zu einem Blatt, d.h. einem Knoten ohne Nachfolger. Wir bezeichnen die Tiefe eines Baumes mit tiefe. B. Steffen 115

116 Syntax- Baum tiefe IN * * succ(succ(succ(succ(0)))) succ(succ(succ(0))) succ(succ(0)) succ(0) a b 7 b y x a ((a b) + (-(7+b))) + ((y+x) (a+5)) B. Steffen 116

117 Strukturelle Induktion Satz vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite27-29 Läßt sich eine Aussage für jedes Element einer induktiv definierten Menge S aus der Gültigkeit der Aussage für alle kleineren Bausteine ableiten, dann ist sie für jedes Element von S wahr. ( s S. ( s' Komp (s). A(s')) A(s)) s S. A(s). Komponenten Komp entsprechen den (echten) Teilstrukturen (Teilbäumen) einer induktiv definierten Baumstruktur. B. Steffen 117

118 Überblick Beweisverpflichtungen ( n. m < n. A'(m)) A'(n) ) n. A'(n) ( s S. ( s' Komp(s). A(s')) A(s) ) s S. A(s) n. A'(n) = df s S. tiefe(s) = n A(s) B. Steffen 118

119 Rückführung struktureller auf verallgemeinerte Induktion verallgemeinerte Induktion A'(n) = df l(s) na(s) trans A(s) n. A'(n) adapt s S. A(s) strukturelle Induktion B. Steffen 119

120 Strukturelle Definition von Funktionen und Eigenschaften Die strukturelle Definition einer Funktion f mit induktiv definiertem Definitionsbereich erfolgt (im elementaren Fall) durch 1. Festlegung von f für die atomaren Bausteine des Definitionsbereichs und 2. Angabe einer Vorschrift, wie sich die Funktionswerte komplexer Bausteine relativ zu den Funktionswerten ihrer Komponenten berechnen. f (s) =df g cons (f (s 1 ),.., f(s k )) Falls s ein durch Konstruktor cons zusammengesetztes Objekt der Form s = cons(s 1,..,s k ), (k0) ist und g cons eine auf dem Wertebereich bekannte Funktion ist. B. Steffen 120

121 Beispiel: Semantikfuntional. : BT (ENV ) Definition (Wahrheitswert, Belegung, Umgebung) = {tt, ff} Menge der Booleschen Wahrheitswerte β : ID, Belegung oder Umgebung ENV, die Menge der Belegungen Definition neg conj tt ff tt ff tt tt ff ff tt ff ff ff disj tt ff tt tt tt ff tt ff B. Steffen 121

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Geschichte und Einteilung der Informatik 01101101 01011001 11010011 10011000 00000011 00011100 01111111 11111111 00110100 00101110 11101110 01110010 10011101 00111010 2 Der

Mehr

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Informatik - Lehrgang 2000/2001 GRUNDLAGEN Informatik - Lehrgang 2000/2001 GRUNDLAGEN Ein Überblick! Das Werden der Informatik! Daten! Technische Informatik Der von Neumann Computer Versuch einer Entmystifizierung 2 Grundlagen Micheuz Peter Das

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

Mathematische Maschinen

Mathematische Maschinen Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten. Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf

Mehr

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Analysis I für Studierende der Ingenieurwissenschaften

Analysis I für Studierende der Ingenieurwissenschaften Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

Mehr

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 7: Einführung Aussagenlogik schulz@eprover.org Logisches Schließen 2 gold +1000, 1 per step, Beispiel: Jage den Wumpus Performance measure death 1000 10

Mehr

Logische Folgerung. Definition 2.11

Logische Folgerung. Definition 2.11 Logische Folgerung Definition 2.11 Sei 2A eine aussagenlogische Formel und F eine endliche Menge aussagenlogischer Formeln aus A. heißt logische Folgerung von F genau dann, wenn I ( ) =1für jedes Modell

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

Grundlagen der Theoretischen Informatik - Sommersemester 2012. Übungsblatt 1: Lösungsvorschläge

Grundlagen der Theoretischen Informatik - Sommersemester 2012. Übungsblatt 1: Lösungsvorschläge Lehrstuhl für Softwaretechnik und Programmiersprachen Professor Dr. Michael Leuschel Grundlagen der Theoretischen Informatik - Sommersemester 2012 Übungsblatt 1: Lösungsvorschläge Disclaimer: Bei Folgendem

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Grundlagen der Informationverarbeitung

Grundlagen der Informationverarbeitung Grundlagen der Informationverarbeitung Information wird im Computer binär repräsentiert. Die binär dargestellten Daten sollen im Computer verarbeitet werden, d.h. es müssen Rechnerschaltungen existieren,

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19 Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie

Mehr

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Programmieren Formulierung eines Algorithmus in einer Programmiersprache Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Erfüllbarkeit und Allgemeingültigkeit

Erfüllbarkeit und Allgemeingültigkeit Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.3 Aussagenlogik Erfüllbarkeit 44 Erfüllbarkeit und Allgemeingültigkeit Def.: eine Formel ϕ heißt erfüllbar, wennesein I gibt, so dass I = ϕ

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

Mehr

Rekursionen (Teschl/Teschl 8.1-8.2)

Rekursionen (Teschl/Teschl 8.1-8.2) Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt Inhalt 1. Geschichte Folie 1 Lernziele Sie kennen die wichtigsten Punkte in der Geschichte des Computers Sie sind mit einigen Begriffen vertraut Folie 2 Seite 1 Computer als elektronische Rechenmaschine:

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

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

Mehr

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen 4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.

Mehr

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association

Mehr

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

4. Übungsblatt Matrikelnr.: 6423043

4. Übungsblatt Matrikelnr.: 6423043 Lineare Algebra I 1. Name: Bleeck, Christian 4. Übungsblatt Matrikelnr.: 6423043 Abgabe: 15.11.06 12 Uhr (Kasten D1 320) Übungsgruppe: 03 Patrick Schützdeller 2. Name: Niemann, Philipp Matrikelnr.: 6388613

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester 2015. gehalten von Harald Baum

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester 2015. gehalten von Harald Baum Fachschaft Mathematik und Informatik (FIM) LA I VORKURS Herbstsemester 2015 gehalten von Harald Baum 2. September 2015 Inhaltsverzeichnis 1. Stichpunkte zur Linearen Algebra I 2. Körper 3. Vektorräume

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert

Mehr

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni 2008. Formale Methoden II p.1/30

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni 2008. Formale Methoden II p.1/30 Formale Methoden II SS 2008 Universität Bielefeld Teil 8, 11. Juni 2008 Gerhard Jäger Formale Methoden II p.1/30 Beispiele Anmerkung: wenn der Wahrheitswert einer Formel in einem Modell nicht von der Belegungsfunktion

Mehr

Einführung in die Fuzzy Logic

Einführung in die Fuzzy Logic Einführung in die Fuzzy Logic Entwickelt von L. Zadeh in den 60er Jahren Benutzt unscharfe (fuzzy) Begriffe und linguistische Variablen Im Gegensatz zur Booleschen Logik {0,} wird das ganze Intervall [0,]

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Tage des Unterrichts in Mathematik, Naturwissenschaften und Technik Rostock 2010 Prof. Dr. Hans-Dieter Sill, Universität Rostock, http://www.math.uni-rostock.de/~sill/

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Korrelation (II) Korrelation und Kausalität

Korrelation (II) Korrelation und Kausalität Korrelation (II) Korrelation und Kausalität Situation: Seien X, Y zwei metrisch skalierte Merkmale mit Ausprägungen (x 1, x 2,..., x n ) bzw. (y 1, y 2,..., y n ). D.h. für jede i = 1, 2,..., n bezeichnen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

6.2 Perfekte Sicherheit

6.2 Perfekte Sicherheit 04 6.2 Perfekte Sicherheit Beweis. H(B AC) + H(A C) = H(ABC) H(AC) + H(AC) H(C) Wegen gilt Einsetzen in die Definition gibt = H(AB C). H(A BC) = H(AB C) H(B C). I(A; B C) = H(A C) H(AB C) + H(B C). Da

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011 Mathematik für Informatiker II Christoph Eisinger Sommersemester 211 Beispiellösungen zur Probeklausur Aufgabe 1 Gegeben sind die Polynome f, g, h K[x]. Zu zeigen: Es gibt genau dann Polynome h 1 und h

Mehr