fangchen.bak

来自「人工智能课程学习中的作业」· BAK 代码 · 共 42 行

BAK
42
字号

domains
	list=integer*
	int=integer

predicates
	solve(real,real,real)
	reply(real,real,real)
	mysqrt(real,real,real)
	equal(real,real)

clauses
	solve(A,B,C):-D=B*B-4*A*C,reply(A,B,D),nl.
	reply(_,_,D):-D<0,write("No solution"),!.
	reply(A,B,D):-D=0,write("One solution "),
                     X=-B/(2*A),write(X),!.
	reply(A,B,D):-mysqrt(D,D,SqrtD),
	      	     X1=(-B+SqrtD)/(2*A),
	             X2=(-B-SqrtD)/(2*A),
	             write(" X1=",X1," X2=",X2),
	             nl.
	      
mysqrt(X,Guess,Root):-NewGuess=Guess-(Guess*Guess-X)/2/Guess,
		      not(equal(NewGuess,Guess)),!,
		      mysqrt(X,NewGuess,Root).
mysqrt(_,Guess,Guess).

equal(X,Y):-X/Y>0.99999,X/Y<1.00001.
         
goal
 	write("a=   "),readreal(A),nl,
 	write("b=   "),readreal(B),nl,
	write("c=   "),readreal(C),nl,
 	
	writef("The solution of           "),
	writef("(%d)X~2+(%d)X+%d=0 is",A,B,C),nl,
	solve(A,B,C).




⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?