Statyczne i dynamiczne predykaty

Podobne dokumenty
Programowanie w Logice

PROLOG INNE PRZYKŁADY MACIEJ KELM

Programowanie w logice

Oracle PL/SQL. Paweł Rajba.

UWAGA!!! Przed przystąpieniem do zamknięcia roku proszę zrobić kopie bezpieczeństwa

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

L E X. Generator analizatorów leksykalnych

Programowanie w logice Prolog 3

Paradygmaty programowania

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Pliki. Operacje na plikach w Pascalu

Prolog Wejście / wyjście r

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Program, który się uczy.

PODSTAWY SZTUCZNEJ INTELIGENCJI

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Podstawy Programowania 2

Wykład PASCAL - Pliki tekstowe

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Zasady programowania Dokumentacja

Programowanie w Logice Środowisko programowania i dialog z systemem (Lista 0)

Wstęp do programowania. Wykład 1

PROLOG. Prolog. Programowanie, W.F. Clocksin, C.S. Mellish, HELION Prolog, język sztucznej inteligencji, Eugeniusz Gatnar, Katarzyna Stąpor, Wyd.

Programowanie w logice

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Wykład 8: klasy cz. 4

Wybrane działy Informatyki Stosowanej

C++ - [1-3] Debugowanie w Qt Creator

Argumenty wywołania programu, operacje na plikach

Kolejki FIFO (łącza nazwane)

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

PARADYGMATY PROGRAMOWANIA Wykład 4

Dokument opisuje sposób postępowania prowadzący do wysłania deklaracji VAT, PIT lub CIT drogą elektroniczną za pomocą funkcji systemu ADA modułu FK.

Programowanie w językach

Jak utworzyć raport kasowy?

Dlaczego GML? Gdańsk r. Karol Stachura

Pakiety podprogramów Dynamiczny SQL

Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.1 Elementy języka Prolog: fakty i zapytania. Przemysław Kobylański

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Języki programowania deklaratywnego

7. Dynamiczne generowanie grafiki

1 second UPS. Poziom trudności: łatwy. Wersja dokumentacji: 1.3. Aktualizacja: Beckhoff Automation Sp. z o. o.

Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań.

Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka)

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Programowanie deklaratywne

Paweł Rajba

Operacje wejścia/wyjścia (odsłona druga) - pliki

Znaki globalne w Linuxie

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Programowanie obiektowe

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

7. Podstawy zarządzania szablonami

Opis modułu pl.id w programie Komornik SQL-VAT

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Pliki wykład 2. Dorota Pylak

Delphi Laboratorium 3

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Funkcje zawarte w bibliotece < io.h >

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Wykład 4. Tablice. Pliki

Rozdział 4 KLASY, OBIEKTY, METODY

Funkcje zawarte w bibliotece < io.h >

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Administracja i programowanie pod Microsoft SQL Server 2000

Oracle PL/SQL. Paweł Rajba.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wizualizacja pogody dla windsurferów

XML i nowoczesne technologie zarządzania treścią 2007/08

Pliki. Informacje ogólne. Obsługa plików w języku C

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Utworzenie pliku. Dowiesz się:

Dana jest baza: kobieta(katarzyna). kobieta(anna). kobieta(maria). kobieta(marianna). kobieta(marta). Zdefiniujemy predykat kobiety/0 następująco:

Instalacja i konfiguracja SAS PC Files Server

Pliki. Informacje ogólne. Obsługa plików w języku C

Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Spis treści. Rozdział 2. Graficzna oprawa witryny...z Stosowanie motywu...s...s.. 19

1 Przygotował: mgr inż. Maciej Lasota

5.2. Pierwsze kroki z bazami danych

Rozdział 1. Integracja systemu "KasNet" z pinpadami firmy "First Data Polska S.A."

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

1 Moduł Modbus ASCII/RTU 3

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

C++. Æwiczenia zaawansowane

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Transkrypt:

Statyczne i dynamiczne predykaty Dynamiczne dowodzą lub odwołują pewne reguły, Statyczne nie potrafią tego co dynamiczne, ponieważ ich punkty zostały zebrane w całość, która działa szybciej, ale nie jest modyfikowana w czasie wykonywania.

Statyczne i dynamiczne predykaty Obecnie wszystkie predykaty są statyczne chyba, że użytkownik uczyni je dynamicznymi. W pewnych Prologach wszystkie predykaty są dynamiczne. W innych predykaty są dynamiczne, jeżeli użytkownik załaduje klauzule consult lub reconsult lub statyczne przy załadowaniu ich podczas kompilacji.

Statyczne i dynamiczne predykaty Tworzenie dynamicznego predykatu Utworzenie go za pomocą funkcji assert assert(+term) Wprowadzenie przez dodanie punktów do pliku programu, ale poprzedzając je deklaracją: :- dynamic(jakis/2).

Statyczne i dynamiczne predykaty Dynamiczne predykaty mają także inny rezultat. Informują one system Prolog by 'nie martwił się', jeżeli spróbujemy zapytać o predykat, który jeszcze nie istnieje. W wielu przypadkach, zapytanie wygląda następująco:?- f(a,b). Oczywiście zapytanie wykaże błąd, jeżeli nie ma żadnych punktów f/2 w bazie danych. Jednak gdy zadeklarujemy :- dynamic(f/2). Wtedy zapytanie nie zwróci komunikatu błędu.

Statyczne i dynamiczne predykaty Funkcja abolish, służy do usunięcia predykatu z bazy danych, także dynamicznej deklaracji, jeśli taka istnieje. Do usunięcia wszystkich punktów bez wyczyszczenia ich z dynamicznych deklaracji, powinniśmy wywołać polecenia podobne do poniższych: wyczysc_predykat :- retract(f(_,_)), fail. wyczysc_predykat :- retract (f(_,_) :- _), fail. wyczysc_predykat. Oznacza to: odwołanie wszystkich reguł odpowiadających za f(_,_), a następnie odwołanie wszystkich zaczynających się od f(_,_) i zakończenie sukcesem bez podejmowania dalszych akcji.

Predykat consult i reconsult Zadaniem predykatu consult i reconsult jest czytanie (kompilowanie) kodu źródłowego przy użyciu funkcji read/1 oraz dodanie każdego termu do bazy danych.

Predykat consult i reconsult Istnieje jednak pewien wyjątek. Wszystkie termy zaczynające się od :- są wykonywane jako zapytania do momentu napotkania consult/reconsult. Takie terminy nazywamy EMBEDDED QUERIES (wbudowanie zapytania).

Operacje otwarcia i zamknięcia (see, tell, seen, told) służą wyłącznie do przetwarzania plików tekstowych (sekwencyjnych). Podczas przetwarzania plików sekwencyjnych każda operacja (zapis/odczyt) powoduje automatyczne przejście do następnej pozycji w pliku.

Ogólny schemat przetwarzania pliku Otwarcie pliku Odczyt/zapis Odczyt/zapis }ciąg operacji przetwarzania Zamknięcie pliku

W języku Prolog operacje na plikach opierają się na koncepcji strumienia Program prologowy czyta dane ze strumienia wejściowego i zapisuje dane do strumienia wyjściowego Strumieniem wejściowym i/lub wyjściowym może być dowolny plik o dostępie sekwencyjnym (tekstowy) Terminal użytkownika jest również traktowany jak strumień W trakcie wykonywania programu w danej chwili realizowana może być operacja odczytu i zapisu odpowiednio z/do jednego strumienia wejściowego i jednego strumienia wyjściowego Domyślnym strumieniem wejściowym i wyjściowym jest terminal użytkownika

Użytkownik Aktualny strumień wejściowy Terminal użytkownika Aktualny strumień wyjściowy Plik 1 Plik 2... Program Plik 3 Plik 4...

Otwieranie plików Operacja zmiany aktualnego strumienia wejściowego see(<nazwa_pliku>) Jeżeli plik jest już otwarty to nadal pozostanie w trybie odczytu (nie będzie błędu!)

Otwieranie plików Operacja zmiany aktualnego strumienia wyjściowego tell(<nazwa_pliku>) Jeżeli plik jest już otwarty to nadal pozostanie w trybie zapisu (nie będzie błędu!)

Zamykanie plików Operacja zamknięcia aktualnego strumienia wejściowego seen Predykat ten jest zawsze spełniony. Po wykonaniu strumieniem wejściowym zostaje terminal.

Zamykanie plików Operacja zamknięcia aktualnego strumienia wyjściowego told Predykat ten jest zawsze spełniony. Po wykonaniu strumieniem wyjściowym zostaje terminal.