Dateien und Module. Heute: Ein- und Ausgabe. Module. Programmierkurs Prolog p.1

Ähnliche Dokumente
Um eine Datei in Prolog zu lesen oder zu schreiben bietet die Prolog-Bibliothek viele Prädikaten. Mittels der Prädikat

Ein- und Ausgabe. Buchstaben als Zahlen: Kodierung. Kodierungsstandards. ASCII-Codetabelle (Zeichensatz)

Terme. Programmierkurs Prolog p.1

FEBE Die Frontend-Backend-Lösung für Excel

Rekursive Listenverarbeitung

GI Vektoren

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

13.2) Implementieren Sie nun das Prädikat differenz/3 indem nur Elemente vorkommen die exklusiv in L1 vorkommen. L1=[1,2,3,4],L2=[3,4,5,6],L3=[1,2]

Teil 4: Rekursion und Listen

LISTEN. Programmierkurs Prolog p.1

2 Eine einfache Programmiersprache

Die Benutzung von Stata

Funktionen in JavaScript

Teil 1: Ein motivierendes Beispiel

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

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Programmieren in Python

Russische Übersetzungen (Exceltabelle) in EPLAN 5.70 einlesen...

Künstliche Intelligenz Einführung in Prolog

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Funktionen in JavaScript

Übung zu Kognitive Systeme I

Programmierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe

Geräteverwaltung: Einführung

Moodle Benutzerverwaltung Handbuch

10 Block 10: Verwendung von Modulen in Perl

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

PROLOG. Lernende Systeme WS 10/11 Crashkurs. Martin Sticht Stephan Weller

Funktionale Programmierung

Ein- und Ausgabe (I/O)

IMPORT VON VORGÄNGEN ÜBER DAS E-COMMERCE-MODUL

Grundlagen. Kapitel 1

Künstliche Intelligenz Unifikation, Backtracking, Rekursion und Listen in Prolog

Thema P8 Version: 1.9 Installation Sprachumschaltung

Objektorientiertes Programmieren für Ingenieure

Erstellen/Aktualisieren von HeBIS-Handbuchkapiteln

Neue Dateien zu einem bestehenden Katalog hinzufügen

Manipulation der Datenbasis und Aufsammeln von Lösungen

Tokenizer. Motivation. Ein einfacher Tokenizer. Zweck und Funktion eines Tokenizers. These are words. Eingabe = [these,are,words,'.'].

Filialpreisverwaltung

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

Programmieren in C/C++ und MATLAB

Python für Linguisten

5 Logische Programmierung

E-/A-Funktionalität nicht Teil der Programmiersprache

ZM(B) Erinnerungsschreiben

Grundlagen der Fortran Sprache

Einführung in die Computerlinguistik

Kapitel. Platzhalter. Was sind Platzhalter?

Handout für die Anzeige verschiedener persönlicher Adressbücher

R-Fehlermeldungsleitfaden

Ergänzung zur Bedienungsanleitung: Wahl der Betriebsart mittels IO-Link-Schnittstelle. SAxxxx / / 2016

Kontrolle. bersicht. Ziel. Alle Lšsungen fÿr ein Ziel erhalten. Negation Disjunktion SuchbŠume stutzen: Cut

easyident Configurator 1.0

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

1 Vom Problem zum Programm

Übungen zu Kognitive Systeme I

Bentley Technical Support. SDNF Import + Export. speedikon Industriebau

Hilfe zum PDF Formular Editor

Programmieren in Haskell Einstieg in Haskell

Validierung. pk12s-19,

JAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme

Rekursion. rekursive Prädikate. deklarative vs. prozedurale Bedeutung von Prädikaten. Programmierkurs Prolog p.1

Programmieren in Haskell

Lösungen zum Aufgabenblatt 9 Symbolisches Programmieren

Die IFC Schnittstelle in EliteCAD V11 AR ist ein objektorientierter Datentransfer und kann parametrisierte 3D-Modelldaten austauschen.

1.Vorbereitung: Berechtigungen richtig definieren...3. Berechtigung für den IST-Daten-Export...3 Berechtigungen für den Plandaten-Export...

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Vornehmen von Änderungen mithilfe der Display-Einstellung

Lösungen zum Aufgabenblatt 4 Computerlinguistische Anwendungen

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Java Fehlerbehandlung

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014

Matten 1. Programmbeschreibung. Matten MATTENSCHNEIDESKIZZE VERSION 2

Programmierkurs II. Einführung in die deklarative Programmiersprache HASKELL

Dokumentation. Elementtabellen vs. Referenztabellen prüfen

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen

Einführung in PROLOG VI

So geht s Schritt-für-Schritt-Anleitung

Programmierkurs Prolog, SS 1998

Bash-Skripting Linux-Kurs der Unix-AG

WBelectronics. Infinity USB Phoenix - Benutzerhandbuch

Installationshandbuch

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Artikel Schnittstelle über CSV

3a Open BIM Workflow - Import und Weiterbearbeitung

ESB - Elektronischer Service Bericht

Bash-Skripting Linux-Kurs der Unix-AG

Sequenzer als Service: Konfiguration Service-Modus für Workstations einrichten und Sequenzen konfigurieren

Stream EDitor SED und Reguläre Ausdrücke

Einführung in die C-Programmierung

Arbeiten mit IrfanView

Übungsstunde 10. Einführung in die Programmierung

Unterschiede in Dateien mit diff

6.3 - Verwaltung der Bewerbungen von Studenten Outgoing

Transkript:

Dateien und Module Heute: Ein- und Ausgabe Module Programmierkurs Prolog p.1

Ausgabe auf den Bildschirm?- X= Hagrid, write( Hallo ), write(x). Hallo Hagrid X = Hagrid?- write(ron),nl,write(hermione). ron hermione?- write(ron),tab(5),write(hermione). ron hermione Programmierkurs Prolog p.2

Ausgabe in Dateien Schritt 1: Zur Datei wird ein Stream geöffnet. Schritt 2: Schreiben auf diesen Stream. Schritt 3: Stream wird wieder geschlossen. Programmierkurs Prolog p.3

Ausgabe in Dateien: Schritt 1 open(+dateiname, +Modus, -StreamID) Modus ist read, write, oder append.?- open( the monster book of monsters, write, Stream) Stream = $stream (191536) Programmierkurs Prolog p.4

Ausgabe in Dateien: Schritt 2 Eingebaute Prädikate: write/2, tab/2, nl/1. Machen das Gleiche wie write/1, tab/1, nl/0, wobei das erste Argument jeweils der Identifikator des Streams ist, auf den geschrieben werden soll.?- write( $stream (191536), flobberworms ). 3?- tab( $stream (191536), 5), write( $stream (191536), blast-ended skrewts ). 4?- nl( $stream (191536)), write( $stream (191536), unicorns). Programmierkurs Prolog p.5

Ausgabe in Dateien: Schritt 3 close(+streamid)?- close( $stream (191536)).?- write( $stream (191536), hippogriffs). ERROR: stream $stream (191536) does not exist Die Datei the monster books of monsters : flobberworms unicorns blast-ended skrewts Programmierkurs Prolog p.6

Ausgabe in Dateien: alles?- open( the monster book of monsters, write, Stream) write(stream, blah blah ), close(stream). Programmierkurs Prolog p.7

Eingabe vom Bildschirm lesen (1) read(?term): Fordert den Benutzer auf eine Eingabe zu machen und liest dann einen Prologterm.?- read(t). : hagrid. T = hagrid?- read(t). : giant(hagrid). T = giant(hagrid)?- read(t). : [a,b,c]. T = [a, b, c] Programmierkurs Prolog p.8

Eingabe vom Bildschirm lesen (2) get0(?char): Fordert den Benutzer auf eine Eingabe zu machen und liest dann ein einzelnes Zeichen.?- get0(n). : a N = 97 12?- get0(n1), get0(n2). : ab N1 = 97 N2 = 98 Programmierkurs Prolog p.9

Zeichencode in Atome umwandeln atom chars(-atom, +CharListe) wandelt eine Liste von Zeichencodes (also Zahlen) in das entsprechende Atom um.?- get0(n), atom_chars(atom,[n]). : a N = 97 Atom = a 14?- get0(n1), get0(n2), atom_chars(atom,[n1,n2]). : ab N1 = 97 N2 = 98 Atom = ab Programmierkurs Prolog p.10

Eingabe aus Dateien lesen read(+stream,?term) get0(+stream,?char) Programmierkurs Prolog p.11

Programmteile aus Dateien laden Regeln ohne Kopf werden Prolog einmal beim Laden der Datei ausgeführt. Datei einprogramm.pl: :- [mehrpraedikate.pl] Beim Laden von einprogramm.pl wird automatisch auch mehrpraedikate.pl geladen. Problem: Wenn einprogramm.pl und mehrpraedikate.pl Prädikate mit dem gleichen Namen (und der gleichen Arität) definieren, dann gibt es einen Konflikt. Module Programmierkurs Prolog p.12

Module Module unterstützen Programmieren in Teams und generell größere Projekte, indem sie lokale Prädikate verstecken und Schnittstellen klar definieren. Programmierkurs Prolog p.13

Module deklarieren Datei reverse.pl :- module(reverse, [reverse/2]). reverse(liste,r) :- reverse_acc(liste,[],r). reverse_acc([],acc,acc). reverse_acc([h T],Acc,R) :- reverse_acc(t,[h Acc],R). Ein Modul mit dem Namen reverse wird angelegt. Das Modul enthält die Definitionen für die Prädikate reverse/2 und reverse acc/3. Nur das Prädikat reverse/2 ist öffentlich, d.h. kann von Prädikaten außerhalb des Moduls verwendet werden. Programmierkurs Prolog p.14

Modul-Prädikate importieren :- use module(+datei) Importiert alle öffentlichen Prädikate aus Datei Datei. :- use module(+datei, +Liste zu importierender Prädikate) Importiert nur die Prädikate, die angegeben sind. Das müssen alles öffentliche Prädikate sein. Programmierkurs Prolog p.15

Aufgaben Ändere das Programm pptree.pl so, dass es den Parsebaum in die Datei pptree.out schreibt, statt ihn auf dem Bildschirm auszugeben. Mache ein Modul aus pptree. Programmierkurs Prolog p.16

Zusammenfassung Heute haben wir gesehen: wie Ausgaben in eine Datei gemacht werden können, wie Terme und einzelne Zeichen eingelesen werden können, was Module sind und wie sie benutzt werden. Wenn ihr die Definition/Funktionsweise von eingebauten Prädikaten vergessen habt; wenn ihr wissen wollt, was es sonst noch für eingebaute Prädikate gibt: SWI Prolog Dokumentation: http://www.swi-prolog.org Sicstus Prolog Dokumentation: http://www.sics.se/sicstus/ Programmierkurs Prolog p.17