Prolog Die logische Programmiersprache. Prolog

Größe: px
Ab Seite anzeigen:

Download "Prolog Die logische Programmiersprache. Prolog"

Transkript

1 Die logische Programmiersprache Prolog Ausarbeitung von Michael Knötig Für das Programmiersprachen Seminar im SS2004 Bei Prof. Claudia Leopold und Michael Süß Universität Kassel Inhaltsverzeichnis Vorwort...2 Kapitel 1: Allgemeine Informationen über Prolog 1.1 Ein kurzer Abriß der Geschichte Prologs Die Einsatzgebiete von Prolog Was unterscheidet Prolog von anderen Programmiersprachen?...3 Kapitel 2: Ein kleiner Blick in die Mathematik hinter Prolog 2.1 Prädikatenlogik 1.Ordnung Horn Klauseln Resolution Unifikation...6 Kapitel 3: Aufbau eines Prolog Programms 3.1 Fakten Regeln Fragen Listen & Rekursion...8 Kapitel 4: Die Lösungssuche in Prolog 4.1 SLD-Resolution SLD-Suchbäume, Depth-First-Verfahren und Backtracking Der Cut Selbstmodifizierender Code...11 FAZIT...12 Literatur Verzeichnis...12 Michael Knötig

2 Vorwort: Ziel dieser Seminararbeit ist, dem Leser, die Programmiersprache PROLOG und ihre Grundlagen näher zu bringen. Das erste Kapitel soll daher dem Leser, dem Prolog möglicherweise total unbekannt ist, einen kurzen Einblick in die Sprache geben. Hierbei werde ich zunächst auf die geschichtliche Entwicklung und die heutigen Einsatzgebiete eingehen und abschließend die wesentlichen Unterschiede zwischen Prolog gegenüber anderen Programmiersprachen und -stilen herausarbeiten.. Der zweite Teil gibt einen kleinen Einblick in die mathematischen Grundlagen der Prädikaten- / Aussagenlogik, auf denen Prolog aufbaut. Um den gesteckten Rahmen dieser Ausarbeitung nicht übermäßig zu sprengen, verweise ich zur Vertiefung der Aussagen- und Prädikaten- Logik, sowie Resolution und Unifikation auf weitergehende Literatur, wie sie zum Beispiel in [2] und andere Vorlesungen (Theoretische Informatik 1+2, Diskrete Strukturen 1+2, Algorithmen & Datenstrukturen) zu finden ist. Der dritte Abschnitt bietet eine Einführung in den grundlegenden Aufbau von Prolog- Programmen. Mein Ziel ist es, die Konstrukte zur formalen Problembeschreibung in Prolog darzustellen und ein Gefühl dafür zu schaffen, was Programmieren in Prolog beinhaltet und die Theoretische Informatik (Prädikatenlogik 1.Ordnung) damit zu tun hat. Auf die Syntax von Fakten, Regeln und Anfragen wird dabei genau eingegangen. Im vierten und letzten Kapitel widmen wir uns dann Prologs Auswertungsalgorithmus und entwickeln die Verbindung zur Theoretischen Informatik (Resolution). Um diesen Bereich zugänglicher zu gestalten, werde ich die in Prolog einsetzten Konzepte wie Rekursion, das Depth- First-Verfahren (Tiefensuche) und Backtracking inklusive CUT an Beispielen erläutern. Kapitel 1: Allgemeine Informationen über Prolog 1.1 Ein kurzer Abriss der Geschichte Prologs Die Programmiersprache Prolog wurde maßgeblich von Alain Colmerauer, einem französischen Wissenschaftlers und Informatiker und seiner (Marseiller) Forschungsgruppe entwickelt. Knapp zwei Jahre später begründete Robert Kowalski seine in Prolog integrierte SLD-Resolutionstheorie (siehe Kapitel 4). Im Herbst 1972 entwickelte Philipp Roussel das erste größere Prolog- Programm als Abwandlung eines Theorem-Beweisers. Diese Version war allerdings sehr langsam. Daher beauftragte Philipp Rousell, nach einem Besuch der Forschungseinrichtung für künstliche Intelligenz an der Universität von Edinburgh, wo er Roger Boyer und J. Moore und ihre Methode des Structure Sharings bei der Implementierung der Resolution kennenlernte, die frisch fertig gewordenen Studenten Battani, Meloni und Bazzoli einen Prolog-Interpreter in Fortran zu schreiben, der diese Methode benutzt. Mit Fertigstellung dieser Version von Prolog war eines der größten Probleme gelöst: die Geschwindigkeit hatte sich vervielfacht und wurde der von LISP angeglichen. Trotz vieler Applikationen und Implementationen weltweit wurde besonders in den USA LISP in den Bereichen der KI und Sprach - Übersetzung bevorzugt. Im Rahmen des Rechner der fünften Generation (FGCS: Fifth Generation Computer Systems) Projekts in Japan erlangte Prolog seinen Internationalen Durchbruch. Ziel dieses Projektes war es, neue Hochleistungs- Rechner zu entwerfen, deren Hardware für die Logikverarbeitung vorbereitet ist und Prolog als Maschinensprache des Logikprozessors dienen sollte. Obwohl dieses ehrgeizige Projekt scheiterte, erlangte dadurch Prolog in der Bereich der künstlichen Intelligenz (KI) in Europa und Japan die Vormachtstellung (in den USA LISP). Michael Knötig

3 Dieses neu entfachte Interesse führte dazu, das immer weitere freie Prolog- Versionen und Varianten entwickelt wurden, und letzt endlich auch kommerzielle Prolog- Interpreter und Compiler auf dem Markt kamen. Im Jahre 1995 wurde Prolog nach der ISO-Norm standardisiert und hat es bis heute geschafft, sich neben LISP als Sprache der künstlichen Intelligenz und Computerlinguistik zu etablieren. 1.2 Einsatzgebiete von Prolog Wie aus dem geschichtliche Teil ersichtlich wird, ist ein wichtiger Anwendungsbereich für Prolog im Bereich der künstlichen Intelligenz und Computerlinguistik (Sprachforschung) zu finden, im allgemeinen läßt sich die Sprache (mittlerweile) für alle Anwendungen verwenden. Hierzu einige Beispiele der heutigen Einsatzgebiete: Expertensysteme: Es handelt sich um spezielle Programme, die das Wissen eines Experten für ein bestimmtes Fachgebiet enthalten, z.b. Auswertung von Krankheitssymptomen Relationale Datenbanken : z.b. Netzplantechnik Verarbeitung natürlicher Sprache: - Parsing - Übersetzung - Textverstehen - Natürlich-sprachliche Datenbankschnittstellen (z.b. Call-Center-Menu) - Simulieren des menschlichen Sprachverstehens (Spracherkennung) mechanisches + mathematische Theorem- Beweiser: Beweisen von Theoremen (Sätze) eines Axiomensystems Analyse biochemischer Strukturen Lösung von symbolischen Gleichungen Eine kleine Übersicht aktueller Anwendungen in Prolog befindet sich im Anhang. 1.3 Was ist Prolog? Was unterscheidet Prolog von anderen Programmiersprachen? Der Name Prolog ist eine Abkürzung von "programmation en logique". Heute findet man häufig die englische Übersetzung PROgramming in LOGic Als logische Programmiersprache gehört Prolog zu den deklarativen Programmiersprachen. Das heißt, daß im Gegensatz zu den imperativen Programmiersprachen nicht der Lösungsweg einer Problemstellung, sondern eine umfassende Beschreibung der Problemstellung selbst im Mittelpunkt steht ("Was soll gelöst werden?" anstatt "Wie soll etwas gelöst werden?"). Das Programm selbst besitzt, wenn auch die Reihenfolge der Eingabe des Wissens sich auf den Ablauf des Programms auswirken kann, keine algorithmische Struktur, da die Lösungsfindung und ihr Lösungsweg alleinige Aufgabe des Prolog-Compilers/Interpreters (je nach System) ist. Wie die Abarbeitungsfolge aussieht, wird also nicht im Programm selber spezifiziert, sondern ist vom Compiler/Interpreter vorgegeben. Aus diesem Grund formulierte Kowalski folgende Gleichung: Algorithmus = Logik + Steuerung als Pendant auf Niklas Wirths Daten + Algorithmus = Programm. Programmieren in Prolog bedeutet, das Problem durch Angabe von Wissen (Fakten und Regeln) logisch zu spezifizieren, d.h., es wird beschrieben, welcher Ausgangszustand vorliegt und was erreicht werden soll. Ein Prolog-Programm besteht deshalb allein aus der Repräsentation von Michael Knötig

4 Wissen (als Fakten und Regeln), mit Hilfe dessen eine Problemstellung beschrieben wird, so daß eine Lösung gefunden werden kann. Dieses Wissen ist positiv, d.h. es gibt keine formal logische Möglichkeit, "negatives Wissen" (z.b. daß ein bestimmtes Objekt eine entsprechende Eigenschaft nicht besitzt) darzustellen (Trotzdem gibt es eine Möglichkeit, negatives Wissen darzustellen (not(x)). Das Prolog-System geht weiterhin von einer Weltabgeschlossenheit (closed world assumption) aus. Jede Information, die zur Problemlösung wesentlich beiträgt, muß dem Prolog-System bekannt sein, da das Prolog-System sonst nicht das entsprechende Ergebnis liefern kann. Die ist der Grund, warum Prolog auf den mathematischen Grundlagen der Prädikatenlogik / Aussagenlogik [2] beruht. Ein Prolog-Programm ist eine Sammlung von so genannten Horn- Klauseln (siehe Kapitel 2.2). Im Unterschied zu funktionalen Programmiersprachen wird in Prolog als logische Programmiersprache das Problem auch nicht durch die funktionalen Zusammenhänge (eindeutige Zuordnungen) seiner Elemente beschrieben, sondern mithilfe von Relationen und logischen Formeln. Dadurch erhalten die Daten, die ein Prolog-Programm enthält, eine ganz andere Qualität, da mit Relationen viel komplexere Zusammenhänge beschrieben werden können. Der Ablauf eines Prolog-Programms besteht aus einer Anfrage an das Prolog-System in einem ihm bekannten Format, das es mithilfe des ihm gegebenen Wissen und dem Prolog-typischen, auf Logik basierenden Beweisverfahren zu beweisen/beantworten versucht. Dieses Beweisverfahren (siehe Kapitel 4) ist so konzipiert, daß Prolog eine Anfrage mit Zurücknahme zwischenzeitlicher "Fehlentscheidungen" zu beweisen versucht. Programme dieser Art werden als nichtdeterministisch bezeichnet. An den Verzweigungsstellen in einem derartigen Programm werden nicht, wie in klassischen Programmiersprachen, Zweige durch ja/nein-entscheidungen ausgeschlossen, sondern ein Weg wird gewählt und die restlichen Wege werden als Alternativen gekennzeichnet. Dieses Wechselspiel von Wegauswahl (Tiefensuche, Kapitel 4.2) und Zurücksetzen in einen früheren Abarbeitungszustand (Backtracking, siehe Kapitel 4.2) ist eine typische Problemlösungsmethode der Künstlichen Intelligenz. Aus diesen Aspekten ergeben sich einige Konsequenzen, die typisch für Prolog und die logische Programmierung sind. Da ein Prolog-Programm keine algorithmische Struktur besitzt, und Prolog auch nicht zur Lösung numerischer Problemstellungen konzipiert ist, besitzt es sehr wenig Steuerelemente (wie z.b. Cut). Die daraus resultierende sehr einfache Syntax, um Fakten und Regeln zu formulieren, beinhaltet wenige Beschränkungen des Eingabeformats, so daß man sagen kann, das ein Prolog-Programm, abgesehen von typischen Namenskonventionen, wirklich in jeder Sprache (sofern sie von der Tastatur unterstützt wird) geschrieben werden kann. Damit eignet es sich hervorragend z.b. zur Verarbeitung natürlichsprachlicher Texte. Da Prolog-Programme nur aus Fakten und Regeln besteht, sind sie im Allgemeinen aus der Sicht des Programmierers relativ schnell zu erstellen, aus der Sicht eines Benutzers leicht verständlich und außerdem ziemlich einfach zu warten. Das Fehlen der Steuerelemente wirkt sich jedoch negativ auf die Kontrolle des Ressourcenverbrauchs aus, so daß dieser nicht leicht erkennbar ist. Das gewählte Beweisverfahren ist zudem nicht hundertprozentig sicher und entspricht mit seinen Lücken auch nicht exakt der Logik, so daß es einige Tücken gibt (Verwendung von not(x), cut etc...). Damit ist Prolog, als logische Programmiersprache, nicht geeignet, deterministische oder numerische Problemstellungen zu lösen, da es dafür nicht konzipiert ist. Dafür reicht das Anwendungsgebiet von Prolog von Bearbeitung natürlichsprachiger Texte über Übersetzerbau und (relationale) Datenbanken bis hin zu Expertensystemen und Künstlicher Intelligenz. Kaptiel 2: Ein kleiner Blick in die Mathematik hinter Prolog 2.1 Die Prädikatenlogik 1.Ordnung... Michael Knötig

5 ...gibt uns eine Möglichkeit logische Aussagen formal auszudrücken und gleichzeitig ist sie eine Erweiterung der Aussagenlogik, die ergänzend zur Aussagenverknüpfung durch UND oder ODER auch die Eigenschaften von Objekten und des Geltungsbereiches berücksichtigt. Die Eigenschaften werden durch Prädikatssymbole und Funktionssymbole und deren Geltungsbereich durch Quantoren beschrieben. Einfach ausgedrückt beschäftigt sich die Prädikatenlogik mit Aussagen wie: [Wiki] - Es gibt ein Objekt mit der Eigenschaft... - Für alle Objekte XY gilt... Beispiel: - Alle Metalle leiten Strom - Kupfer ist ein Metall Hieraus läßt sich schließen: Kupfer leitet Strom In der Prädikatenlogik 1.Ordnung (first order logic kurz: FOL) gibt es allerdings keine Sätze der Art für jede Eigenschaft E, gilt folgendes.... Zur Übersicht mal eine Zusammenfassung einiger Bezeichnungen, woraus Formeln bestehen (mit kurzer Erläuterung): * Konstanten (Fakten/Atome/Axiome): Zahlen, Namen... * Prädikate: Namen für Funktionen, die WAHR oder FALSCH (wie boolesche Funktionen) sind und eine Reihe von Argumente übernehmen können (natürlich(0) = wahr) * Funktionen: die Prädikatenlogik unterscheidt zwischen Prädikaten und alle anderen Funktionen (z.b. nachfolger (0)), die keine booleschen Werte liefern. * Variablen: die für noch nicht festgelgte Größen stehen z.b. X, Y * Junktoren: (und) (oder) (nicht) Implikation Äquivalenz) * Quantoren: (für alle...) (es existiert...) * Interpunktionssymbole: ( ),. Als wichtiges Instrument haben wir die Ableitungsregeln, mit denen wir neue Aussagen aus einer vorgegebenen Menge von Aussagen ableiten bzw. beweisen können. Weiterhin können nur Terme Argumente von Prädikaten und Funktionen sein. Terme dürfen keine Prädikate, Quantoren oder Junktoren enthalten. Ein Term ist ein mathematischer Ausdruck, der sowohl nur Ziffern oder Variablen als auch eine Kombination aus Ziffern und/oder Variablen und Funktionssymbolen enthalten kann. Lange und oftmals auch komplizierte Terme können meist durch Äquivalenzumformungen vereinfacht werden. Wie jeder Logikkalkül besteht die Prädikatenlogik aus * Angaben, wie man systematisch formal korrekte Aussagen konstruiert, * einer Menge von Axiomen, von denen jedes einzelne Axiom ebenfalls eine formal korrekte Formel darstellt, * einer Menge von Regeln, die erlauben Sätze (Theoreme) aus früher hergeleiteten Sätzen oder den Axiomen(Fakten) herzuleiten. Mit der Prädikatenlogik 1.Ordnung haben wir nun einen Weg gefunden, unsere Grundaussagen (Fakten/Axiome) und Aussagen/abzuleitende Aussagen als Eingabe/Anfrage/Ziel in einer deduktiven Datenbank (Menge von Aussagen) und Deduktionssystemen (d.h. Weg der Bearbeitung = Kontrollproblem) darzustellen. Der Unterschied zwischen einer logischen Programmiersprache und einer Datenbank besteht darin, daß Datenbanken nicht die gleiche Komplexität von Aussagen und Rückschlüsse bzw. Erweiterung aus Anfragen bilden können. Da die Prädikatenlogik 1.Ordnung jedoch zu viele Möglichkeiten für gleiche Aussagen und zu viele Ableitungsregeln zur Verfügung stellt, beschränkt sich Prolog auf die Horn-Klausel [wiki]: 2.2 Horn-Klauseln Michael Knötig

6 Hornklauseln sind ein Spezialfall von logischen Klauseln: Es sind Klauseln mit höchstens einem positiven Literal ( P1,..., Pn-1, Pn). Wenn die Klausel genau ein positives Literal enthält, nennt man sie "definite Klausel". Die definite Klausel kann auch als Implikation dargestellt werden (Pn -> P1... Pn-1), was schon sehr einer Regel in Prolog gleicht. Man unterscheidet im Wesentlichen zwischen drei Arten von Hornklauseln: Eine Hornklausel bestehend aus genau einem positiven Literal heisst in Prolog Faktum, eine Klausel bestehend aus höchstens einem positivem Literal und beliegig vielen Negativen ist eine Regel, und eine Hornklausel ohne positives Literal ist eine Anfrage oder Ziel. Nicht jede Aussage, die sich in der Prädikatenlogik formulieren lässt, ist als Horn-Klausel darstellbar. Weiterhin bedienen wir uns der 2.3 Resolution [2], [wiki] Die Resolution ist ein Verfahren, um eine Formel F, die in konjunktiver Normalform vorliegt, auf Erfüllbarkeit und Gültigkeit zu testen. Dabei sind folgende Aussagen möglich: 1. führt Res(F) zu einem Widerspruch, ist F unerfüllbar 2. führt Res( F) zu einen Widerspruch, ist F gültig Resolution bezeichnet in der Logik eine Schlussweise, die es erlaubt, von (A_1 A_2... A_n) (B_1 B_2... B_m A_1) zu schliessen auf A_2... A_n B_1... B_m Für Prolog bedeutet dies, daß eine Anfrage durch schrittweise Ersetzung der Teilziele durch Fakten oder Regelrümpfe in die leere (wahre) Behauptung?-. unter Ausgabe der zwischenzeitlich gebundenen Variablen überführt. Zur Verdeutlichung des Resolutionsalgorithmus verweise ich auf die Beispiele in Kapitel Unifikation [2], [wiki] Unter der Unifikation / Instantiierung zweier Terme versteht man die Ersetzung der in ihnen vorkommenden Variablen durch Terme derart, dass die so entstandenen Terme als Zeichenfolge gleich sind. Zwei Terme heißen unifizierbar, wenn sie durch geeignete Ersetzung der Variablen in diesem Sinne gleich gemacht werden können. Für die Unifikation von Variablen muß gelten: * sind beide Variablen ungebunden, dann stehen sie für den gleichen Wert, d. h. erhält eine Variable einen Wert, wird dieser automatisch der zweiten Variablen zugewiesen. * ist eine Variable gebunden und die andere nicht, so erhält die freie Variable den Wert der gebundenen. * sind beide Variablen gebunden, so ist die Unifikation gleich der von Termen. Wir kennen nun die wichtigsten mathematischen Grundlagen von Prolog um die Arbeitsweise besser nachvollziehen zu können. Kapitel 3: Aufbau eines Prolog-Programms Nachdem wir im vorherigen Abschnitt die mathematischen und theoretischen Grundlagen kennengelernt bzw. aufgefrischt haben, möchte ich zu einige Aspekte noch einmal kurz in andere Worte fassen. Um jemanden in der wirklichen Welt eine Fragestellung zu erklären, gehen wir in der Regel so vor: Michael Knötig

7 Wir nehmen uns einen Teil aus dem Problemumfeld und indem wir die verschiedene Dinge [unsere Axiome] festlegen (definieren), und ihre Gesetzmäßigkeiten und Zusammenhänge beschreiben, bilden wir ein gemeinsame Grundlage (Daten- /Wissens-Basis). Erst danach formulieren wir für das eigentliche Problem eine Frage. Wir können dabei z.b. nach Dingen oder Personen, welche bestimmte Forderungen erfüllen oder ob eine vorgegebene Feststellung gültig ist. Prolog stellt uns dafür folgende Konstrukte zur Verfügung: Fakten (Axiome), Regeln und natürlich die Fragen. Zusammen bilden sie die Hauptstruktur eines Prolog-Programms. 3.1 Fakten Fakten, auch Axiome genannt, sind Aussagen, die ohne Voraussetzungen als wahr angenommen werden. Wir können zwischen zwei Arten von Aussagen unterscheiden: Die einen definieren Beziehungen zwischen Objekten und die anderen die Eigenschaften des Objektes. Ein Beispiel gefällig: (1) Wir besuchen die Familie Feuerstein und ihre Freunde... a) Fred ist ein Mensch b) Wilma ist ein Mensch c) Pebbles ist ein Mensch hier wird jeweils eine Eigenschaft des Objektes Fred, Wilma, & Pebbles beschrieben d) Fred mag Bowling e) Wilma liebt Fred e) Pebbles ist Tochter von Fred mag, liebt und ist Tochter von ist eine Beziehung zwischen den Fakten Fred und Bowling, Wilma und Fred bzw. Pebbles und Fred. So sehen unsere Beispiele aus (1) in Prolog aus: a) mensch (fred). b) mensch (wilma). c) mensch (pebbles) d) mag (fred,bowling). e) liebt (wilma, fred). g) tochter (pebbles, fred). Der Zusammenhang zwischen den Fakten und Relationen ist klar zu sehen und wir können folgende Relationen-Tabelle aufstellen, wobei jede Zeile genau einem Faktum entspricht: Mensch Name Mag Name Sache/Wen fred fred bowling wilma liebt pebbles wilma fred Alle Fakten, welche zur gleichen Relation gehören, haben den gleichen Namen, den Prädikatsnamen (hier: mensch, mag, liebt, tochter) und die Attribute in den Klammern werden Argumente des Prädikats genannt. Als Argumente können auch Variablen verwendet werden. Variablen werden in Prolog immer groß geschrieben, wodurch sie sich syntaktisch von Kostanten wie in den obrigen Beispielen unterscheiden. Folgende Syntax ist bei der Implementierung von Fakten zu beachten: Die Namen von Prädikaten und Konstanten beginnen immer mit einem Kleinbuchstaben Der Prädikatsname steht immer am Anfang und direkt anschließend folgen die Argumente in Klammern Die Anzahl der Argumente ist beliebig und kann insbesondere auch null sein Jedes Faktum wird mit einem Punkt abgeschlossen Die Argumente werden durch Kommas getrennt Fakten, mit gleichem Namen, aber eine andere Stelligkeit (=Anzahl der Argumente in der Klammer) haben, gelten als unterschiedliche Prädikate 3.2 Regeln Als nächstes benötigen wir Regeln mit deren Hilfe wir Wenn-dann-Aussagen definieren. Ist das und das und... und das der Fall, dann ist auch das der Fall. Formal läßt sich dies auch in Form einer Folgerung hinschreiben: A_1 A_2... A_n n Michael Knötig

8 Hier sehen wir die Verbindung zu den Horn- Klauseln aus dem 2.Kapitel. Beispiel (2): Die Aussage: Wenn X Tochter von Fred, dann lebt sie in Steintal sieht dann wie folgt aus: lebt (X,steintal) :-tochter (X,fred). Das Symbol :- ist ein Relikt aus früheren Zeiten und steht für den Folgerungspfeil ( Regeln werden ebenso mit einem Punkt abgeschlossen. Der linke Teil vom Folgerungspfeil heißt Kopf einer Regel und der Teil rechts ist der Rumpf. Der Kopf bezeichnet das Prädikat, wodurch die Regel bezeichnet wird und kann daher nur aus einem Prädikat bestehen. Der Rumpf definiert, welche Bedingungen wahr werden müssen, damit der Kopf wahr wird. Der Rumpf kann aus mehreren Teilzielen (Bedingungen) bestehen, die dann durch Kommata voneinander getrennt werden. Ein wichtiger Hinweis an dieser Stelle: der Gültigkeitsbereich von Variablen (hier: X) bezieht sich immer nur auf eine Regel. Außerhalb einer Regel kann eine Variable gleiche Namens als Platzhalter für ein ganz anderes Objekt stehen. 3.3 Fragen Nun haben wir unsere Fakten und Regeln eingegeben, so haben wir damit eine Datensammlung / Wissensbasis erstellt. Jetzt können wir Fragen an das Prolog- System formulieren. Dies können Fragen sein, auf welche die Antwort Ja oder Nein ist (z.b. Mag Fred Bowling?) oder Fragen, mit denen wir bestimmte Sachverhalte ermitteln möchten (z.b. Was mag Fred?). In Prolog beginnen Fragen mit einem Fragezeichen gefolgt von einem Bindestrich. Unsere zwei Fragen in Prolog: Beispiel 3:?-mensch(fred).?-mag(fred,X). 3.4 Listen & Rekursion Listen sind zusammengesetzte Terme, die in eckigen Klammern eine beliebige Anzahl von Termen als Elemente haben können, die durch Kommata getrennt werden. Die Reihenfolge der Elemente ist im Gegensatz zu Mengen relevant. Es gibt zwei Arten von Listen: leere und nichtleere. Leere Liste: []. Nichtleere Liste: [Kopf Rumpf]. Der Kopf ist dabei ein Term und der Rumpf eine Liste, ggf die leere Liste. Listen sind also eine rekursiv definierte Datenstruktur. Daher sind Prädikate zur Listenverarbeitung meist rekursive Prädikate mit folgender Strategie: - Zerlege die Liste in Kopf und Rest - Mach etwas mit dem Kopf und verarbeite den (verkürzten) Rest rekursiv weiter. - Terminiere, wenn die Liste leer ist, oder der aktuelle Kopf bestimmte Merkmale aufweist.. Beispiel 4: (Listenrekursion) - member(x,[x,_]). - member(x,[_ T]):-member(X,T). Ein weiteres großes Beispiel ist der merge-sort im Kapitel 4.3 Michael Knötig

9 Doch wie reagiert Prolog auf solche Fragen und wie werden die Antworten hergeleitet? Diesen wichtigen Punkten widmen wir uns nun im 4.Kapitel. Kapitel 4: Auf der Suche nach einer Lösung in Prolog 4.1 die SLD Resolution Wie findet Prolog nun in unserer Wissensbasis die gewünschten Antworten? Prologs Auswertungsalgorithmus nutzt zur Antwortgenerierung eine spezielle Form der Resolution, die so genannte SLD-Resolution (Selection rule driven Linear resolution for Definite clauses). Drei wesentliche Eigenschaften sind charakteristisch für diese Art von Resolution: Zum Einem ist sie linear, das heißt, daß immer die zuletzt gebildete Resolution als Eingabe für weitere Resolutionsschritte dient. Weiterhin wird mit definiten Klauseln gearbeitet. Diese Klauseln besitzen genau ein postives Literal, d.h. es handelt sich um eine Hornklausel. Mit der bereits beschriebenen Terminologie von Fakten und Regeln haben wir bereits dafür gesorgt, dass diese Forderung erfüllt ist. Einzig die Anfragen sind nicht definit, da sie aus nur negierten Klauseln bestehen. Die dritte Eigenschaft ist das eine Auswahlregel existiert, nach welcher bei jedem Ableitungsschritt eine bestimmte atomare Formel der Anfrage ausgewählt wird. Bei Prolog ist es die am weitesten links stehende. Die SLD-Resolution ist wie die allgemeine Resolution korrekt und vollständig. Korrekt bedeutet, daß alle auftretenden Rechenergebnisse Folgerungen des Programms, d.h. der Klauselmenge sind. Die Vollständigkeit besagt, daß alles, was sich aus dem Programm folgern läßt, auch als Rechenergebnis auftritt. An dieser Stelle möchte ich auf den Beweis dieser Sätze auf [2, Seite 131] verweisen. Warum dies in Prolog nicht immer der Fall ist, werden wir nach einem Beispiel im nächsten Abschnitt ergründen. 4.2 SLD-Suchbäume, Depth-First-Verfahren und das Backtracking Bei größeren Programmen mit mehreren Klauseln kann es bei einem Ableitungsschritt mehrere Klauseln geben, welche mit der atomaren Formel der Anfrage unifizierbar sind. Weiterhin können auch mehrere Antworten auf eine Frage existieren. Um den Ablauf der Lösungssuche übersichtlich darzustellen, bieten sich SLD-Suchbäume an. Jeder Zweig eines SLD-Baumes stellt einen erfolgreichen oder fehlgeschlagnen Beweis des Zieles dar. Die Knoten eines Zweiges sind die jeweils noch zu beweisenden Ziele und an den Kanten werden die gefundenen allgemeinen Unifikatoren notiert. Ein SLD-Baum heißt erfolgreich, wenn er ein Blatt mit der leeren Anfrage (Menge, geschrieben: ) hat und endlich fehlgeschlagen, wenn er endlich und nicht erfolgreich ist. Prologs Auswertungsalgorithmus arbeitet mittels Tiefensuche, auch Depth-First-Verfahren genannt, d.h. ausgehend von der Wurzel sucht Prolog jeweils den am weitesten links stehenden Zweig vollständig ab, bevor es zum nächsten Zweig übergeht. Die Suche ist beendet, wenn alle Anfragen erfolgreich abgearbeitet wurden. Die Unfikation wird dann als Ergebnis ausgegeben. Bei einem Fehlschlag, wird die letzte Unifikation wieder verworfen und die dem Blatt nächstliegende Alternative wird getestet. Diese Vorgehensweise wird auch als BACKTRACKING bezeichnet. Natürlich kann es auf eine Anfrage mehrere richtige Antworten geben und da Prolog standardmäßig nur ein Ergebnis ausgibt, kann der Benutzer durch Eingabe eines Semikolons ein künstliches Backtracking auslösen und erhält ggf weitere Lösungen. Vgl. [2,5,6] Ein kleines Beispiel-Programm: (1) tochter(a,b):-vater(b,a),weiblich(a). (2) tochter(a,b):-mutter(b,a),weiblich(a). (3) vater(homer,lisa). Michael Knötig

10 (4) vater(homer,bart). (5) mutter(march,lisa). (6) mutter(march,bart). (7) weiblich(lisa). (8) maennlich(bart). Die Anfrage?- tochter(x,y). liefert folgenden SLD-Baum Die von Prolog verwendete Suchstrategie führt allerdings auch zu Einschränkungen. Sie ist zwar wesentlich effizienter als z.b. die Breitensuche, jedoch führt das Verfahren dazu, daß Prolog nicht mehr notwendig kommutativ ist, was nichts anderes bedeutet, daß die Reihenfolge der Regeln im Programm durchaus Einfluss auf das Ergebnis der Rechnung nimmt. Das Vertauschen zweier Regeln kann dazu führen, daß das Programm einmal terminiert und beim anderen Mal in eine Endlosschleife läuft. Dazu ein Beispiel: Endlosschleife (als Endlos-Rekursion) (1) p(x):-q(x). (2) q(x) :-p(x). (3) q(a).?- p(y). Terminiert: (1) p(x):-q(x). (2) q(a). (3) q(x):-p(x).?- p(y). p(y) q(y). (1) p(y) (2) q(y). Deswegen wurde zur Steuerung des sehr aufwendigen Suchverfahrens, dem ein Programmablauf von Prolog entspricht, außerlogische Steuerungsmechanismen integriert. 4.3 Der Cut Hier ist vor allem der Cut zu nennen. Der Cut, der in Prolog mit einem Ausrufezeichen '!' bezeichnet wird, schließt dabei ganze Teile des Suchbaumes von der Abarbeitung durch den Interpreter aus. Michael Knötig

11 Wir müssen dabei zwischen sogenannten grünen und roten Cuts unterscheiden. Die grünen Cuts verändern die Semantik eines Programms nicht, da sie aus Gründen der Programmeffizienz nur Unterbäume abschneiden, die bereits nachgewiesenermaßen kein positives Ergebnis mehr erbringen können. Hingegen verändern Rote Cuts die Semantik des Programms, indem sie mögliche weitere Lösungen vom Lösungsweg ausschließen. Beispiel: Das Prädikat merge soll zwei sortierte Listen von Zahlen zu einer sortierten Gesamtliste zusammenmischen. Es werden ausschließlich green cuts verwendet: merge( [X Xs], [Y Ys], [X Zs]) :- X < Y,!, merge( Xs, [Y Ys], Zs ). merge( [X Xs], [ Y Ys], [X, Y Zs] ) :- X = Y,!, merge( Xs, Ys, Zs ). merge( [X Xs], [Y Ys], [Y Zs]) :- Y < X,!, merge( [X Xs], Ys, Zs). merge( Xs, [], Xs ) :-!. merge( [], Ys, Ys ) :-!. Aufruf:?- merge( [2,4,6,8,9,11], [1,3,4,5,7,13], X ). X = [1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 11, 13] yes. Am deutlichsten läßt sich die Wirkungsweise eines red-cuts veranschaulichen, wenn man sich den Beweisbaum einer Anfrage veranschaulicht. Gegeben sei folgende Datenbasis: a :- b,!, c. a. d :- a, e. e. b. d :- a. d :- b. Die Anfrage lautet?- d. Weiterhin besitzt Prolog eine sehr interessante Eigenschaft, nämlich Selbstmodifizierenden Code Unter Prolog ist es uns möglich, während des Programmablauf die Regelbasis mittels besonderer Schlüsselregeln wie 'assert' und 'retract' zu verändern. Es ist uns also möglich und es war durchaus von den Programmierern beabsichtigt, in Prolog selbstmodifizierende Programme zu schreiben. Dies steht im Widerspruch zu dem Versuch, Programmcode zu validieren (auf Gültigkeit/Richtigkeit zu testen) und dessen Korrektheit zu beweisen. Nun ist bei einem selbstmodifizierenden Programm ein formaler Beweis der Korrektheit in einigen Fällen prinzipiell nicht mehr möglich, da der Quelltext zur Laufzeit verändert werden kann. In einem Michael Knötig

12 sprachverarbeitenden Programm können z.b. nachträglich Worte durch den Nutzer oder auch automatisch als Fakten ergänzt werden, aus neuen Texten können grammatikalische und semantische Merkmale extrahiert und als Regeln gespeichert werden und letztendlich können Regeln als widersprüchlich oder falsch erkannt und aus dem Quellcode eliminiert werden. Dadurch ist Prolog eine Programmiersprache, welche es Programmen ermöglicht, sich einen korrekten Beweis zu entziehen. FAZIT: Prolog ist eine sehr interessante und vielseitige Programmiersprache. Die Verständlichkeit und Übersichtlichkeit des Programmcodes hängt einzig vom Schreibstil des Programmierers ab, da kaum Vorgaben bezüglich Bezeichnung von Variablen, Prädikats- & Funktions-Symbolen (nur Großbuchstaben oder _ bzw. Kleinbuchstaben am Anfang) gemacht werden. Die Portabilität von Prolog-Programmen als Quelltext ist sehr gut, solange der Programmierer nicht auf Betriebssystem-interne Besonderheiten zu greift. Es gibt für alle wichtigen System-Plattformen Prolog-Interpreter und Compiler. Die Compiler binden das Prolog-Programm an eine bestimmtes Betriebssystem. Literatur- Verzeichnis: [1] Kenneth C.Louden: Programmiersprachen: Grundlagen, Konzepte, Entwurf TWS-Kent Publishing Company ISBN [2] Schöning, Uwe: Logik für Informatiker ISBN Auflage, Spektrum Akademischer Verlag Heidelberg-Berlin [3] Didakowski, Jörd / Siebert, Alexander: Prolog Geschichtliches [ 2002] [4] Fuchs, Norbert E.: Kurs in logischer Programmierung Springer-Verlag Wien 1990 [5] Dietmars PROLOG-Seiten [ [6] The Prolog tutorial [ [7] Guide to Prolog Programming [ [8] Prolog Resource Guide [ 2.cs.cmu.edu/Groups/AI/html/faqs/lang/Prolog/prg/top.html] [9] Prolog Tutorial [ [10] The GNU Prolog [ [11] SWI-Prolog [ [12] Visual Prolog [ [wiki] Wikipedia das Web-Lexikon [ Michael Knötig

13 ANHANG [von der IF/Prolog-Seite] Anwendungen Hier ist zu Ihrer Information eine lose Sammlung von IF/Prolog Anwendungen. Auswahlkriterien waren, dass wir von der Anwendung gehört haben, dass sie interessant ist, und dass uns freundlicherweise gestattet wurde, darüber zu berichten. Dienstplan Manager Mit Dienstplan Manager werden Planerstellung, -änderung und -auswertung von Schichtdiensten automatisiert und der Dienstplan auf Vollständigkeit und Machbarkeit geprüft.... MasterPiece Intelligente Angebotserstellung und Minimierung des Verbrauchs von Teppichbelägen vor Ort... Network Management Lucent Technologies (former AT&T) developped Total Network Management (TNM)... Konfiguration Ihres Nokia Handy's Nokia Mobile Phones (NMP) ist Europas größter und der weltweit zweitgrößte Hersteller von Mobilen Telefonen. Seit 1987 werden systematische Verbesserungen... PROSYN -- Computergestützte Prozeßsynthese Die Dortmunder Firma GHN vermarktet erfolgreich ihr Produkt PROSYN. Führenden Firmen der Chemieindustrie setzen PROSYN zur Synthese komplexer chemischer Prozesse ein.... Optimierung von Geschäftsprozessen Optimierte Geschäftsprozesse gelten heute in den meisten Branchen als Schlüssel für das Bestehen im Wettbewerb.... Kontrolle der Umweltfaktoren eines Flughafens In modernen Gebäuden ist es wichtig, Daten bzgl. Temperatur, Klimaanlage, Wasser und Elektizität zu beobachten, zu kontrollieren und zu beeinflussen.... Steel Mill Machine Flow Kawasaki Heavy Industries, Ltd of Japan put a scheduling system... Pension Calculation & Valuation Bacon and Woodrow (PFA Systems Ltd), a part of the Woodrow Milliman... Polymer Design Mitsubishi Research Institute has developed an expert system for polymer design.... Turbinen-Vibrations-Diagnose Dampfturbinen sind eines der wichtigsten Elemente eines Kraftwerkes.... Verteiltes Datenbank System Oft müssen internationale Firmen interne Datenbanken gemeinsam von unterschiedlichen Büros aus nutzen.... Oil Field Risk Analysis Nordic Offshore Systems commissioned a real time expert system to... FE Mesh Generation System Toyota Motor Corporation and Toyota Central R\&D have developed a... ARSYS -- Abfall- und Reststoffüberwachung EDV-gestützte Sonderabfallüberwachung bei den Landesbehörden von 13 Bundesländern auf der Basis der Abfall- und Reststoffüberwachungs-Verordnung.... Order Clearing Hewlett Packard has successfully exploited Prolog technology in a number of... Brillen Design Die Optikerkette Paris Miki handelt mit zehntausenden von verschiedenen Brillengestellen und Gläsern.... Control for Shield Tunneling Toda Construction Co., Ltd asked TEAC and IF Computer to develop... Konfiguration von Telefonanlagen Die Telefonläden in Deutschland beraten den Kunden über Telefonanlagen,... Michael Knötig

14 Fahrplangestaltung eines Hauptbahnhof Die Forschungsabteilung der Siemens AG hat für die Deutsche Bundesbahn den Prototypen eines Scheduling Systems geschrieben, der es ermöglicht, täglich neue, sich ändernde Fahrpläne... Stock Evaluation The Information Systems section of a CPA office registered in Tokyo... Power Distribution Korea Electric Power Corporation (KEPCO) has developed an expert... Cross-Reference Tools CRETO - Cross Reference Tool für Prolog Quell-Dateien - wurde am Lehrstuhl für Elektrische Energieversorgung der Universität Wuppertal... Kundensupport-Center IF/Prolog, eines unserer Software Produkte, läuft auf über 600 Maschinen... Design Computation To a wide range of industrial application domains, such as camera design,... Gasoline Wholesale Keizo Ltd of Japan is a computing services company which used to run... Circuit Verification Siemens central R\&D laboratories built a Circuit Verification... Weitere sehr interessante Internet-Seiten zum Thema Prolog-Anwendungen: Michael Knötig

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

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

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

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

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

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

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

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

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

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

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

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

Logische Programmierung

Logische Programmierung Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);

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

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

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

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

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten bedingten Wahrscheinlichkeit. Mathematik- Unterrichts- Einheiten- Datei e. V. Klasse 9 12 04/2015 Diabetes-Test Infos: www.mued.de Blutspenden werden auf Diabetes untersucht, das mit 8 % in der Bevölkerung verbreitet ist. Dabei werden

Mehr

Einführung in PROLOG. Christian Stocker

Einfü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

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

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

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Auswahl von Klauseln und Atomen in Prolog

Auswahl 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

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

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

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

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

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

Program = Logic + Control

Program = 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

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

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

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

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! 9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

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

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Wir basteln einen Jahreskalender mit MS Excel.

Wir basteln einen Jahreskalender mit MS Excel. Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger

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

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

9. Übung Formale Grundlagen der Informatik

9. Übung Formale Grundlagen der Informatik Institut für Informatik Sommersemester 2001 Universität Zürich 9. Übung Formale Grundlagen der Informatik Norbert E. Fuchs (fuchs@ifi.unizh.ch) Reinhard Riedl (riedl@ifi.unizh.ch) Nadine Korolnik (korolnik@ifi.unizh.ch)

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

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

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

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Lösungshinweise zu Kapitel 4

Lösungshinweise zu Kapitel 4 L-23 Lösungshinweise zu Kapitel 4 zu Selbsttestaufgabe 4.3 (Regelumformungen 1) Die Regeln R1, R2 und R2 sind bereits in vereinfachter Form und entsprechen genau den Regeln GA-1, GA-8 und GA-7. Die Umformung

Mehr

Dossier: Rechnungen und Lieferscheine in Word

Dossier: Rechnungen und Lieferscheine in Word www.sekretaerinnen-service.de Dossier: Rechnungen und Lieferscheine in Word Es muss nicht immer Excel sein Wenn Sie eine Vorlage für eine Rechnung oder einen Lieferschein erstellen möchten, brauchen Sie

Mehr

Approximation durch Taylorpolynome

Approximation durch Taylorpolynome TU Berlin Fakultät II - Mathematik und Naturwissenschaften Sekretariat MA 4-1 Straße des 17. Juni 10623 Berlin Hochschultag Approximation durch Taylorpolynome Im Rahmen der Schülerinnen- und Schüler-Uni

Mehr

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192. Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,

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

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

Mehr

Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3

Bachelor 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

Mehr

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Tutorial In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Zu Beginn müssen wir uns über die gewünschten Sprachen Gedanken machen. Zum einem, da eine professionelle

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

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

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

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen. Medizintechnik MATHCAD Kapitel. Einfache Rechnungen mit MATHCAD ohne Variablendefinition In diesem kleinen Kapitel wollen wir die ersten Schritte mit MATHCAD tun und folgende Aufgaben lösen: 8 a: 5 =?

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

impact ordering Info Produktkonfigurator

impact ordering Info Produktkonfigurator impact ordering Info Copyright Copyright 2013 veenion GmbH Alle Rechte vorbehalten. Kein Teil der Dokumentation darf in irgendeiner Form ohne schriftliche Genehmigung der veenion GmbH reproduziert, verändert

Mehr

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler

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

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

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

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Umgekehrte Kurvendiskussion

Umgekehrte Kurvendiskussion Umgekehrte Kurvendiskussion Bei einer Kurvendiskussion haben wir eine Funktionsgleichung vorgegeben und versuchen ihre 'Besonderheiten' herauszufinden: Nullstellen, Extremwerte, Wendepunkte, Polstellen

Mehr

Eigenen Farbverlauf erstellen

Eigenen Farbverlauf erstellen Diese Serie ist an totale Neulinge gerichtet. Neu bei PhotoLine, evtl. sogar komplett neu, was Bildbearbeitung betrifft. So versuche ich, hier alles einfach zu halten. Ich habe sogar PhotoLine ein zweites

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

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Lineare Differentialgleichungen erster Ordnung erkennen

Lineare Differentialgleichungen erster Ordnung erkennen Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

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

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Fragen für die Klausuren

Fragen für die Klausuren Fragen für die Klausuren Vom Quellcode zum ausführbaren Programm Was ist ein Quellcode? Ist der Quellcode von einem Programm auf unterschiedlichen Rechner gleich? Nennen Sie drei Programmiersprachen. Was

Mehr

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr