我在Prolog中有以下错误:“语法错误:意外的子句结束”这个错误在声明程序triangulo,circulo和rectangulo的行中,这是我的代码:
areas:- nl,
display('1.Area triangulo'),nl,
display('2.Area circulo'),nl,
display('3.Area rectangulo'),nl,
display('4.Salir'),nl,
display('Escoja opcion: '),nl,
read(X),opcion(X),
opcion(4).
opcion(X):-X=1,triangulo(W),areas;X=2,circulo(W),areas;X=3,rectangulo(W),areas.
triangulo(W):- write('INgresa base'),nl,
read(B),nl,
display('INgresa altura'),nl,
read(A),nl,
areaT(B,A,R),nl,
display('EL area del triangulo es: '), display(R),nl,nl,
areaT(B,A,R):-R is(B*A)/2.
circulo(W):- display('INgresa radio de circulo'),nl,
read(RA),nl,
areaC(RA,R),nl,
display('EL area del CIRCULO ES: '), display(R),nl,nl,
areaC(B,A,R):-R is(RA*RA*3.14).
rectangulo(W):- display('INgresa base'),nl,
read(B),nl,
display('INgresa altura'),nl,
read(A),nl,
areaT(B,A,R),nl,
display('EL area del rectangulo es: '), display(R),nl,nl,
areaT(B,A,R):-R is(B*A).
答案 0 :(得分:1)
我可以发现2个问题(可能是复制和粘贴):
...
areaT(B,A,R),nl,
display('EL area del triangulo es: '), display(R),nl,nl,
areaT(B,A,R):-R is(B*A)/2.
...
在这里
...
areaT(B,A,R),nl,
display('EL area del rectangulo es: '), display(R),nl,nl,
areaT(B,A,R):-R is(B*A).
...
应该是
..., display(R),nl,nl.