qiujie.bak

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

BAK
41
字号


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

clauses
	solve(A,_,_):-A=0,!,
		     write("Inputing A is wrong").
	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),nl,
	             write(" 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),
 	write("b= "),readreal(B),
	write("c= "),readreal(C),
 	write("The results are:"),
 	nl,
	solve(A,B,C).




⌨️ 快捷键说明

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