• Nie Znaleziono Wyników

Wiadomości wstępne: I. Polecenia kompilatora: [nazwa_pliku].

N/A
N/A
Protected

Academic year: 2021

Share "Wiadomości wstępne: I. Polecenia kompilatora: [nazwa_pliku]."

Copied!
3
0
0

Pełen tekst

(1)

przygotował Dariusz Wardowski 1 Stefan, Barbara

Waldemar, Krystyna Czesława, Tadeusz

Karolina Paweł Sylwester

Paradygmaty programowania - Laboratorium 11 (Prolog) Wiadomości wstępne:

I. Polecenia kompilatora:

[nazwa_pliku]. kompilacja pliku [‘nazwa_pliku.rozszerzenie’]. kompilacja pliku

halt. zakończenie programu

help. pomoc

help(słowo) . pomoc na temat polecenia słowo.

help(2). pomoc z rozdziału 2

apropos(słowo). informacja na temat słowo.

listing. zawartość aktualnej bazy danych

listing(fakt). wyświetlenie informacji na temat danego faktu

pwd. wyświetlenie bieżącego katalogu roboczego

ls. wyświetlenie listy plików katalogu bieżącego

cd zmiana katalogu roboczego

emacs. uruchomienie edytora emacs

emacs(‘nazwa.pl’).

II. Trochę składni:

składnia faktu: nazwa_relacji(argument1, argument2, …, argumentn) . składnia reguły: <lewaCzesc> :- <prawaCzesc>.

operatory logiczne: i (,), lub (;), negacja (\+),

Zadanie 1. Utwórz plik o nazwie rodzina.pl i umieść w nim fakty i reguły dotyczące następującego drzewa genealogicznego:

1) Umieść w bazie następujące relacje: rodzic, mezczyzna, kobieta.

Przykład relacji: rodzic(stefan,krystyna).

(2)

przygotował Dariusz Wardowski 2 2) Zapisz reguły matka, ojciec, dziecko, brat, siostra, ciotka, wujek, wnuk, przodek, szwagier,

rodzenstwo.

Przykład reguły:

matka(X,Y) :- rodzic(X,Y), kobieta(X).

3)Zadaj następujące pytania (cele):

a) Sprawdź poprawność faktów, np.:

?- rodzic(stefan,krystyna).

true

?- kobieta(czeslawa).

true

?-

b) sprawdź poprawność reguł, np.:

?- brat(pawel,karolina). (czy Paweł jest bratem Karoliny?) true

?- wnuk(pawel,barbara). (czy Paweł jest wnukiem Barbary?) true

c) zapytania ze zmiennymi, np.:

?- kobieta(X). (jakie kobiety są w rodzinie?) X = barbara;

X = krystyna;

X = karolina;

X = czeslawa;

?- wnuk(pawel,X). (czyim wnukiem jest Paweł?) X = barbara;

X = stefan.

?- brat(pawel,_). (Wykorzystanie zmiennej anonimowej, czy paweł ma rodzeństwo?) true

Zadanie 2. Napisz program z wykorzystaniem rekurencji, dodający dwie liczby naturalne.

Wykorzystać następującą równość:

x+y=(x+(y-1))+1 Przykładowe działanie programu:

?- dodaj(10,2,12).

true

?- dodaj(10,13,X).

X=23

Zadanie 3. Napisz program z wykorzystaniem rekurencji, mnożący dwie liczby naturalne.

Wykorzystać następującą równość:

x*y=(x*(y-1))+y

(3)

przygotował Dariusz Wardowski 3 Zadanie 4. Napisać program realizujący silnię. 

Zadanie 5. Napisać program obliczający liczby Fibonacciego.

Zadanie 6. Napisać następujące fakty i regułę:

ladniejsza(zosia,marysia).

ladniejsza(marysia,ewa).

ladniejsza(zosia,ania).

ladniejsza(ula,zosia).

ladniejsza(X,Y) :- ladniejsza(X,Z), ladniejsza(Z,Y).

Zadać następujący cel:

?- ladniejsza(X,Y).

Poprawić działanie powyższego programu.

Cytaty

Powiązane dokumenty

Napisz program obsługujący zakład naprawy sprzętu gospodarstwa

Iloczyn i iloraz dwóch liczb różnych znaków (jedna dodatnia, druga ujemna) jest liczbą

Musimy umieć zapisać ogólną postać danej liczby na podstawie informacji o podzielności tej liczby.... podanych informacji i wykorzystać ten zapis do rozwiązania

Nasuwa się pytanie - a skąd wiadomo, że dana liczba jest podzielna przez daną liczbę pierwszą. Na szczęście dla wielu liczb pierwszych można to łatwo określić: 2 cyfra

Nasuwa się pytanie - a skąd wiadomo, że dana liczba jest podzielna przez daną liczbę pierwszą. Na szczęście dla wielu liczb pierwszych można to łatwo określić: 2 cyfra

b) Jeśli podano liczbę 1234, to program wypisuje na ekranie „Brawo, to właściwy kod” i w kolejnym wierszu „masz teraz dostęp do tajnych informacji”3. Jeśli nie podano

Napisz program, który pobiera od użytkownika 15 liczb całkowitych i wypisuje je od końca oddzielone *, ale tylko ostatnie

wyświetlać listę prostokątów wraz sumą powierzchni (metoda wyświetl):.. Email: 4j Kowalski Jan