Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2

Größe: px
Ab Seite anzeigen:

Download "Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2"

Transkript

1 Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente an, auf die abgebildet wird. proj (,, pr,(g,h) (,)) Komposition: comp, Gibt die Anzahl der Funktionen an, die miteinander verknüpft werden. Stelligkeit: ist immer gleich der Stelligkeit der verwendeten Funktionen. comp, (proj, proj, add) (,,) = add (proj (,,), proj (,,)) = add (,) =

2 Beispiel dafür, daß die Additionsfunktion primitiv rekursiv ist Die Additionsfunktion add: x, (n, m) n + m ist primitiv rekursiv, denn die folgende durch primitive Rekursion definierte Funktion ist aus der Klasse der primitiv rekursiven Funktionen, und berechnet add: add(0,m) = m+0 = m = g(m) g(m) = proj add(n+,m) = m+n+ = h(n, m, add(n,m)) h(n, m, add(n,m)) = comp, (proj, proj ; succ) [n+m und davon den Nachfolger =: +] Klasse der primitiv rekursiven Funktionen Die Klasse der primitiv rekursiven Funktionen ist aufgebaut aus drei Grundfunktionen und zwei Erzeugungsstrategien. Definition: Uwe Schöning: Theoretische Informatik kurzgefasst,. Auflage, S.09. Die Klasse der primitiv rekursiven Funktionen auf den natürlichen Zahlen ist induktiv wie folgt definiert: ) Alle konstanten Funktionen sind primitiv rekursiv. ) Alle identischen Abbildungen (Projektionen) sind primitiv rekursiv. ) Die Nachfolgerfunktion succ(n) = n+ auf den natürlichen Zahlen ist primitiv rekursiv. 4) Jede Funktion, die durch Einsetzung (Komposition) von primitiv rekursiven Funktionen entsteht, ist selber auch primitiv rekursiv. 5) Jede Funktion, die durch primitive Rekursion aus primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv. Für eine primitiv rekursive Funktion f gilt: Primitive Rekursion Primitive Rekursion bedeutet, daß die Definition von f(n+,...) zurückgeführt wird auf f(n,...). Formal: f muss das Gleichungssystem der folgenden Form erfüllen: f (0,... ) = g (... ) f (n+,... ) = h (f(n,... ),...) wobei g und h bereits primitiv rekursive Funktionen sind. Dabei gilt: ist f n-stellig, so ist g n--stellig und h n+-stellig. Falls f durch eine primitive Rekursion definiert ist, hat sie die folgende allgemeine Form bzw. entspricht sie dem folgenden Schema: f(0, x,..., x r ) = g(x,..., x r ) f(n+, x,..., x r ) = h(f(n, x,..., x r ), n, x,..., x r ) Rekursive Funktion Eine rekursive Funktion ist eine Funktion, die durch eine endliche Menge von Regeln definiert und für verschiedenen Argumente mit Hilfe folgender Komponenten spezifiziert ist: Variablen, nichtnegativen ganzzahligen Konstanten, der Nachfolger-Funktion, der Funktion selbst sowie einem durch Komposition von Funktionen aus diesen erzeugtem Ausdruck. Die Klasse der rekursiven Funktionen ist identisch zur Klasse der partiell rekursiven Funktionen.

3 Primitiv rekursive Funktion Eine Funktion heißt primitiv rekursiv, wenn sie aus einer endlichen Anzahl von Anwendungen der Komposition und der primitiven Rekursion, angewandt auf die Konstante 0, die Nachfolger-Funktion oder eine Projektion P i (x,...,x n ) = x i, besteht. Jede primitiv rekursive Funktion ist eine total rekursive Funktion. Klasse der μ -rekursiven Funktionen: Uwe Schöning: Theoretische Informatik kurzgefasst,. Auflage, S.5: Definition: Die Klasse der μ -rekursiven Funktionen ist die kleinste Klasse von (eventuell partiellen) Funktionen, die die Basisfunktionen (konstante Funktionen, identische Abbildung, Nachfolgerfunktion) enthält und abgeschlossen ist unter Einsetzung, primitiver Rekursion und Anwendung des μ -Operators. k μ - Operator: μ f: Funktionen, die Funktionen in Funktionen abbilden, heißen Funktionale oder auch Operatoren. Durch den μ -Operator wird eine (durch das erste Argument einer Funktion f) beschränkten Suche nach einer Nullstelle der Funktion f realisiert. Eine echte Erweiterung der Klasse der primitiv rekursiven Funktionen wird durch Hinzunahme des μ -Operators erreicht. Sei f eine gegebene k+-stellige Funktion. Die durch Anwendung des μ -Operators auf f entstehende Funktion ist g: k mit g(x,...,x k ) = min n f(n, x,...,x k ) = 0 f(m, x,...,x k ) falls m n falls m < n Hierbei wird min = undefiniert gesetzt. Das heißt, durch Anwendung des μ -Operators können wirklich partielle Funktionen entstehen. Beispielsweise entsteht durch Anwendung des μ -Operators auf die zweistellige, konstante Funktion f(x,y) = die vollständig undefinierte Funktion Ω. k Mit μ f: bezeichnen wir die solcherart über die (k+)-stellige Funktion f definierte Funktion. Der μ -Operator minimalisiert das Rekursionsargument und prüft, ob das Rekursionsargument schon den Wert Null angenommen hat. Der μ -Operator ist ein Minimierungsoperator min(f(x)), der als das kleinste x definiert ist, für das f(x) = 0 gilt. Durch den μ -Operator können auch partielle Funktionen erzeugt werden. Die Anwendung des μ -Operator auf eine berechenbare Funktion führt wieder zu einer berechenbaren Funktion.

4 Primitiv rekursive Funktionen entsprechen den loop-algorithmen. Zur Definition rekursiver Funktionen, die den while-algorithmen entsprechen, vergegenwärtigen wir uns noch mal, daß bei Verwendung des Rekursionsschemas zur Berechnung von f(m,...) der Wert m die Rolle des Zählers für die Anzahl der Rekursionsschritte spielt. m entspricht bei der Umsetzung in einen loop-algorithmus dem Schleifenzähler. Die Verallgemeinerung zu while- Algorithmen erreichen wir, wenn wir m solange hochzählen, bis eine bestimmte Bedingung, z.b. f(m,...) = 0, erfüllt ist. Genau dazu wird der μ -Operator definiert. μ m: f(m, n,..., n k ) = min f(m, n,..., n k ) = 0 und m alle f(j, n,..., n k ) mit 0 j < m sind definiert μ m: f(m, n,..., n k ) ist undefiniert, wenn es kein solches m gibt, oder wenn beim Hochzählen m = 0,,,... zuerst ein Argument-Tupel (m, n,..., n k ) erreicht wird, für das f nicht definiert ist. Der μ-operator μ m: f(m, n,..., n k ) definiert im allgemeinen eine partielle Funktion. h(n,..., n k ). h ist zum Beispiel dann total, wenn f eine totale Funktion ist und es für jedes k- Tupel (n,..., n k ) mindestens einen Wert m mit f(m, n,..., n k ) = 0 gibt. Satz von Kleene Uwe Schöning: Theoretische Informatik kurzgefasst,. Auflage, S.6. Für jede n-stellige μ -rekursive Funktion f gibt es zwei (n+)-stellige, primitiv rekursive Funktionen p und q, so daß sich f darstellen lässt als f(x,...,x n ) = p(x,...,x n, μ q( x,...,x n )) Hierbei ist μ q die durch Anwendung des μ -Operators auf q entstehende (n-stellige) Funktion. P: Klasse der primitiv rekursiven Funktionen Erweiterung durch den μ - Operator R: Klasse der μ - rekursiven Funktionen P R R: Klasse der μ -rekursiven Funktionen P: Klasse der primitiv rekursiven Funktionen 4

5 Korollar Eine totale Funktion f:, für die nur an endlich vielen Stellen f(n) 0 gilt, ist primitiv rekursiv. Alle Funktionen aus der Klasse der primitiv rekursiven Funktionen sind total, weil die drei Grundfunktionen total sind, und die Erzeugungsstrategien Einsetzung und primitive Rekursion von totalen Funktionen wieder zu totalen Funktionen führen. Die Klasse der primitiv rekursiven Funktionen ist für die Charakterisierung der im intuitiven Sinn (Churche These) berechenbaren Funktionen nicht geeignet, weil die partiellen Funktionen ausgeschlossen sind Tatsächlich gibt es sogar totale Funktionen, die im intuitiven Sinn berechenbar, aber nicht primitiv rekursiv sind. Bekanntestes Beispiel dafür ist die Ackermann Funktion. Ackermann Funktion Die Ackermann Funktion ist nicht primitiv rekursiv, aber μ-rekursiv! Definition a(0,y) = y+ a(x,0) = a(x-,), x > 0 a(x,y) = a(x-, a(x,y-)), x, y > 0 Die Ackermann Funktion ist nicht primitiv rekursiv, aber μ -rekursiv. Für den Beweis braucht man mehrere Lemmata:. Lemma: y < a(x,y). Lemma: a(x,y) < a(x,y+). Lemma: a(x,y+) a(x+,y 4. Lemma: a(x,y) < a(x+,y) 5. Lemma: Für jedes LOOP-Programm gibt es eine Konstante k, so daß für alle n gilt : f P (n) < a(k,n). Die Ackermann Funktion ist nicht LOOP-berechenbar, sonder WHILE-berechenbar. Die Ackermann Funktion ist ein Beispiel dafür, daß es totale, berechenbare Funktionen gibt, die nicht primitiv rekursiv sind, denn es läßt sich zeigen, daß die Ackermann Funktion schneller wächst als jede primitiv rekursive Funktion. In einem loop-algorithmus ist die Anzahl der ineinander geschachtelten Schleifen konstant und aus dem Programmtext ersichtlich. Mit while-algorithmen und allgemein mit jeder Turing-mächtigen Sprache lassen sich jedoch auch Schleifen formulieren, die eine variable Anzahl geschachtelter for-schleifen simulieren. a(, n) = n+ a(, n) = n+ eine for-schleife a(, n) = n+ zwei geschachtelte for-schleifen a(4, n) =.. drei geschachtelte for-schleifen 5

6 Das erste Argument charakterisiert die Schachtelungstiefe, denn es gilt für m : a(m,n) = a(m-, a(m-,... a(m-,)...)) Die Schachtelungstiefe von for-schleifen liefert zusammen mit der maximalen Eingabe eine Schranke für die größte von einem loop-algorithmus berechenbare Zahl. Es läßt sich zeigen, daß die Ackermann Funktion schneller wächst als alle Ergebnisse von loop-algorithmen bei gleicher Eingabe. Die Ackermann Funktion stellt also selbst eine solche Schranke dar. Die Ackermann Funktion ist nicht primitiv rekursiv. Beweis durch Widerspruch: Wir nehmen an, daß die Ackermann Funktion primitiv rekursiv ist. Dann ist auch die Funktion f(n) = ack(n,n) primitiv rekursiv, denn f entsteht aus ack durch Einsetzung (f(n) = ack(proj (n), proj (n))). Es gibt eine Konstante c mit f(n) < ack(c,n) für alle n. Betrachtet man nun speziell n = c, so folgt ack(c,c) = f(c) < ack(c,c), was ein Widerspruch ist. Ein einfaches Programm in Java. zur Berechnung der Ackermann Funktion. Die Parameter können über die Konsole eingegeben werden. import java.io.*; public class Ackermann { static int a, b; static int Ack(int m, int n) { if ((m==0) && (n>0)) return (n+); else if((n==0) && (m>0)) return (Ack(m-,)); else return (Ack(m-, Ack(m, n-))); public static void main (String args[]) { InputStreamReader in = new InputStreamReader(System.in); BufferedReader puffer = new BufferedReader (in); System.out.println("\nBitte geben Sie zwei natuerliche Zahlen ein."); try { int x, y; System.out.println("\nDer erste Parameter ist:"); a = new Integer(puffer.readLine()).intValue(); System.out.println("\nDer zweite Parameter ist:"); b = new Integer(puffer.readLine()).intValue(); System.out.println("\nDas Ergebnis von Ack("+a+","+b+") ist:"); System.out.println(Ack(a,b)); catch (IOException e) { e.printstacktrace(); 6

7 Minimalisierung Bei der Minimalisierung ist das Rekursionsargument gesucht, für das die Funktion Null ergibt. Eine Minimalisierung durchführen heißt, zu prüfen, ob die Funktion den Wert Null hat. Bekannte primitiv rekursive Funktionen add(n,m) sub(n,m) mult(n,m) succ(n) hoch(n,m) turm(n,m) minus(n,m) m(n) Imperative Programmierung in Modula von primitiv rekursiven Funktionen PROC const 0 (n : CARD) : CARD; RETURN 0 PROC proj (n, n, n : CARD) : CARD; RETURN n PROC proj (n, n, n : CARD) : CARD; RETURN n PROC P (n, n, n : CARD) : CARD; RETURN n add (proj (n, n, n ), proj (n, n, n ) n n P: add (n, n ) PROC P (n, n : CARD) : CARD; VAR x, i : CARD; x : = const (n 0 ); FOR i := TO n DO x := P ( I-, n, x) 7

8 PROC proj (n : CARD) : CARD; RETURN n PROC suc (n : CARD) : CARD; RETURN n + PROC P (n, n, n : CARD) : CARD; RETURN suc (proj (n, n, n )) PROC P4 (n, n : CARD) : CARD; VAR x, i : CARD; x : = proj (n ); FOR i := TO n DO x := P ( i -, n, x) PROC P (n, n, n : CARD) : CARD; RETURN n + PROC P4 (n, n : CARD) : CARD; VAR x, i : CARD; x : = n ; FOR i := TO n DO x := x + PROC P (n, n : CARD) : CARD; VAR x, i : CARD; x : = 0; FOR i := TO n DO x := P4 ( n, x) PROC P (n, n : CARD) : CARD; VAR x, i, i, x, n, n : CARD; x : = 0; 8

9 FOR i := TO n DO n := n ; n := x; x := n `; FOR i` := TO n` DO x` := x` + x := x` Beispiel Gegeben ist die primitiv rekursive Funktion in Termdarstellung: f = pr, (const, comp,(comp, (proj, const ;add),proj ;mult)) mult ist hierbei definiert als mult(n,m) = n m und add sei add(n,m) = n+m; beide Funktionen können als bekannte primitiv rekursive Funktionen genutzt werden. a) Geben Sie eine Abwicklung des Schemas für das Argumentpaar (,) an. f(,) = pr, (g,h) (,) = pr, (const, comp,(comp, (proj, const ;add),proj ;mult)) (,) = comp, (comp, (proj, const ;add), proj ;mult) (,, pr,(g,h) (,)) = mult (comp, (comp, (proj, const ;add)) (,, pr,(g,h) (,), proj (,, pr,(g,h) (,)) = mult (add (proj (,, pr,(g,h) (,)), const (,, pr,(g,h) (,)), proj (,, pr,(g,h) (,)) = mult (add (,), pr, (g,h)(,)) = mult (4, pr, (g,h)(,)) = 4 pr, (g,h)(,) pr, (g,h)(,) = pr, (const, comp,(comp, (proj, const ;add),proj ;mult)) (,) = comp, (comp, (proj, const ;add),proj ;mult)) (0,, pr,(g,h) (0,)) = mult (comp, (proj, const ;add) (0,, pr,(g,h) (0,), proj (0,, pr,(g,h) (0,))) = mult ( add (proj (0,, pr,(g,h) (0,)), const ), proj (0,, pr,(g,h) (0,))) = mult (add(,), pr, (g,h) (0,))) = mult (4, pr, (g,h) (0,)) = 4 pr, (g,h)(0,)) pr, (g,h)(0,) = pr, (const, comp,(comp, (proj, const = const (0,) = ;add),proj ;mult)) (0,) 4 pr, (g,h)(,) = 4 4 pr, (g,h)(0,) = 4 4 = 4 = (+) 9

Primitiv rekursive und µ-rekursive Funktionen

Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive und µ-rekursive Funktionen Loop-, While- und Goto-Programme sind vereinfachte imperative Programme und stehen für imperative Programmiersprachen, bei denen Programme als Folgen von Befehlen

Mehr

1.3 Primitiv rekursive und µ-rekursive Funktionen

1.3 Primitiv rekursive und µ-rekursive Funktionen Definition 1.11 Die Klasse der primitiv rekursiven Funktionen (a) Basisfunktionen: (1.) die konstanten Funktionen c (c N) (2.) die Projektionen Π m i (x 1,...,x m ) = x i (1 i m) (3.) die Nachfolgerfunktion

Mehr

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv

Mehr

8. Rekursive und primitiv rekursive Funktionen

8. Rekursive und primitiv rekursive Funktionen 8. Rekursive und primitiv rekursive Funktionen In diesem Abschnitt führen wir eine weitere (letzte) Formalisierung des Berechenbarkeitskonzeptes für Funktionen über den natürlichen Zahlen ein. Hatten wir

Mehr

Primitiv rekursive und µ-rekursive Funktionen

Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive und µ-rekursive Funktionen Slide 1 Primitiv rekursive und µ-rekursive Funktionen Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Primitiv rekursive

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 15. primitive Rekursion und µ-rekursion Malte Helmert Gabriele Röger Universität Basel 22. April 2015 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

Primitiv rekursive Funktionen

Primitiv rekursive Funktionen Primitiv rekursive Funktionen Primitiv rekursive Funktionen Historisch: Die Einführung der primitiven Rekursivität war ein erster (und erfolgloser) Versuch, den Begriff der Berechenbarkeit (oft synonym

Mehr

Theoretische Informatik II

Theoretische Informatik II Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Wintersemester 2007/2008 B. Beckert Theoretischen Informatik II: WS 2007/08 1 / 175 Dank Diese Vorlesungsmaterialien basieren

Mehr

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert

Mehr

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell

Mehr

LOOP-Programme: Syntaktische Komponenten

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

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt. I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen

Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt. I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen Berechenbarkeitsmodelle Welchen Sinn haben diese? Wie kann man effizient

Mehr

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14.

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14. Theorie der Informatik 16. April 2014 14. primitive Rekursion und µ-rekursion Theorie der Informatik 14. primitive Rekursion und µ-rekursion 14.1 Einleitung 14.2 Basisfunktionen und Einsetzung Malte Helmert

Mehr

ALP I Primitiv-Rekursive Funktionen

ALP I Primitiv-Rekursive Funktionen ALP I Primitiv-Rekursive Funktionen WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle λ-kalkül Kombinatorische Logik Allgemein

Mehr

Mitschrift BFS WS 13/14

Mitschrift BFS WS 13/14 Mitschrift BFS WS 13/14 Stand: 4. Juni 2014 Dieses Skript zum Teil Primitive und µ-rekursion der Vorlesung Berechenbarkeit und Formale Sprachen im Wintersemester 2013/14 bei Prof. Wanka wurde von untenstehenden

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

Mächtigkeit von WHILE-Programmen

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

Mehr

6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen 6. Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N

Mehr

Typen von Programmiersprachen

Typen von Programmiersprachen Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 13. November 2006 Turing-mächtige

Mehr

Berechenbarkeits- und Komplexitätstheorie

Berechenbarkeits- und Komplexitätstheorie Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:

Mehr

Syntax von LOOP-Programmen

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

Mehr

Die primitiv rekursiven Funktionen

Die primitiv rekursiven Funktionen Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente

Mehr

LOOP-Programme: Syntaktische Komponenten

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

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 15. Ackermannfunktion Malte Helmert Gabriele Röger Universität Basel 28. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale Sprachen III. Berechenbarkeitstheorie

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

ALP I Rekursive Funktionen

ALP I Rekursive Funktionen ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit auf N ohne Maschinenmodelle

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung

Mehr

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

Mehr

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

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

Mehr

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:... Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...

Mehr

Kapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit

Kapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit Kapitel 5 Entscheidbareit und Berechenbareit Wir wenden uns nun grundsätzlichen Fragen zu, nämlich den Fragen nach der prinzipiellen Lösbareit von Problemen. Dazu stellen wir auch einen Zusammenhang zwischen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing

Mehr

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 8 18. Juli 2011 Einführung in die Theoretische Informatik

Mehr

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

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

Mehr

Primitiv rekursive Codier- und Decodierfunktionen

Primitiv rekursive Codier- und Decodierfunktionen Primitiv rekursive Codier- und Decodierfunktionen Paarungsfunktionen, Codierung von Zahlenfolgen 6.26 Definition Die Cauchysche Paarungsfunktion, : N 2 N wird definiert durch x, y = ((x + y)(x + y + 1)

Mehr

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende

Mehr

Programmieren für Fortgeschrittene

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

Mehr

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17 Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17 Praktikum zur Vorlesung

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

2 Eine einfache Programmiersprache

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

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

Theoretische Informatik SS 03 Übung 5

Theoretische Informatik SS 03 Übung 5 Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Prof. Meer, Dr. Gengler Aufgabenblatt 12 Besprechung in KW 03 / Abgabe in KW 04 Heften Sie unbedingt alle Blätter Ihrer Lösung zusammen und geben Sie oben auf dem ersten Blatt Ihren

Mehr

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Wahlpflichtfach Bachelor Informatik 4. Semester Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Kurt-Ulrich Witt Sommersemester 2011 Kurt-Ulrich Witt Diskrete Mathematik Lektion 4 1/33 Inhaltsverzeichnis

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Die primitiv rekursiven Funktionen

Die primitiv rekursiven Funktionen Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät IA, Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente Algorithmen J Die primitiv rekursiven

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt

Mehr

6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Theoretische

Mehr

GOTO simuliert Turingmaschinen

GOTO simuliert Turingmaschinen GOTO simuliert Turingmaschinen Wir wissen bisher: LOOP ( GOTO = WHILE TM Jetzt zeigen wir, dass auch WHILE = TM gilt: Die Turingmaschine M =(Z,,,,z 1,, E) berechne f. Wir simulieren M mit einem GOTO-Programm

Mehr

LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2

LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2 LOOP-Programme 1 LOOP-Programme verwenden (jeweils) endlich viele Variablen aus VAR := {X 0,X 1,X 2,...}, oft nur mit X,Y,Z,U,V,W bezeichnet, die als Register fungieren. Slide 1 Def (Meyer/Ritchie). LOOP-Programme

Mehr

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März

Mehr

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

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

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 5.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit ohne Maschinen Welche

Mehr

GTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123,

GTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123, GTI µ-rekursive Funktionen Hannes Diener ENC B-0123, diener@math.uni-siegen.de 20. Juni 2. Juli 1 / 31 µ-rekursive Funktionen Kommen wir als nächstes zu unserem dritten Ansatz zur Berechenbarkeit. Diesmal

Mehr

2 Eine einfache Programmiersprache

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

Mehr

Rekursive Funktionen Basisfunktionen

Rekursive Funktionen Basisfunktionen Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

Die Klasse MiniJava ist in der Datei MiniJava.java definiert:

Die Klasse MiniJava ist in der Datei MiniJava.java definiert: Die Klasse MiniJava ist in der Datei MiniJava.java definiert: import javax.swing.joptionpane; import javax.swing.jframe; public class MiniJava { public static int read () { JFrame f = new JFrame (); String

Mehr

Theoretische Informatik. Ackermann-Funktion. Ali Eyerta

Theoretische Informatik. Ackermann-Funktion. Ali Eyerta Theoretische Informatik Ackermann-Funktion Ali Eyerta Inhalt Entstehungsgeschichte Bedeutung in der Theoretischen Informatik Ackermanns Idee Ackermann-Funktion Anwendungen Benchmark für rekursive Aufrufe

Mehr

Programmierung für Mathematik HS11

Programmierung für Mathematik HS11 software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren

Mehr

Def.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert:

Def.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert: 3. LOOP-, WHILE- und GOTO-Berechenbarkeit 3.1 LOOP-Programme Komponenten: Variablen: x 0, x 1, x 2,, y, z, Konstanten: 0, 1, 2, Trennsymbole: ; := Operationszeichen: +, - Schlüsselwörter: LOOP, DO, END

Mehr

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Java Übung Übung 3 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 2. Mai 2006 (UniDUE) 2. Mai 2006 1 / 17 Aufgabe 1 Umwandeln von do while in for Schleife. Listing 1: aufgabe3 1.java 1 public

Mehr

2 Eine einfache Programmiersprache

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

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember

Mehr

Rekursive Funktionen

Rekursive Funktionen Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?

Mehr

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

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

Mehr

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,

Mehr

Unentscheidbarkeitssätze der Logik

Unentscheidbarkeitssätze der Logik Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

2 Eine einfache Programmiersprache

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

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra II Benjamin Fischer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Lineare Rekursion BigInteger Chinesischer

Mehr

Primitive Rekursion. Alexander Hölzle

Primitive Rekursion. Alexander Hölzle Primitive Rekursion Alexander Hölzle 14.01.2007 Inhaltsverzeichnis Motivation i 1 Rekursive Funktionen 1 1.1 Nicht berechenbare Funktionen........................ 1 1.2 Primitiv rekursive Funktionen.........................

Mehr

Mathematische Rekursion

Mathematische Rekursion Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische

Mehr

Theoretische Informatik SS 03 Übung 4

Theoretische Informatik SS 03 Übung 4 Fakten aus Übung 3 Theoretische Informatik SS 03 Übung 4 In Übung 3 wurden einigen Fakten bewiesen, die für diese Übung benötigt werden. Folgende Konstrukte können mit LOOP-Programmen simuliert werden:

Mehr

OOP Aufgabenblatt 4 2. November 2013

OOP Aufgabenblatt 4 2. November 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 4 2. November 2013 Aufgabe 1 1. Wenn eine Funktion f in der Mathematik, Physik oder sonst wo definiert ist als f(x) = 2 x + 5 kann man dann f(5), f(x), f(2 x),

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann

Mehr

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09 Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2008/09 23. Februar 2009 Aufgabe 1 2 3 4 5 5 5 Summe mögliche Punkte 10 15 25 20 20 15 15 120 erreichte Punkte Note: Hinweise: Diese

Mehr

Musterlösung Stand: 5. Februar 2009

Musterlösung Stand: 5. Februar 2009 Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

3. Grundlegende Sprachkonstruktionen imperativer Programme

3. Grundlegende Sprachkonstruktionen imperativer Programme 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte

Mehr