丁浩轩prolog教学实习报告(2)

2019-04-01 17:20

3.3.5 变种问题

我们可以修改程序,看看到底有多少种填色方案。修改程序后代码如下

implement main open core,stdio domains

colors=blue;yellow;red;green. neighbors=nb(colors,colors). map=neighbors*. class predicates

aMap:(map) nondeterm anyFlow.

test:(map) nondeterm anyFlow.% multi anyFlow. %procedure anyFlow. generateColor:(colors) multi(o). clauses

classInfo(\

generateColor(R):- R=blue; R=yellow; R=green;

4

R=red. aMap([]). aMap([X|Xs]):- X=nb(C1,C2), not(C1=C2), aMap(Xs).

class facts n :integer :=0. k :integer :=0. clauses test(L):- n:=0,

generateColor(A), generateColor(B), generateColor(C), generateColor(D), generateColor(E), generateColor(F),

L=[nb(A,B),nb(A,C),nb(A,E),nb(A,F), nb(B,C),nb(B,D),nb(B,E),nb(B,F), nb(C,D),nb(C,F),nb(C,F)], %write(n,\ n:=n+1, aMap(L). % ,! %;L=[]. run():-

console::init(), k:=0, test(L),

5

k:=k+1,

N=string::format(\

stdio::write(\ n:=0, fail. run():-

_=stdio::readline(). end implement main goal

mainExe::run(main::run). 运行截图

3.4 画一棵树 3.4.1 概述

本程序画树的形态是步长4.0,倾角0.1745329,向上画一段,然后画一个分支,再向上画一段,另外一个方向画分支,改变方向,画一段。 3.4.2 实验步骤

1.创建一个GUI Project Lsys 2.再其根目录下创建包 aristid

6

3.在aristid下创建Form “Canvas”,另外创建一个class“draw”,并不选择:Create Objects”。使File/New可用,用 Code Expert添加代码在taskWindow.pro

4.在draw.cl draw.pro 添加代码

5.先Build/Build 然后编辑canvas.frm,在Events对话框中添加onPaint为paintResponder的事件处理谓词,双击后在canvas.pro里添加代码。

6.运行程序 3.4.3 Prolog代码

taskWindow.pro predicates

onFileNew:window::menuItemListener. clauses

onFileNew(S,_MenuTag):-

X=canvas::new(S),X ::show(). draw.cl class draw

open core,vpiDomains predicates

classInfo:core::classInfo. tree:(windowHandle). end class draw

draw.pro implement draw

open core,vpiDomains,vpi,math clauses

classInfo(\domains

command=t(commandList);f(integer); r(integer);m.

commandList=command*.

7

class facts

pos:(real Delta,real Turn)single. grammar:(commandList) single. class predicates

move:(windowHandle,pnt,real,commandList) procedure(i,i,i,i).

derive:(commandList,commandList) procedure(i,o).

mv:(windowHandle,pnt,real,command,pnt,real) procedure(i,i,i,i,o,o).

iter:(integer,commandList,commandList) procedure(i,i,o). clauses

pos(4.0,0.1745329).

grammar([f(1)]).

iter(0,S,S):-!.

iter(I,InTree,OutTree):- derive(InTree,S), iter(I-1,S,OutTree).

derive ([],[]):-!.

derive([f(0)|Rest],[f(0),f(0)|S]):-!, derive(Rest,S). derive([f(_)|Rest],

[f(0),t([r(1),f(1)]),f(0), t([r(-1),f(1)]),r(1),f(1)|S]):-!, derive(Rest,S).

derive([t(Branches)|Rest],[t(B)|S]):-!, derive(Branches,B),

8


丁浩轩prolog教学实习报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:老年护理学选择题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: