高中信息技术 浙教版选修五程序实例

上传人:思*** 文档编号:118843105 上传时间:2019-12-27 格式:PPTX 页数:15 大小:603.53KB
返回 下载 相关 举报
高中信息技术 浙教版选修五程序实例_第1页
第1页 / 共15页
高中信息技术 浙教版选修五程序实例_第2页
第2页 / 共15页
高中信息技术 浙教版选修五程序实例_第3页
第3页 / 共15页
高中信息技术 浙教版选修五程序实例_第4页
第4页 / 共15页
高中信息技术 浙教版选修五程序实例_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《高中信息技术 浙教版选修五程序实例》由会员分享,可在线阅读,更多相关《高中信息技术 浙教版选修五程序实例(15页珍藏版)》请在金锄头文库上搜索。

1、Prolog程序实例 在正式介绍Prolog之前,先以最常见的家庭关系为例,阐述如何用 Prolog语言来描述这个问题。 家庭关系对大家来说是非常熟悉的,但是一般的程序设计语言表达 起来就不太方便了。用Prolog语言能较清楚地对家庭关系进行描述。以 小明同学的家庭关系为例,小明家里有五口人,父亲(小王)、母亲 (小张)、祖父(老王)和祖母(老李)。他们家的家庭关系可以用下 图表示。 1 初识Prolog程序 由小明的家庭关系图所示,很容易看出小明家庭中各成员之间的关 系。下面给出用Prolog语言表示的家庭关系程序,目的是使同学们对 Prolog程序有个初步的总体的认识。 表示家庭关系的Pr

2、olog程序如下: father(xiaowang,xiaoming). /*小王是小明的父亲*/ father(laowang,xiaowang). /*老王是小王的父亲*/ husband(xiaowang,xiaozhang). /*小王是小张的丈夫*/ husband(laowang,laoli). /*老王是老李的丈夫*/ mother(X,Z):-father(Y,Z),husband(Y,X). /*如果Y是Z的父亲、 并且Y是X的丈夫,则X是Z的母亲*/ grandfather(X,Z):-father(Y,Z),father(X,Y). /*如果Y是Z的父 亲并且X是Y的父亲

3、,则X是Z的祖父*/ grandmother(X,Z):-grandfather(Y,Z),husband(Y,X). /*如果Y 是Z的祖父,并且Y是X的丈夫,则X是Z的祖母*/ ?-mother(Who1,xiaoming). /*谁是小明的母亲?*/ ?-grandfather(Who2,xiaoming) /*谁是小明的祖父?*/ ?-grandmother(Who3,xiaoming). /*谁是小明的祖母?*/ 运行这个程序,计算机便能够回答我们提出的有关小明家庭关系的 问题。例如问,小明的母亲是谁?小明的祖母是谁?等等。虽然上面的 语句中没有直接说明,但计算机就会根据规则、推理找

4、到答案,小明的 母亲是小张,小明的祖母是老李,同学们一定会感到自常惊讶,井且非 常想知道其中的奥秘。接下来,就让我们大家走进Prolog语言的殿堂, 感受Prolog语言的魅力。 2 Prolog的基本语句 观察上面的程序,不难发现,程序共有三部分组成。先来研究第一 部分的内容。 father(xiaowang,xiaoming). father(laowang,xiaowang). husband(xiaowang,xiaozhang). husband(laowang,laoli). 这一部分内容在上一章的谓词表示部分曾学习过在这里,我们把这 服分内容中的各项叫做事实,这部分内容共有4条事

5、实。 1.事实 事实是对某一事物或概念的陈述,一般用来表示对象的性质、状态 或对象之间的关系。 事实一般形式为:(参数1,参数2,). 例:color(apple,red). /*苹果的颜色是红的*/ color(tomato,red). /*西红柿的颜色是红的*/ animal(fowl). /*飞禽是动物*/ fruit(X). /*X是水果*/ vegetable(What). /*What是蔬菜*/ 其中的参数可以是常量,也可以是变量。常量是在程序的执行过程 中其值不能改变的量,一般用小写英文字母数字、下划线等组成的字符 串来表示。如,apple,tomato,red,my_book等

6、。变量是指在程序运 行过程中其值可以改变的量,一般用大写字母开头,使用字母、数字、 下划线等组成的字符串来表示。如,X,What,Who2等。 在描述事实时,要注意: (1)在Prolog中谓词名是以小写英文字母、数字、下划线等组成 的字符串;如father,color3均为合法的。而像Desk,pen$等是非法 的。 (2)参数之间用“,”号隔开,如color(apple,red). (3)在Prolog中用句点“.”表示一条事实陈述语句的结束。如 father(xiaowang,xiaoming). 2.规则 观察描述小明家庭关系的程序,在四条事实的下面有这样一些语句 mother(X,Z

7、):-father(Y,Z),husband(Y,X). grandfather(X,Z):-father(Y,Z),father(X,Y). grandmother(X,Z):-grandfather(Y,Z),husband(Y,X). 其中“:-”表示“如果”,“:-”前后各项便是我们上面所述的事 实。上面的语句用自然语言来表述如下: 如果Y是Z的父亲,并且Y是X的丈夫,那么X是乙的母亲。 如果Y是Z的父亲,并且X是Y的父亲,那么X是Z的祖父。 如果Y是Z的祖父,并且Y是X的丈夫,那么X是Z的祖母。 我们称此类语句为规则。 规则是知识的一种类型,用于表示对象之间的因果关系、蕴含关系 成对

8、应关系。 一个规则由头和体两部分组成,头是“:-”符号的左部,体是“:- ”符号的右部,头和体由符号“:-”相连。“:-”的意思是“如果”, “,”表示“并且”。 规则的一般形式为:(参数):-(参数),(参数) 一条规则的意义可以解释为:当体部(前提部分)的各个条件都满 足时,则头部(结论)成立。 例:likes_to_eat(mary,X):-fruit(X),color(X,red). /*如果X是 水果,并且是红色的,则玛丽喜欢吃X*/ friend(X,tom):-likes(X,sports). /*如果X喜欢运动,则X是汤姆 的朋友*/ 在描述规则时要注意: (1)在Prolog

9、语言中,如果要说明一个事实依赖于另一个或另一事 实时,就可以使用规则。 (2)若规则体内有两个或两个以上事实,且事实之间是“与”的关 系,则事实之间用“,”号隔开,例如:celor(X,red),fruit(X).若规则 体内事实之间的分隔符是“;”,则表示事实之间为“或”的关系 (3)每条规则后面也要附上个圆点“.”,作为结束标志。 3.询问 继续观察小明的家庭关系程序,注意下面的内容: ?-mother(Who1,xiaoming). ?-grandfather(Who2,xiaoming). ?-grandmother(Who3,xiaoming). 其中,“?-”表示询问,是用来表示用户所提出的问题,这三条语 句可用自然语言表示如下: 谁是小明的母亲? 谁是小明的祖父? 谁是小明的祖母? 询问(question)是询问某种关系是否成立的疑问句,是程序运行的 目标。 询问的一般形式为:?-(参数). 例:?-student(xiaoming). /*小明是学生吗?*/ ?-like(mary,music). /*玛丽喜欢音乐吗?*/ ?-friend(john,X). /*约翰是X的朋友吗?*/ THE END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号