Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0



Ähnliche Dokumente
Teil 1: Ein motivierendes Beispiel

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie

Teil 4: Rekursion und Listen

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

Java Einführung Operatoren Kapitel 2 und 3

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Funktionale Programmierung mit Haskell

Diana Lange. Generative Gestaltung Operatoren

7 Rechnen mit Polynomen

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Einführung in die C++ Programmierung für Ingenieure

Erwin Grüner

Zeichen bei Zahlen entschlüsseln

Teil 8: Fortgeschrittene Techniken

Terme. Heute: Terme vergleichen. Struktur von Termen. Operatoren. Logik in der Praxis Logikprogrammierung (Prolog) p.1

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Vorkurs: Mathematik für Informatiker Steven Köhler, Anja Moldenhauer, Marcel Morisse

Auswahl von Klauseln und Atomen in Prolog

Binäre Bäume Darstellung und Traversierung

Programmierkurs Prolog, SS 1998

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Logische Programmierung

Einführung in das Arbeiten mit MS Excel. 1. Bearbeitungs

Grundlagen der Videotechnik. Redundanz

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

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

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.

1. Wie viel Zinsen bekommt man, wenn man 7000,00 1 Jahr lang mit 6 % anlegt?

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Repetitionsaufgaben Wurzelgleichungen

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

Repetitionsaufgaben: Lineare Gleichungen

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Die Programmiersprache C

Planungsblatt Mathematik für die 4E

Korrelation (II) Korrelation und Kausalität

Erstellen von x-y-diagrammen in OpenOffice.calc

Abstrakte Syntax von Prolog (1)

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Teamentwicklung. Psychologische Unternehmensberatung Volker Rudat

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/

Statuten in leichter Sprache

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Verkaufsstätten. Dipl.- Ing.(FH) M.Eng.(TU) Thomas Höhne

Komplexe Zahlen und Wechselstromwiderstände

Wie lässt sich die Multiplikation von Bruchzahlen im Operatorenmodell und wie im Größenmodell einführen?

Theoretische Grundlagen des Software Engineering

Kapitel 6: Graphalgorithmen Gliederung

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Auswertung Fünfjahresüberprüfung

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

Java-Programmierung mit NetBeans

Verfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

Primzahlen und RSA-Verschlüsselung

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen

Einführung in die Algebra

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

Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt

Beispiellösungen zu Blatt 111

Einführung in die Programmierung

I. Fächer / Module beim Lehramt an Grund-, Haupt- und Werkrealschulen

Bruchrechnung Wir teilen gerecht auf

Programmieren in Haskell Einführung

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

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Dossier Kunden zu Fans Lesen Sie auf nur fünf Seiten, was es mit dem Fanmodell auf sich hat

Wir machen neue Politik für Baden-Württemberg

Programmiersprachen und Übersetzer

Meinungen zur Altersvorsorge

Aufgabensammlung Bruchrechnen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Professionelle Seminare im Bereich MS-Office

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Semantik von Formeln und Sequenzen

2.8 Grenzflächeneffekte

Mathematischer Vorbereitungskurs für Ökonomen

Klassenarbeit zu linearen Gleichungssystemen

Das Werk einschließlich aller seiner Texte ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechts

Betriebliche Gestaltungsfelder

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

I. Fächer / Module beim Lehramt an Sonderschulen im 1. Studienabschnitt

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Anleitung über den Umgang mit Schildern

Ergebnisse zur Umfrage GC MARKT-BLITZLICHT No. 6 Mitarbeiter gewinnen. 08. August 2014

Bedingungen. Bedingungen. Bedingungen

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Rundung und Casting von Zahlen

Hohe Kontraste zwischen Himmel und Landschaft abmildern

Programmierung in C. Grundlagen. Stefan Kallerhoff

Übungsaufgaben Tilgungsrechnung

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;

Transkript:

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, Abarbeitung Teil 3: Arithmetik Teil 4: Rekursion und Listen Teil 5: Programmfluß Negation, Cut Teil 6: Verschiedenes Ein-/Ausgabe, Programmierstil Teil 7: Wissensbasis Löschen und Hinzufügen von Klauseln Teil 8: Fortgeschrittene Techniken Metainterpreter, iterative Deepening, PTTP, Differenzlisten, doppelt verkettete Listen Prolog Teil 2: Arithmetik (V. 1.0) 2 1 c G. Grieser

Arithmetische Ausdrücke Prolog besitzt eine Reihe von vordefinierten arithmetischen Ausdrücken, Funktionen und Operatoren Ausdrücke wie 3 + 5 sind gültige Prologterme?- 3 + 4 = 7. No Problem: = ist Operator für Unifikation. Zur Auswertung arithmetischer Ausdrücke gibt es den is- Operator: -Variable is +Ausdruck Setzt Variable auf das Ergebnis der Auswertung des Ausdrucks Es dürfen keine freien Variablen in der rechten Seite vorhanden sein!?- X is 3 + 5. X = 8 Yes Prolog Teil 2: Arithmetik (V. 1.0) 2 2 c G. Grieser

Funktionen, Operatoren etc. + Addition Subtraktion Multiplikation / Division < kleiner > größer =< kleiner gleich >= größer gleich =:= gleich = / = ungleich Verschiedene eingebaute Funktionen sind verfügbar mod, exp, sqrt, sin,.. Unterschied zwischen Unifikation und arithmetischen Berechnungen ist wichtig! Manche Operatoren können auch in Infix/Postfixschreibweise geschrieben werden?- 3 + 4 == +( 3, 4). Yes Man kann auch selbst festlegen, welche Operatoren Infix/Postfix sein sollen... Prolog Teil 2: Arithmetik (V. 1.0) 2 3 c G. Grieser

Zahlentypen 2 Typen von Zahlen: Integer und Floats Built-In-Prädikate: number integer, float round, truncate float fractional part, float integer part succ random Prolog Teil 2: Arithmetik (V. 1.0) 2 4 c G. Grieser

Operatoren Operatoren können alternative Schreibweisen für Terme einführen Wichtiges Anwendungsgebiet sind arithmetische Operatoren Beispiele X * Y repräsentiert Prolog -Term *(X,Y) N is M + 1 repräsentiert is(n, +(M,1)) Beide Schreibweisen sind identisch Im Beispiel werden Funktoren */2 und +/2 zu Operatoren (Infix-Operatoren) Prolog Teil 2: Arithmetik (V. 1.0) 2 5 c G. Grieser

Operatoren Bindungsstärke der Operatoren Einige Operatoren binden stärker als andere In der Mathematik z.b. bindet * stärker als +. Wichtig: Präzedenz (Bindungsstärke eines Operators) Präzedenz wird definiert über Zahlenwerte (von 0 bis 1200) Je niedriger Präzedenz, desto stärker bindet der Operator Beispiel: * hat Präzedenz 400, + hat Präzedenz 500 X * Y + Z repräsentiert als +(*(X,Y),Z) Präzedenz eines Terms ist Präzedenz des Hauptoperators. Atome, Zahlen, Variablen, Strukturen und Ausdrücke in Klammern haben Präzedenz 0. Prolog Teil 2: Arithmetik (V. 1.0) 2 6 c G. Grieser

Typen von Operatoren Infix-Operatoren, z.b. + in Prolog Präfix-Operatoren, z.b. in der Logik Postfix-Operatoren, z.b.! in der Mathematik Präfix-Operatoren und Postfix-Operatoren sind einstellige Operatoren Prolog Teil 2: Arithmetik (V. 1.0) 2 7 c G. Grieser

Assoziativität von Operatoren Assoziativität eines Operators ist zu spezifizieren Beispiel: - ist linksassoziativ, d.h. 25-10 - 3 ist (25-10) - 3 In Prolog repräsentiert mittels den Atomen xf, yf, xfx, xfy, yfx, yfy, fy und fx. f bezieht sich auf die Position des Operators x und y geben Hinweis auf Position der Argumente x bedeutet: Operand mit kleinerer Präzedenz als der des Operators y bedeutet: Operand mit Präzedenz kleiner oder gleich der des Operators Beispiel: - hat Assoziativität yfx Prolog Teil 2: Arithmetik (V. 1.0) 2 8 c G. Grieser

Beispiele für Assoziativitätsschemata yfx: Infix, linksassoziativ Beispiele: +, -, * xfx: Infix, nicht assoziativ Beispiele: =, is Prolog Teil 2: Arithmetik (V. 1.0) 2 9 c G. Grieser

Definition von Operatoren Definition neuer Operatoren mittels op/3 Prädikat Definition wird wirksam gemacht, wenn als Anfrage gestellt?- op(400, xfx, ist groesser als). Yes Mittels neuer Definition kann Anfrage auch so gestellt werden elefant ist_groesser_als hund. Yes Beispiel Flugdaten ib4567 :: fra/10:55 - madrid/13:20 ::(ib4567,-(/(fra,:(9,30)),/(madrid,:(11,15)))) Prolog-Prädikat zum Auslesen vorhandener Operatoren: current op Prolog Teil 2: Arithmetik (V. 1.0) 2 10 c G. Grieser