Rekursion. rekursive Prädikate. deklarative vs. prozedurale Bedeutung von Prädikaten. Programmierkurs Prolog p.1
|
|
- Fabian Günther
- vor 6 Jahren
- Abrufe
Transkript
1 Rekursion rekursive Prädikate deklarative vs. prozedurale Bedeutung von Prädikaten Programmierkurs Prolog p.1
2 is digesting/2 is digesting(x,y) :- just ate(x,y). is digesting(x,y) :- just ate(x,z), is digesting(z,y). just ate(mosquito,blood(john)). just ate(frog,mosquito). just ate(stork,frog). Was antwortet Prolog auf die Anfragen:?- is digesting(stork,frog).?- is digesting(stork,mosquito).?- is digesting(frog,x). Programmierkurs Prolog p.2
3 Rekursion: Blickwinkel 1 Kunigunde Ist Kunigunde ein Vorfahr von Anna? Hildegard elternteil von Ilse vorfahr von Brigitte Anna Programmierkurs Prolog p.3
4 Rekursion: Blickwinkel 1 Kunigunde Hildegard elternteil von Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde die Mutter von Hildegard ist, die ein Vorfahr von Anna ist. Ilse vorfahr von Brigitte Anna Programmierkurs Prolog p.3
5 Rekursion: Blickwinkel 1 Kunigunde elternteil von Hildegard Ilse Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde die Mutter von Hildegard ist, die ein Vorfahr von Anna ist. vorfahr von(k,a) :- elternteil von(k,h), vorfahr von(h,a). vorfahr von Brigitte Anna Programmierkurs Prolog p.3
6 Rekursion: Blickwinkel 1 Kunigunde elternteil von Hildegard Ilse vorfahr von Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde die Mutter von Hildegard ist, die ein Vorfahr von Anna ist. vorfahr von(k,a) :- elternteil von(k,h), vorfahr von(h,a). Reicht das? Brigitte Anna Programmierkurs Prolog p.3
7 Rekursion: Blickwinkel 1 Kunigunde elternteil von Hildegard Ilse vorfahr von Brigitte Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde die Mutter von Hildegard ist, die ein Vorfahr von Anna ist. vorfahr von(k,a) :- elternteil von(k,h), vorfahr von(h,a). Reicht das? Nein, weil Kunigunde auch ein Vorfahr von Hildegard ist. Anna Programmierkurs Prolog p.3
8 Rekursion: Blickwinkel 1 Kunigunde elternteil von Hildegard Ilse vorfahr von Brigitte Anna Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde die Mutter von Hildegard ist, die ein Vorfahr von Anna ist. vorfahr von(k,a) :- elternteil von(k,h), vorfahr von(h,a). Reicht das? Nein, weil Kunigunde auch ein Vorfahr von Hildegard ist. vorfahr von(k,h) :- elternteil von(k,h). Programmierkurs Prolog p.3
9 Rekursion: Blickwinkel 2 Ist Brigitte ein Vorfahr von Anna? Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
10 Rekursion: Blickwinkel 2 Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
11 Rekursion: Blickwinkel 2 Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. vorfahr von(x,y) :- elternteil von(x,y). Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
12 Rekursion: Blickwinkel 2 Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. Ilse vorfahr von(x,y) :- elternteil von(x,y). Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
13 Rekursion: Blickwinkel 2 Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. Ilse vorfahr von(x,y) :- elternteil von(x,y). Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
14 Rekursion: Blickwinkel 2 Hildegard Ilse Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. vorfahr von(x,y) :- elternteil von(x,y). Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
15 Rekursion: Blickwinkel 2 Kunigunde Hildegard Ilse Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. vorfahr von(x,y) :- elternteil von(x,y). Ist Kunigunde ein Vorfahr von Anna? Brigitte Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
16 Rekursion: Blickwinkel 2 Kunigunde Hildegard Ilse Brigitte Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. vorfahr von(x,y) :- elternteil von(x,y). Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde ein Elternteil von Hildegard ist, die ein Vorfahr von Anna ist. Anna Elternteil: Vorfahr: Programmierkurs Prolog p.4
17 Rekursion: Blickwinkel 2 Kunigunde Hildegard Ilse Brigitte Anna Elternteil: Vorfahr: Ist Brigitte ein Vorfahr von Anna? Ja, weil Brigitte ein Elternteil von Anna ist und Elternteile sind Vorfahren. vorfahr von(x,y) :- elternteil von(x,y). Ist Kunigunde ein Vorfahr von Anna? Ja, weil Kunigunde ein Elternteil von Hildegard ist, die ein Vorfahr von Anna ist. vorfahr von(k,a) :- elternteil von(k,h), vorfahr von(h,a). Programmierkurs Prolog p.4
18 Verarbeitung in Prolog elternteil_von(kunigunde,hildegard). elternteil_von(hildegard,ilse). elternteil_von(ilse,brigitte). elternteil_von(brigitte,anna). vorfahr_von(x,y) :- elternteil_von(x,y). vorfahr_von(x,y) :- elternteil_von(x,z), vorfahr_von(z,y).?- vorfahr_von(hildegard,ilse).?- vorfahr_von(kunigunde,anna).?- vorfahr_von(hildegard,x). Programmierkurs Prolog p.5
19 Beispiel: Eine Form von Zählen succ(0) 2 succ(succ(0)) 3 succ(succ(succ(0))). Ziel: Ein Prädikat number/1, das testet, ob das Argument eine Zahl in der succ-darstellung ist. Programmierkurs Prolog p.6
20 Beispiel: Eine Form von Zählen succ(0) 2 succ(succ(0)) 3 succ(succ(succ(0))). Ziel: Ein Prädikat number/1, das testet, ob das Argument eine Zahl in der succ-darstellung ist. 0 ist eine Zahl. Programmierkurs Prolog p.6
21 Beispiel: Eine Form von Zählen succ(0) 2 succ(succ(0)) 3 succ(succ(succ(0))). Ziel: Ein Prädikat number/1, das testet, ob das Argument eine Zahl in der succ-darstellung ist. 0 ist eine Zahl. Wenn X eine Zahl ist, dann ist succ(x) auch eine Zahl. Programmierkurs Prolog p.6
22 Beispiel: Eine Form von Zählen succ(0) 2 succ(succ(0)) 3 succ(succ(succ(0))). Ziel: Ein Prädikat number/1, das testet, ob das Argument eine Zahl in der succ-darstellung ist. 0 ist eine Zahl. number(0). Wenn X eine Zahl ist, dann ist succ(x) auch eine Zahl. Programmierkurs Prolog p.6
23 Beispiel: Eine Form von Zählen succ(0) 2 succ(succ(0)) 3 succ(succ(succ(0))). Ziel: Ein Prädikat number/1, das testet, ob das Argument eine Zahl in der succ-darstellung ist. 0 ist eine Zahl. number(0). Wenn X eine Zahl ist, dann ist succ(x) auch eine Zahl. number(succ(x)) :- number(x). Programmierkurs Prolog p.6
24 Beispiel: Addieren Ziel: Ein Prädikat add/3, das drei Zahlen in succ-darstellung als Argumente nimmt. Das dritte Argument soll die Summe der beiden ersten sein. Z.B.?- add(succ(0), succ(succ(0)), X). X = succ(succ(succ(0))) yes?- add(succ(succ(0)), succ(0), X). X = succ(succ(succ(0))) yes?- add(0, succ(succ(0)), X). X = succ(succ(0)) yes Programmierkurs Prolog p.7
25 Beispiel: Addieren (2) Basisfall: Wenn das erste Argument 0 ist, dann ist das Ergebnis gleich dem dritten Argument. Rekursiver Fall: Wenn die Summe von X und Y gleich Z ist, dann ist die Summe von succ(x) und Y gleich succ(z). Programmierkurs Prolog p.8
26 Aufgaben 1. Definiert das Prädikat add/3 in Prolog. 2. Definiert ein Prädikat greater than/2, das als Argumente zwei Zahlen in succ-darstellung nimmt und testet, ob die erste größer ist als die zweite. 3. Wir haben die folgende Wissensbasis: directtrain(forbach,saarbruecken). directtrain(freyming,forbach). directtrain(fahlquemont,stavold). directtrain(stavold,forbach). directtrain(metz,fahlquemont). Schreibt ein Prädikat travel/2, das definiert zwischen welchen zwei Städten es eine Zugverbindung gibt, bei der direkte Zugverbindungen aneinandergehängt werden. Programmierkurs Prolog p.9
27 Deklarative vs. Prozedurale Bedeutung (1) number(0). number(succ(x)) :- number(x). number(succ(x)) :- number(x). number(0). Programmierkurs Prolog p.10
28 Deklarative vs. Prozedurale Bedeutung (1) number(0). number(succ(x)) :- number(x). number(succ(x)) :- number(x). number(0). Die beiden Versionen von number/1 haben die gleiche deklarative Bedeutung und verschiedene prozedurale Bedeutungen.?- number(x). Programmierkurs Prolog p.10
29 Deklarative vs. Prozedurale Bedeutung (2) vorfahr von(x,y) :- elternteil von(x,y). vorfahr von(x,y) :- elternteil von(x,z), vorfahr von(z,y). vorfahr von(x,y) :- elternteil von(x,y). vorfahr von(x,y) :- vorfahr von(z,y), elternteil von(z,y).?- vorfahr von(anna, kunigunde). elternteil von(kunigunde,hildegard). elternteil von(hildegard,ilse). elternteil von(ilse,brigitte). elternteil von(brigitte,anna). Programmierkurs Prolog p.11
30 Deklarative vs. prozedurale Bedeutung deklarative Bedeutung: die logische Bedeutung einer Prolog-Wissensbasis prozedurale Bedeutung: wie eine Wissensbasis von Prolog verarbeitet wird Programmierkurs Prolog p.12
31 Noch ein Beispiel p :- p Programmierkurs Prolog p.13
32 Noch ein Beispiel p :- p deklarativ: Wenn p dann p. prozedural: Bei der Anfrage p gerät Prolog in eine Endlosschleife. Programmierkurs Prolog p.13
33 Zusammenfassung Rekursion ist eine äußerst wichtige Programmiertechnik (nicht nur in Prolog). Mit Hilfe von Rekursion (plus Matching) können kompakte und elegante Programme geschrieben werden. Es ist wichtig, sich auch die prozedurale Bedeutung von Programmen klarzumachen. Wichtige Begriffe: Basisklausel, rekursive Klausel, deklarative und prozedurale Bedeutung Nächste Woche: Listen: eine rekursive Struktur Übungsaufgaben: Das Übungsblatt ist auf der Web-Seite. Programmierkurs Prolog p.14
Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 2: Arithmetik Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln, Unifikation,
MehrEinführung in PROLOG. Christian Stocker
Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise
MehrSWP Prüfungsvorbereitung
20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c
Mehr5 Logische Programmierung
5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen
MehrLogische Programmierung
Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);
MehrSWP Logische Programme
SWP Logische Programme Alexander Felfernig, Stephan Gspandl Institut für Softwaretechnologie {alexander.felfernig,sgspandl}@ist.tugraz.at Institute for Software Technology Inhalt Motivation Logische Programme
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 1: Einführung in Prolog Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 1. Oktober 2015 1/54 ORGANISATORISCHES
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrFunktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation
Grundlagen der Programm- und Systementwicklung Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Technische Universität München Institut für Informatik Software &
MehrErwin 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
MehrFunktionale Programmierung
Schleifen 1 Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 3 Teil I Jedem Anfang wohnt ein Zauber inne 4 Über mich Diplom in Informatik in Saarbrücken
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrWissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)
Was bisher geschah Wissensrepräsentation und -verarbeitung in Logiken klassische Aussagenlogik klassische Prädikatenlogik: Wiederholung Syntax, Semantik Normalformen: bereinigt Pränex Skolem ( -Eliminierung)
MehrGrammatiken in Prolog
12. Grammatiken in Prolog 12-1 Grammatiken in Prolog Allgemeines: Gedacht zur Verarbeitung natürlicher Sprache. Dort braucht man kompliziertere Grammatiken als etwa im Compilerbau, andererseits sind die
MehrAuswahl von Klauseln und Atomen in Prolog
5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrBinä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.
MehrProgrammiersprachen 2 (SS 2013)
n Advanced 2 1. Juli 2013 Beispielprogramm pq(x,y) :- p(x,z), q(z,y). p(a,b). p(b,c). p(c,a). 2 q(a,a). q(b,d). Logisch gesehen Die Reihenfolge verändert nicht die logische Aussage p(x,z), q(z,y) äquivalent
Mehr4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum
4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.
MehrProlog = Programmierung in Logik (Roussell, Colmerauer, 1973/74)
Logikprogrammierung Historie: Philosophie / Mathematik Künstliche Intelligenz Praktische Programmiersprache: Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74) Grundidee: Ein Programm ist
Mehr1. 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
Mehr4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen
Kapitel Kapitel 4 Deskriptive Programmierung SS 2008 4. 4. Algorithmen und Datenstrukturen in in deskriptiven Programmiersprachen Deskriptive Programmierung 1 Sprachverarbeitung in in Prolog Prolog Prolog
MehrDatenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:
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.
MehrTiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige Süßspeise
Kapitel 3 Logik-Programmierung 3.1 Einführung Was statt Wie am Beispiel von Tiramisu Folie 145 Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige
MehrProlog. Vertiefungsmodul Programmiersprachen. VM Programmiersprachen - Prolog. Florian Kleene
Prolog Vertiefungsmodul Programmiersprachen VM Programmiersprachen - Prolog Florian Kleene Entstehung und Geschichte Aufbau von Prolog Programmen Fakten Regeln Anfragen Funktionsweise des Interpreters
MehrSoftwareentwicklung Allgemeines und prozedurale Konstrukte
Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Allgemeines und prozedurale Konstrukte E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung
MehrEinführung in Prolog. Literatur
Einführung in Prolog Literatur Clocksin/Mellish Programming in Prolog Skript aus dem Kurs Max Hadersbeck Skript aus dem Kurs Hans Leiss Bratko Prolog Programming for Artificial Intelligence Prolog Lexikon
MehrProlog 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:
Mehr3.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)
MehrAufgaben Theoretische Informatik
Aufgaben Theoretische Informatik Elmar Eder 26. Dezember 2015 Lösungen der Aufgaben bitte abgeben auf dem Abgabesystem von Dominik Kaaser auf https://ti.cosy.sbg.ac.at/ als ASCII- oder UTF-8-Dateien mit
MehrH. GÖHNER / B. HAFENBRAK. Arbeitsbuch PROLOG
H. GÖHNER / B. HAFENBRAK Arbeitsbuch PROLOG 1 Inhaltsverzeichnis Vorwort zur ersten und zweiten Auflage... 3 Grundlagen... 5 1 Willkommen in PROLOG... 5 2 Regeln... 11 3 So arbeitet PROLOG... 14 4 Rekursion...
MehrKontrollstrukturen - Universität Köln
Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,
MehrTechnische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
MehrVernunft und Temperament Eine Philosophie der Philosophie
Unfertiges Manuskript (Stand 5.10.2015), bitte nicht zitieren oder darauf verweisen Vernunft und Temperament Eine Philosophie der Philosophie LOGI GUNNARSSON The history of philosophy is to a great extent
MehrProgram = Logic + Control
Program = Logic + Control Prozedurale/imperative Sprachen: Abläufe formulieren Computer führt aus von-neumann-maschine Idee von deklarativen/logischen/funktionalen Programmiersprachen: Zusammenhänge formulieren
MehrKopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen
Prolog Syntax Liste, Variable [ Term Liste ] Listenelemente: Trennung durch Komma [1, pferd, klaus] Kopf und Rest einer Liste (head and tail): Trennung durch [K R] = [1, pferd, klaus] (K = 1, R = [pferd,
MehrListen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen
Listen bersicht Listen allgemein Listen in Prolog Schreibweise Listen als rekursive Datenstruktur Unifikation Programmiertechniken mit Listen Zweck rekursive Suche Abbilden Erstellen von Prolog-Programmen
MehrAufgaben Logische Programmierung
Aufgaben Logische Programmierung Elmar Eder 21. Mai 2015 Die Aufgaben sind auf dem Abgabesystem von Dominik Kaaser bis zu dem dort angegebenen Termin abzugeben. Alle Aufgaben, bei denen nichts gegenteiliges
MehrWS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4)
Vorlesung #6 SQL (Teil 4) Fahrplan Besprechung der Übungsaufgaben Einschub: Self Joins (relevant fürs Praktikum) Dynamische Intergritätsbedingungen, das Trigger - Konzept von Oracle Prozedurale Erweiterungen,
Mehr8. Logische Programmierung. Prolog Sprachkonstrukte: Fakten. Prolog Übersicht
8. Logische Programmierung GPS-8-1 Übersicht zur logischen Programmierung GPS-8-2 Themen dieses Kapitels: Deklaratives Programmieren: Problem beschreiben statt Algorithmus implementieren (idealisiert).
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,
MehrProlog 1. Kapitel: Fakten, Regeln und Anfragen
Allgemeines Prolog 1. Kapitel: Fakten, Regeln und Anfragen Dozentin: Wiebke Petersen Kursgrundlage: Learn Prolog Now (Blackburn, Bos, Striegnitz) Prolog (aus dem franz. Programming en Logique) ist eine
MehrData Mining und Text Mining Einführung. S2 Einfache Regellerner
Data Mining und Text Mining Einführung S2 Einfache Regellerner Hans Hermann Weber Univ. Erlangen, Informatik 8 Wintersemester 2003 hans.hermann.weber@gmx.de Inhalt Einiges über Regeln und Bäume R1 ein
MehrSWE1 / Übung 2 (19.10.2011)
SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn
MehrFixpunktsemantik logischer Programme Pascal Hitzler Juli 1997 Kurzuberblick im Rahmen der Vorlesung Einfuhrung in Prolog von T. Cornell im Sommersemester 1997 an der Universitat Tubingen. Beweise sind
MehrReasoner for the Semantic Web
Reasoner for the Semantic Web KAON & KAON2 Seminar A.I. Tools Erik Endres 18.1.2007 Übersicht Reasoner KAON1 KAON2 & Protégé Reasoner Ontologien machen Daten für Maschinen verarbeitbar. Reasoner setzen
MehrBachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3
Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3 Aufgabe 1 (20 Punkte) Dialogische Logik a) Was isteine formal wahrebehauptung? Welche Aussageschematasindallgemeingültig? b) Überprüfen
MehrInhalt. SWP Logische Programme. Motivation. Formalisierung. Wissensbasis. Bsp (Bibel)Verwandtschaften. Motivation Sprache LP
Inhalt SWP Logische Programme Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Motivation Sprache LP Resolution Unifikation Datenbanken und logische Programme Semantik 2 Motivation Bsp
MehrTutorial. Mediationsanalyse mit PROCESS. stefan.pfattheicher@uni-ulm.de. Das Konzept Mediation
Tutorial Mediationsanalyse mit PROCESS stefan.pfattheicher@uni-ulm.de Das Konzept Mediation Ein Mediator (folgend M) erklärt den Zusammenhang zwischen unabhängiger Variable (folgend X) und einer abhängigen
MehrArbeiten mit Datenbanken
Prof. Dr. Rüdiger Zarnekow TU Berlin, Fakultät VII Kommunikationsmanagement Kommunikationsmanagement Inhalte und Ziele 1. wichtige Hinweise 2. Freie Datenbanken der TU 3. Schlagwortsuche 4. Übung 1 5.
MehrEntscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen
Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,
MehrFunktionale Programmierung ALP I. Funktionen höherer Ordnung. Teil 2 SS 2013. Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Funktionen höherer Ordnung Teil 2 SS 2013 Funktionen höherer Ordnung Nehmen wir an, wir möchten alle Zahlen innerhalb einer Liste miteinander addieren addall:: (Num a) => [a -> a addall [ = 0 addall
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo
MehrErste Schritte in SWI-Prolog
Die nachfolgenden Abschnitte sollen ein erster Einstieg in den Umgang mit Prolog sein, der sich explizit auf die in unserer Veranstaltung 'Prolog für Linguisten' verwendete Programmversion (SWI-Prolog
MehrGrundlagen der Informatik
Hans Delfs Helmut Knebl Christian Schiedermeier Grundlagen der Informatik nhtw Nürnberger Hochschulskripten für Technik und Wirtschaft Prof. Dr. Hans Delfs Prof. Dr. Helmut Knebl Prof. Dr. Christian Schiedermeier
Mehr2. Lernen von Entscheidungsbäumen
2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse
MehrErfahrungen, Einblicke, Experimente
Detaillierter Blick in eine Link-Datenbank Erfahrungen, Einblicke, Experimente 03/13/10 Überblick Erfahrungen mit dem Link-Graph der Suchmaschine Neomo Link-Datenbank Link-Algorithmen in Theorie und Praxis
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrPraktikum am 16. April 2008 Variablen
Praktikum am 16. April 2008 Variablen Prof. Dr. Bernhard Humm Version: 1.0 Date: 10.4.2008 Hochschule Darmstadt Fachbereich Informatik Schöfferstr. 8b 64295 Darmstadt 1 Umgang mit Datentypen Experimentieren
MehrÜberblick über dieses Kapitel Grundlagen der Programmierung Kapitel 12: Information und Repräsentation
Überblick über dieses Kapitel Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2007/2008 Kapitel 12: Information und Repräsentation! Repräsentation, Information,!
MehrPrädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;
Mehr Prolog Prolog bietet mehr an, z.b.: Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr extra-logische Prädikate,
MehrÜbungsblatt 8- Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)
MehrPROLOG. Eine Einführung. Sven Naumann
PROLOG Eine Einführung Sven Naumann Sommersemester 2007 Inhaltsverzeichnis I Logikprogrammierung 7 1 Grundbegriffe 11 1.1 Prolog und Logikprogrammierung.................. 11 1.2 Terme.................................
MehrÜbung - Modellierung & Programmierung II
1 Übung - Modellierung & Programmierung II Mathias Goldau, Stefan Koch, Wieland Reich, Dirk Zeckzer, Stefan Philips, Sebastian Volke math@informatik.uni-leipzig.de stefan.koch@informatik.uni-leipzig.de
MehrJR 224 SCHREIBEN III 3 SKS
JR 224 SCHREIBEN III 3 SKS Lerntechnik: Richtig Schreiben Vor dem Schreiben: die Aufgabenstellung zuerst genau durchlesen Wie ist die Situation? Wer schreibt? Was möchte er/sie von Ihnen? Welche Beziehung
MehrSQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler
SQL-Vertiefung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung
MehrEinkommensaufbau mit FFI:
For English Explanation, go to page 4. Einkommensaufbau mit FFI: 1) Binäre Cycle: Eine Position ist wie ein Business-Center. Ihr Business-Center hat zwei Teams. Jedes mal, wenn eines der Teams 300 Punkte
Mehr1. 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:
MehrTutorium - Haskell in der Schule. Ralf Dorn - Dennis Buchmann - Felix Last - Carl Ambroselli
Tutorium - Haskell in der Schule Wer sind wir? Otto-Nagel-Gymnasium in Berlin-Biesdorf Hochbegabtenförderung und MacBook-Schule Leistungskurse seit 2005 Einführung Was ist funktionale Programmierung? Einführung
MehrFragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?
Fragen f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Wozu evaluiert [f [ ], f [ ]]? Weiteres Beispiel: f [ ] y = [
Mehr+ROLGD\V 1LYHDX$ )HUWLJNHLW+ UYHUVWHKHQ
+ROLGD\V )HUWLJNHLW+ UYHUVWHKHQ 1LYHDX$ Wenn langsam und deutlich gesprochen wird, kann ich kurze Texte und Gespräche aus bekannten Themengebieten verstehen, auch wenn ich nicht alle Wörter kenne. 'HVNULSWRU
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
MehrSOA verspielt - rekursive BPEL Prozesse
SOA verspielt - rekursive BPEL Prozesse Referent: Guido Neander DOAG Nürnberg, 22.11.2012 MT AG business by integration Die MT AG ist ein IT-Dienstleister, der sich auf Prozess- und Softwareintegration
MehrKomplexe Excel-Berichte mit APEX und jxls erstellen
Komplexe Excel-Berichte mit APEX und jxls erstellen Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, MS Excel, jxls, Bericht, Template, Open Source Einleitung In fast jeder Webapplikation
MehrKapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe
Anfragen für Listen Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe 1 MapReduce-Verfahren Google u.a. verwenden Map-Reduce-Verfahren zur Verarbeitung riesiger
MehrZustandsgebundene Webservices
Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel oer@uni-paderborn.de Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite
MehrKap. 7 IS-Infrastruktur: Zusammenfassung
Kapitel 7: Zusammenfassung Teil I. 1 Kap. 7 IS-Infrastruktur: Zusammenfassung In Teil I haben wir verschiedene Middleware-Lösungen zur Entwicklung (komplexer), verteilter Informationssysteme kennengelernt
MehrKapitel 5: Applikative Programmierung
Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrL A TEX, Linux, Python
L A TEX, Linux, Python Daniel Borchmann, Tom Hanika, Maximilian Marx 17. Dezember 2014 cba Grundlagen von GNU/Linux Grundlagen von GNU/Linux Eine kurze Geschichte von GNU / Linux Eine kurze Geschichte
MehrHansa-Gymnasium Scheme-Einführung Uwe Debacher 2007-1 -
- 1 - Alle heute gebräuchlichen Computer-Sprachen fallen unter den Oberbegriff problemorientierte Sprachen, womit eine weitgehende Unabhängigkeit gekennzeichnet wird von der Maschine auf der die Software
MehrJ2EE-Praktikum. EJB-Security. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg
J2EE-Praktikum EJB-Security Peter Thiemann Universität Freiburg J2EE-Praktikum, WS2005/2006 Inhalt 1 EJB Sicherheit 2 Schnittstelle für den Bean Provider 3 Zusammenfassung EJB Security Allgemeines Sicherheitsziele
MehrDatenbankadministration
Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion
MehrJa, ich möchte ab (Datum) Förderspender im Deutschen Roten Kreuz, Kreisverband Dresden e.v. werden. Ich zahle einen Beitrag von: Verwendungszweck:
Newsletter: ja nein e-mail:* Datum: _ Unterschrift: Datum: Unterschrift: Newsletter: ja nein e-mail:* Datum: _ Unterschrift: Datum: Unterschrift: Newsletter: ja nein e-mail:* Datum: _ Unterschrift: Datum:
MehrUm überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:
Abgabe Dieses Übungsblatt ist bis Freitag, 02.05. um 12:00 per E-Mail an den eigenen Tutoren abzugeben. Bennennung beispielsweise $Matrikelnummer_Abgabe_$Blattnummer.$Format. 1 Erste Schritte mit dem Arduino
MehrTeil 1: Einführung 1.5 Programmierparadigmen Prof. Dr. Max Mühlhäuser FG Telekooperation TU-Darmstadt
Grundzüge der Informatik 1 Teil 1: Einführung 1.5 Programmierparadigmen Prof. Dr. Max Mühlhäuser FG Telekooperation TU-Darmstadt Agenda Was sindprogrammierparadigmen? Die wichtigsten Programmiersprachentypen
MehrStefan Mieth, AIT GmbH & Co. KG
Stefan Mieth, AIT GmbH & Co KG As a requirements engineer I want to use the TFS 12032015; 16:30 17:30 Requirements Engineering ist neben Testing wohl der Dauerbrenner, wenn es um gerne vernachlässigte
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-10-30 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater, der für diese Vorlesung auf Alexander Kollers Java-Kurs basierte) Organisatorisches Wöchentliche
MehrDarstellung von Wissen
KARL HEINZ WAGNER Darstellung von Wissen Definition 1. Wissensrepräsentation Wissensrepräsentation ist die symbolische Darstellung von Wissen über einen Gegenstandbereich. Wir können dazu verschiedene
MehrProgrammieren in Python
1. Was ist Python? Albert-Ludwigs-Universität Freiburg KI-Praktikum, Sommersemester 2009 Was ist Python? Kurz: Python ist eine objektorientierte Skriptsprache. Ausführlicher: Python ist eine... objektorientierte,
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrEinleitung. Funktion. Panzenböck Phillipp. Download 13.05.2003. Installation. Testen. Konfiguration
Panzenböck Phillipp 13.05.2003 Der Applikationsserver wird von einer in Schweden ansässigen Firma namens Ironflare entwickelt Orion ist das einzige Produkt dieser Firma Der Orionserver ist komplett in
MehrPraktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen
Rev. 1152 1 [23] Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Christoph Lüth & Dennis Walter Universität Bremen Wintersemester 2010/11
MehrWissensbasierte Systeme/ Expertensysteme. Teil 2
Wissensbasierte Systeme/ Expertensysteme Teil 2 BiTS, Sommersemester 2004 Dr. Stefan Kooths KOOTHS BiTS: Wissensbasierte Systeme/Expertensysteme Teil 2 1 Gliederung 1. Einführung und Einordnung 2. Entscheidungsunterstützung(ssysteme)
MehrHaskell zur Constraint-Programmierung HaL8
Haskell zur Constraint-Programmierung HaL8 Alexander Bau 2. Mai 2013 Wir benutzen eine Teilmenge von Haskell zur Spezifikation von Constraint- Systemen über Haskell-Datentypen. Ein Constraint-Compiler
MehrModulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia
Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia Kenntnisse im Programmieren für das World Wide Web mit der Programmiersprache JAVA werden vermittelt, ebenso das Erstellen von
MehrSemantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!
Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph! www.semantic-web-grundlagen.de Ontology Engineering! Dr. Sebastian Rudolph! Semantic Web Architecture
MehrÜbersicht. Einführung in die Funktionale Programmierung: Einleitung & Motivation. Klassifizierung von Programmiersprachen (1)
Motivation Funktionale Programmiersprachen Haskell Übersicht Einführung in die Funktionale Programmierung: Einleitung & Motivation Prof Dr. Manfred Schmidt-Schauß 1 Motivation Übersicht Programmierparadigmen
Mehr