预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共31页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学Prolog是一种逻辑程序设计语言,基于一阶谓词逻辑,是典型的叙述型语言(DeclarationLanguage)。Prolog语言的特点(tèdiǎn):(1)建立在一阶谓词逻辑和归结原理基础上,有自动推理功能。(2)用Prolog设计应用程序时,仅需指明领域中各对象间的关系和决策规则,而应用这些知识的推理由Prolog完成。(3)Prolog应用程序,由数据库和规则库组成。(4)Prolog程序设计要做三件事,即说明事实、定义规则、提出问题。Prolog有三种形式(xíngshì)的语句:证明(zhèngmíng)公式:((M(X)R(X))M("张三"))R("张三")恒真用Prolog证明(zhèngmíng)三段论:4.2家庭关系(guānxì)程序示例完整(wánzhěng)的Prolog程序:5.谁是jim的祖父母?以上程序说明的几个(jǐɡè)重要观点:Predicatesparent(symbol)clausesparent(pam,bob).parent(tom,bob).parent(tom,liz).parent(bob,ann).parent(bob,pat).parent(pat,jim).在Prolog中定义(dìngyì)offspring(后代)关系predicatesparent(symbol,symbol)sister(symbol,symbol)female(symbol)male(symbol)different(symbol,symbol)clausesparent(pam,bob).parent(tom,bob).parent(tom,liz).parent(bob,ann).parent(bob,pat).parent(pat,jim).male(tom).mother规则(guīzé):4.3TurboProlog程序结构/*程序(chéngxù)名:Wordsmith文件名:prog0501.pro*//*目标:查找并打印一单词的同义词或反义词。*/domainsword,syn,ant=symbolpredicatessynonym(word,syn)antonym(word,ant)goalsynonym(brave,X),antonym(brave,Y),write("brave的同义词是:",X),nl,write("brave的反义词是:",Y),nl.clausessynonym(brave,daring).synonym(honest,truthful).synonym(modern,new).synonym(rare,uncommon).antonym(brave,cowardly).antonym(honest,dishonest).antonym(mordern,ancient).antonym(rare,common)./*程序名:Thesaurus文件名:prog0502.pro*//*目标:建立一个打印单词(dāncí)的同义词和反义词的小词典。*/domainsword,syn1,syn2,syn3,ant1,ant2,ant3=symbolpredicatessynonym(word,syn1,syn2,syn3)antonym(word,ant1,ant2,ant3)goalsynonym(brave,S1,S2,S3),antonym(brave,A1,A2,A3),write("brave的同义词是:"),nl,write(S1,",",S2,",",S3,","),write("brave的反义词是:"),nl,write(A1,",",A2,",",A3,"."),nl./*程序名:Presidents文件名:prog0503.pro*//*目标:使用混合对象类型(lèixíng)举例。*/domainsname,party,state=symbolbirth_year,year_in,year_out=integerpredicatespresident(name,party,state,birth_year,year_in,year_out)goalpresident(X,democrat,S,Yb,Yi,Yo),nl,write(X,"-democrat"),nl,write("State-",S),nl,write("Birth_year-",Yb),nl,write(