
Project: CLOUD FileName: CLOUD3.PRO Purpose: No description Written by: Visual Prolog Comments:
******************************************************************************/ include \domains
Cloud_x,Type,Shape,Color,What = symbol Hight = integer facts
% 云,有云的名字,高度,形状,颜色四个属性; cloud(Cloud_x,Hight,Shape,Color)predicates
nondeterm is(Cloud_x,Type) clauses
%此处为某个已知的云,有云的名字,高度,形状,颜色四个属性; cloud(cloud_lily,7000,big_cone,blackgray).

%判断某云是否为~~云;如is(Cloud_x,cengyun)判断某云是否为层云
is(Cloud_x,cengyun):-cloud(Cloud_x,Hight,Shape,Color),Hight
is(Cloud_x,cengjiyun):-cloud(Cloud_x,Hight,Shape,Color),Hight
is(Cloud_x,gaocengyun):-cloud(Cloud_x,Hight,Shape,Color),Hight>=6000,Hight
is(Cloud_x,gaojiyun):-cloud(Cloud_x,Hight,Shape,Color),Hight>=6000,Hight
is(Cloud_x,luancengyun):-cloud(Cloud_x,Hight,Shape,Color),Hight>=6000,Hight

is(Cloud_x,juanyun):-cloud(Cloud_x,Hight,Shape,Color),Hight>20000,Shape=\=\
is(Cloud_x,juancengyun):-cloud(Cloud_x,Hight,Shape,Color),Hight>20000,Shape=\ne\
is(Cloud_x,juanjiyun):-cloud(Cloud_x,Hight,Shape,Color),Hight>20000,Shape=\olor=\
is(Cloud_x,jiyun):-cloud(Cloud_x,_,Shape,Color),Shape=\is(Cloud_x,jiyuyun):-cloud(Cloud_x,_,big_cone,blackgray). goal
write(\the name,hight(0~200000),the shape(big_cone,or sheets,or hair),and the color(blackgray or white) of your cloud\ write(\ readln(Cloud_x),
write(\ write(\ readint(Hight),

write(\ write(\ readln(Shape),
write(\ write(\ readln(Color),
write(\
assertz(cloud(Cloud_x,Hight,Shape,Color)),
is(Cloud_x,What).
4、运行示例:

其中,云的名字,如 lily 高度如7000 形状如 big_cone 形状如 blackgray
根据提示每次输入一个属性 然后得到运行结果
5、搜索规则:
PROLOG自动搜索模式
为满足一目标,从知识库顶起以遍历方法逐一匹配。如与一事实匹配成功,则将代换表作用于右邻;如与一规则左部匹配成功,则将代换表作用于规则右部——化为一系列子目标。
为满足一个子目标prolog实验报告 周俊雯prolog实验报告 周俊雯,从知识库顶起逐一匹配。如匹配失败,则返回代换表,并继续试图满足其右邻子目标;如匹配失败(指针到了库底仍不顺利),则设法重新满足其左邻子目标——回溯。回溯时变量脱解。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-120400-1.html
来抱中国大腿就对了