PROLOG语言求 过河问题

cxj1984123 2008-05-20 10:44:26
程序运行时出现下面错误:
406 '>' or',' expected 这个错该怎么修改,急需!谢谢大家!

domains
x=real
y=real
a=real
b=real
m1=real
m2=real
m3=real
m4=real
m=real
n=real
reallist=real*
boat=real
boat1=real
f=real
Predicates
row(real,real)
change(real,real,real,real,real,real,real,real,real)
across(reallist,real,real,real)
Clauses
row(2,0).
row(0,2).
row(1,0).
row(1,1).
row(0,1).
change(x,y,m1,m2,m3,m4,a,b,0):-m1=a-x,m2=b-y,m3=3-a+x,m4=3-b+y.
change(x,y,m1,m2,m3,m4,a,b,1):-m1=a+x,m2=b+y,m3=3-a-x,m4=3-b-y.
across([0,0],1,m,n).
across([a,b],boat,m,n):-row(x,y),(x <> m;y <> n)
change(x,y,m1,m2,m3,m4,a,b,boat),
(m1=0;m1>=m2),(m3=0;m3>=m4),m2>=0,m4>=0,f=boat+1,
write('('),write(x),write('--'),write(y),write(')'),boat1=f mod 2,
across([m1,m2],boat1,x,y).

goal
across([3,3],0,0,0).
...全文
207 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
江城老温 2008-05-30
  • 打赏
  • 举报
回复
帮顶!
blooney 2008-05-27
  • 打赏
  • 举报
回复
错误在哪行啊?
现在没有编译器,跑不了
华北电力大学 实 验 报 告 " " 实验名称 PROLOG语言编程练习及图搜索问题解 课程名称 人工智能及应用 专业班级: 学生姓名: 学 号: 成 绩: 指导教师: 实验日期:2014年5月 (实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm, 右2.1cm;字体:宋体小四号,1.25倍行距。) 验证性、综合性实验报告应含的主要内容: 一、实验目的及要 二、所用仪器、设备 三、实验原理 四、实验方法与步骤 五、实验结果与数据处理 六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和 讨论,对实验的进一步想法或改进意见) 七、所附实验输出的结果或数据 设计性实验报告应含的主要内容: 一、设计要 二、选择的方案 三、所用仪器、设备 四、实验方法与步骤 五、实验结果与数据处理 六、结论(依据"设计要") 七、所附实验输出的结果或数据 "一、实验目的及要 " "熟悉PROLOG的运行环境,进行PROLOG的基本编程练习。 " "了解PROLOG语言中常量、变量的表示方法。PROLOG的简单程序结构,掌握分析问题" "、询问解释技巧;进行事实库、规则库的编写,并在此基础上进行简单的询问。 " "具体实验课上相关内容,练习example1到example6的内容。 " "图搜索问题解。 " "任选以下实际应用题目:爱因斯坦的超级问题、字谜问题、汉诺塔问题、八数码问" "题、八皇后问题、农夫过河问题、传教士野人问题等,选两个。 " "要实验报告中包括:程序分析、运行结果、实验收获、难点重点分析等。 " "二、所用仪器、设备 " "PC机和trinc prolog编译软件。 " "三、实验原理 " "PROLOG语言是一种以逻辑推理为基础的逻辑型程序设计语言,是一种陈述性语言而" "不是过程性语言PROLOG语言能够自动实现模式匹配和回溯、具备递归技术,而且" "语法简明,可以简化复杂问题解。 " "1、prolog本身自带推理机,其回溯、递归技术和表处理技术可简化复杂问题解 " "。 " "2、trinic prolog的跟踪、设断点对于调试程序是非常有用的。 " "四、实验方法与步骤 " "说明用实例如何观察并理解回溯机制 " "回溯机制所谓回溯, 就是在程序运行期间, 当某一个子目标不能满足(即谓词匹配 " "失败)时,控制就返回到前一个已经满足的子目标(如果存在的话), " "并撤消其有关变量的约束值, 然后再使其重新满足。成功后, " "再继续满足原子目标。如果失败的子目标前再无子目标, " "则控制就返回到该子目标的上一级目标(即该子目标谓词所在规则的头部)使它重新" "匹配。回溯是PROLOG的一个重要机制。 " "例如:农夫过河问题的move(...),其对应有四个子目标。当某个子目标不成立时 " ",就会回溯到前一个子目标,撤销原约束值,然后重新合一。 " "如何用断点、跟踪以及显示调试prolog程序 " "将鼠标移动至语句之前单击便打入了断点。编译了以后,如果点"Prove"这个按钮 " ",则程序运行到断处。 " "点"Trace on"这个按钮便进入单步运行状态,即跟踪状态。点击"Start " "step"开始单步运行程序。 " "知道了如何单步运行与打断点,很容易就可以对prolog程序进行调试。 " "注:说明实验的操作过程。 " "五、解的问题与程序 " "注:说明所选择实验题目,问题分析过程和程序难点分析等。 " "1.险洞探险问题: " "Treasure-route代码: " "go(Start,Goal):- " "route(Start,Goal,[Start],VisitedL), " "reverse(VisitedL,[],RVisitedL), " "write("One route is:"), " "write(RVisitedL),nl,nl, " "fail. " "go(_,_). " "neighbor(X,Y):- " "gallery(X,Y). " "neighbor(X,Y):- " "gallery(Y,X). " "gallery(entry,fountain). " "gallery(entry,monsters). " "gallery(monsters,goldtreasure). " "gallery(goldtreasure,food). " "gallery(food,fountain). " "gallery(goldtreasure,robbers). " "gallery(goldtreasure,exit). " "gallery(fountain,mermaid). " "

3,422

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧