-
Pomoc w zadaniu z Prologa
Mam zapisane w notatniku z rozszerzeniem .pl:
isnumber(zero).
isnumber(s(X)) :- isnumber(X).
isequal(X,X) :- isnumber(X).
isequal(s(X),s(Y)) :- isequal(X,Y).
lessthanequal(zero,X) :- isnumber(X).
lessthanequal(s(X),s(Y)) :- lessthanequal(X,Y).
add1(zero,X,X) :- isnumber(X).
add1(s(X),Y,s(Z)) :- add1(X,Y,Z).
odd(s(zero)).
odd(s(s(s(X)))) :- odd(s(X)).
even(zero).
even(s(s(X))) :- even(X).
times(zero,X,zero) :- isnumber(X).
times(s(X),Y,Z) :- times(X,Y,Q), add1(Y,Q,Z).
quotient(X,X,s(zero)) :- isnumber(s(zero)).
quotient(X,Y,s(Z)) :- quotient(Q,Y,Z), add1(Y,Q,X).
remainder(X,X,zero).
remainder(X,Y,R) :- add1(X,Y,Q), remainder(Q,Y,R).
fact(zero,s(zero)) :- isnumber(s(zero)).
fact(N,X) :- fact(A,B), add1(A,s(zero),N), times(B,N,X).
fib(0, 0).
fib(1, 1).
fib(N, X) :- fib(A, C), fib(B, D), A is N - 1, B is N - 2, X is C + D.
shownum(zero,0).
shownum(X,N) :- shownum(A,B), add1(A,s(zero),X), N is B + 1.
Muszę wykonać do tego takie polecenia w Prologu (kompletnie nie wiem jak):
1) sprawdzić wcześniej zdefiniowane predykaty te (np times (X , Y , Z) ) za pomocą predykatu
shownum (X , Y) .
2) Pomyśl , jak zdefiniować predykaty quotient( X , Y , K ) i remainder( X , Y ) dla Y = zero!
Proszę o wypisanie co trzeba wpisywać w Prolog po kolei.
Bardzo proszę o pomoc
Tagi
Zasady Postowania
- Nie możesz zakładać nowych tematów
- Nie możesz pisać wiadomości
- Nie możesz dodawać załączników
- Nie możesz edytować swoich postów
-
Forum Rules