? – bar(erjan,kitap(X,avtor))).
Егер сұрақ берігендер қорымен үйлесімді келсе, онда сәйкес жауап беріледі. Ішкі
аргументтері бар құрама құрылым үшін аргументтердің сипатталуы ерекше. Мысалы,
жоғарғы сұраққа үйлесімді программа:
Domains
Bar=bar(symbol,kitap)
Kitap=kitap(symbol,avtor)
Avtor=avtor(symbol)
Predicates
Bar1(symbol,kitap).
Clauses
Bar1(erjan,kitap(botakoz,avtor(sabit_mukanov))).
Goal
Bar1(X,Y), write(X,Y),nl.
Мысалдар:
Мысал 1. Барлық үздіктерді анықтайтын “Сессия” құрылымы.
DOMAINS
X=symbol
Y=integer
PREDICATES
muj(X)
jen(X)
fiz(X,Y)
xim(X,Y)
mat(X,Y)
otl(X)
otl_muj(X)
otl_jen(X)
CLAUSES
muj(misha).
muj(casha).
muj(dima).
jen(ira).
jen(masha).
jen(lena).
fiz(lena,5).
fiz(ira,5).
fiz(masha,4).
xim(lena,5).
xim(ira,5).
xim(masha,4).
mat(lena,5).
mat(ira,5).
mat(masha,5).
otl(X):-fiz(X,5),xim(X,5),mat(X,5).
otl_muj(X):-muj(X),otl(X).
otl_jen(X):-jen(X),otl(X).
GOAL
clearwindow,otl_jen(X),write(“отличница: “,X),nl,fail.
Мысал 2. доллар-тенге және тенге-доллар қатынасын құрыңыз.
DOMAINS
X=real
PREDICATES
dolar_tenge(X,X)
tenge_dolar(X,X)
CLAUSES
dolar_tenge(D,T):-T=D*154,write(T).
tenge_dolar(T,D):-D=T/154,write(D).
GOAL
clearwindow, tenge_dolar(300,D), nl, dolar_tenge(2,T)
Мысал 3. Завод құрылымын құрыңыз. бригадир-жұмысшы, цех қатынасын анықтаңыз.
DOMAINS
rb=rab(Fam,Name)
Fam,Name,Br=symbol
PREDICATES
seh(Br,rb)
CLAUSES
seh(br1,rab(ivan,serg)).
seh(br1,rab(sem,serg)).
seh(br1,rab(ivan,dim)).
seh(br2,rab(kim,oleg)).
seh(br2,rab(alma,alia)).
seh(br2,rab(tim,gul)).
seh(br3,rab(myn,aig)).
seh(br3,rab(by,din)).
seh(br4,rab(amir,tol)).
seh(br4,rab(tol,nur)).
seh(br4,rab(ten,ira)).
GOAL
clearwindow,
write("Бригадир№1: "),
seh(br1,Y),nl,write(' ',Y),fail;
nl,write("Бригадир№2: "),
seh(br2,Y),nl,write(' ',Y),fail;
nl,write("цех: "),
seh(X,Y),nl,write(X,' ',Y),fail
Достарыңызбен бөлісу: |