Documente Academic
Documente Profesional
Documente Cultură
H CH MINH
11520603
KHTN2011
CS221.E21.KHTN
2011
11520603
KHTN2011
CS221.E21.KHTN
2011
LI CM N
Li u tin chng em xin c by t lng bit n su sc nht
ti TS. Nguyn Tun ng, Khoa Khoa hc my tnh, i hc Cng ngh
thng tin HQG-HCM, ngi tn tnh hng dn kin thc cn bn
v thit yu hon thnh n.
Tip n, xin cm n cc bn lp CS221.E21.KHTN cng trao
i v b sung kin thc h tr cho vic hon thin n.
MC LC
I. Tng quan .................................................................................................................................................. 2
1. Thng tin chung .................................................................................................................................... 2
2. Ni dung thc hin............................................................................................................................... 2
3. Cng c h tr ...................................................................................................................................... 2
II. Xy dng chng trnh v cy AND/OR phn tch cu ........................................................................... 3
1. tng ................................................................................................................................................. 3
2. Xy dng class Node ........................................................................................................................ 3
2.1. Cc thuc tnh c khai bo: ...................................................................................................... 3
2.2. Cc hm c xy dng: .............................................................................................................. 5
3. Xy dng chng trnh chnh .............................................................................................................. 6
3.1. Cc bin c khai bo: ............................................................................................................... 6
3.2. Cc hm c xy dng: .............................................................................................................. 6
4. Xy dng giao din v hon thin chng trnh ................................................................................ 7
4.1. Xy dng giao din ........................................................................................................................ 7
4.2. Chng trnh hon chnh .............................................................................................................. 8
5. Kim tra: ............................................................................................................................................. 10
5.1. Mt s vn phm n gin: ........................................................................................................ 10
5.2. Cu mc nh: .............................................................................................................................. 12
III. Xy dng vn phm phn tch cu ....................................................................................................... 14
Vn phm xy dng:............................................................................................................................... 14
BO CO N X L NGN NG T NHIN
I. Tng quan
1. Thng tin chung
* Tn n:
Vit chng trnh v cy AND/OR phn tch c php cu v phn tch th.
* Ging vin hng dn: TS. Nguyn Tun ng.
* Sinh vin thc hin: Nguyn Hong Ngha.
* Kho hc: Kho 2011 (Ngy nhp hc: Thng 09/2011).
* Thng tin lin lc ca sinh vin:
STT
Tn
MSSV
Email
1
Nguyn Hong Ngha 11520603 11520603@gm.uit.edu.vn
2. Ni dung thc hin
n thc hin 2 ni dung:
Vit chng trnh xy dng cy AND/OR m phng qu trnh phn tch cu t vn
phm dng c php ca Prolog.
Vit c php DCG phn tch 4 cu th:
Em khng nghe rng thu,
L thu ku xo xc,
Con nai vng ng ngc
p trn l vng kh?
(Ting thu - Lu Trng L)
3. Cng c h tr
Chng trnh v cy AND/OR:
IDE lp trnh: Microsoft Visual Studio 2010.
Mi trng lp trnh: Visual C#: Windows Forms Application.
ng dng h tr: Devcomponents DotNetBar version 10.0.0.0.
Chng trnh h tr kim tra vn phm:
SWI-Prolog (Multi-threaded, 32 bits, Version 6.3.4).
BO CO N X L NGN NG T NHIN
Chc nng
BO CO N X L NGN NG T NHIN
brushUniValue=Brushes.OliveDrab;
Brush
brushTree
Brushes.DarkSlateGray;
static float sizeFont = 20;
static float lineWidth = 2.0f;
Size ch v dy ca ng k.
BO CO N X L NGN NG T NHIN
2.2. Cc hm c xy dng:
Khai bo
public Node()
public Node(Node a)
Chc nng
Phng thc khi to
Khi to 1 Node c bn.
Khi to, sao chp 1 Node (khng sao chp
thnh phn Node[] chilList;
Cc hm h tr tnh ton
BO CO N X L NGN NG T NHIN
Chc nng
Lu tr vn phm hin ti, vn phm mc
nh, cu truy vn mc nh.
Lu cc lut p dng
Cy AND/OR truy vn.
Cc thnh phn ho; Thnh phn ho
c x l ton b trn bitmap trc khi
xut ra mn hnh; mu nn chung.
string[] dcg,normalDcg,normalQuery;
Node[] rule;
Node treeAO;
Graphics g;
Bitmap bitmap;
Color backColor;
3.2. Cc hm c xy dng:
Khai bo
Chc nng
Hm khi to
Khi to cc thng s c bn
ca giao din, cc thnh
phn ho.
public Form1()
X l, tng hp d liu u
vo: Cc lut, cu truy vn.
Hp nht (unified) Node a
v Node b.
Hm chnh khi to truy vn
v truy vn.
Hm gi lnh truy vn.
Khi to v gi thao tc v
trc tip ln mn hnh.
Cc s kin
private void Form1_Load(object sender, EventArgs S kin khi to lc Form
e)
Load
private
void
buttonRun_Click(object
sender, S kin click ca cc button
EventArgs e)
private void buttonReset_Click(object sender,
EventArgs e)
BO CO N X L NGN NG T NHIN
private
void
buttonExit_Click(object
sender,
EventArgs e)
private void buttonClear_Click(object sender,
EventArgs e)
private
void
buttonEdit_Click(object
sender,
EventArgs e)
private
void
buttonHow_Click(object
sender,
EventArgs e)
private void pictureBoxHow_Click(object sender, X l form tr gip v hp
EventArgs e)
iu khin.
private
void
expandablePanel1_ExpandedChanged(object
sender,
DevComponents.DotNetBar.ExpandedChangeEventArgs
e)
BO CO N X L NGN NG T NHIN
Phn (I): Bng iu khin, cha ton b cc phm chc nng, thng tin chng trnh.
Bng iu khin s dng Expanable c th thu gn li mn hnh v (II) rng hn.
Phn (II): Vng hin th hnh v, c dng Panel dng thanh cun (do mt s hnh
cy ln hn vng hin th).
BO CO N X L NGN NG T NHIN
Hnh 4.2.1 Giao din chnh v cc phm chc nng ca chng trnh
Ta c th thu gn bng iu khin bng cch nhn vo thanh tiu ca n:
BO CO N X L NGN NG T NHIN
Truy vn
10
BO CO N X L NGN NG T NHIN
(2)
Vn phm
Truy vn
1) s(A, B) :- np(A, C), vp(C, D), pp(D, B). s([n,,i,paris,vo,nm,ngoi],[]).
2) np(A, B) :- prp(A, B).
3) np(A, B) :- nrp(A, B).
4) np(A, B) :- nn(A, C), jj(C, B).
5) vp(A, B) :- vp1(A, C), np(C, B).
6) vp1(A, B) :- rb(A, C), vb(C, B).
7) pp(A, B) :- in(A, C), np(C, B).
8) prp([n|A],A).
9) rb([|A],A).
10) vb([i|A], A).
11) nrp([paris|A],A).
12) in([vo|A],A).
13) nn([nm|A],A).
14) jj([ngoi|A],A).
Kt qu: Do kch thc ln nn ta cn dng thanh cun c th xem ht hnh.
11
BO CO N X L NGN NG T NHIN
5.2. Cu mc nh:
Vn phm
Truy vn
1) s(A,B) :- np(A,C), vp(C,B).
s([em,khng,nghe,rng,thu,l,thu,ku,xo,xc],[]).
2) np(A,B) :- prp(A,B).
3) np(A,B) :- np1(A,B).
4) np(A,B) :- nn(A,C), nn(C,B).
5) np(A,B) :- np1(A,C), np2(C,B).
6) np(A,B) :- np1(A,C), vp(C,B).
7) np1(A,B) :- nn(A,C), nn(C,B).
8) np1(A,B) :- nn(A,B).
9) np1(A,B) :- nn(A,C), vb(C,B).
10) np2(A,B) :- np(A,C), vp(C,B).
11) vp(A,B) :- vp1(A,C), np(C,B).
12) vp(A,B) :- vp1(A,B).
13) vp1(A,B) :- vb(A,C), rb(C,B).
14) vp1(A,B) :- rb(A,C), vb(C,B).
15) vp1(A,B) :- vb(A,C), rb(C,B).
16) vp1(A,B) :- vb(A,C).
17) prp([em|A],A).
18) nn([rng|A],A).
19) nn([thu|A],A).
20) nn([l|A],A).
12
BO CO N X L NGN NG T NHIN
21)
22)
23)
24)
rb([khng|A],A).
rb([xo,xc|A],A).
vb([ku|A],A).
vb([nghe|A],A).
Kt qu:
BO CO N X L NGN NG T NHIN
np --> nn.
vp --> vb.
nn --> [em].
14
BO CO N X L NGN NG T NHIN
nn --> [rng].
vb --> [ng,ngc].
nn --> [l].
vb --> [kh].
nn --> [nai].
jj --> [thu].
rb --> [khng].
jj --> [vng].
rb --> [xo,xc].
jj --> [ng,ngc].
vb --> [ku].
jj --> [kh].
vb --> [nghe].
dt --> [con].
vb --> [p].
in --> [trn].
15